| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
"abstract override" shouldn't was being allowed on types in traits but the result
made no sense and the spec says that shouldn't be allowed.
|
|\
| |
| | |
SI-5877 Support implicit classes in package objects
|
| |
| |
| |
| |
| | |
Reuses existing function `isInPackageObject` and reads
better.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This used to crash, as both the package and the package object
had the synthetic method in `decls`, and the typer tried to add
the tree to both places.
Now, synthetics in the package object are excluded from the pacakge
itself.
|
| |
| |
| |
| | |
Investigatory tools for SI-5877
|
|\ \
| | |
| | | |
SI-6558: typecheck lazy annotation info using non-silent context
|
| | |
| | |
| | |
| | |
| | | |
Reporting some errors prevents reporting others. This
residual issue had been lodged as SI-6758.
|
| | | |
|
| | |
| | |
| | |
| | | |
Make context for typing lazy annotations always non-silent. If lazy annotation info was created in local (silent) context, error could go unnoticed because later they would still use silent typer for typing the annotation.
|
|\ \ \
| | | |
| | | | |
SI-4922 Show default in Scaladoc for generic methods.
|
| | | |
| | | |
| | | |
| | | | |
We must account for cloned symbols.
|
|\ \ \ \
| | | | |
| | | | | |
SI-6614 Test case for fixed ArrayStack misconduct.
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Not sure when it was fixed, but in 2.9.2 things were
messed up:
scala> (for (i <- 0 to 10) yield { val in = ArrayStack.tabulate(i)(_.toString); (in, (in filter (_ => true)) == in) }).mkString("\n")
res14: String =
(ArrayStack(),true)
(ArrayStack(0),true)
(ArrayStack(0, 1),true)
(ArrayStack(1, 2, null),false)
(ArrayStack(0, 1, 2, 3),true)
(ArrayStack(3, 4, null, null, null),false)
(ArrayStack(2, 3, 4, 5, null, null),false)
(ArrayStack(1, 2, 3, 4, 5, 6, null),false)
(ArrayStack(0, 1, 2, 3, 4, 5, 6, 7),true)
(ArrayStack(7, 8, null, null, null, null, null, null, null),false)
(ArrayStack(6, 7, 8, 9, null, null, null, null, null, null),false)
|
|\ \ \ \
| | | | |
| | | | | |
SI-6690 Release reference to last dequeued element.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is in line with the existing implementation
of `MutableList#clear`, and in line with an newly
created empty collection.
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Avoids leaks in MutableList and its more better known child,
mutable.Queue, when the last element is dequeued or when we
take the tail of a one element collection.
Refactors copy/pasted code between the two implementations of
tail.
|
|\ \ \ \
| | | | |
| | | | | |
SI-5789 Removes assertion about implclass flag in Mixin.scala
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Don't check for the crashed message, just dump the output
from the REPL. Use the ReplTest framework to the make
the test clean
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In my other commit I had a version of the test that didn't
actually reproduce the problem because it didn't set the
optimize flag
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The assertion that the class being mixed from should be an implclass
seems reasonable, but the flag isn't always set. In order to stop the
bleeding this fix turns the assertion into a debug warning. Issue SI-6782
will track figuring out the root cause of the missing flag.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-5894 Don't emit static forwarders for macros.
|
| | | | | | |
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
Refactoring of the the zero-risk variety. The extraction of
`ExcludedForwarderFlags` is the motivation here; we'll need that
next commit to fix SI-5894.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-1672 Catches are in tail position without finally.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- Includes a run test to check bytecode verifies and behaves
- Show this isn't possible when try is used as an expression,
and a `liftedTree` local method is needed.
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
So we can eliminate tail calls within.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Warn when generated classfiles differ only in case.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
We should most likely prohibit it completely, but warning
is a start.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-6535 Step back from the precipice of a cycle
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Adding any non-local parent to WrapAsScala will trigger a valid
cyclic reference error. By moving the import of `Wrapper._`
inside `WrapAsScala` and `WrapAsJava`, it is not in scope when
typing the parents of those, and we avoid the cycle.
Adds a test case to show the essense of the promiscious mutual
imports that triggers this.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-6549 Improve escaping in REPL codegen.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Escape the LHS of an assign when printing results
- e.g. X("").foo = bar
- Escape val names
- e.g. val `"` = 0`
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-6547: elide box unbox pair only when primitives match
|
| | |_|_|/
| |/| | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-5678 Bad return type for [Use Case] docs in Range
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Many [Use Case] example in Range such as the one associated to the union method document that the method returns a Range which is just plain false.
Example:
val ran1 = Range(1,3)
val ran2 = Range(54, 57)
val result = ran1.union(ran2) // This is a perfectly valid use case yet obviously cannot be represented as a Range
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-6667 Abort after any ambiguous in-scope implicit
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Rather than continuing on to a search of implicits
of the expected type.
Previously, the companion implicits were searched if the
the caller was running the implicit search in silent
mode, for example if searching for an implicit parameter
in an application which has an expected type.
After this commit, the behaviour is consistent, regardless
on silent/non-silent typing.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Introduces AmbiguousSearchFailure to go with the
the existing SearchFailure, and changes predicates
to use `SearchResult.{isFailure, isSuccess}`.
This doesn't change behaviour; it is a preparatory
commit for SI-6667.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-4664 Make scala.util.Random Serializable
|
| | | | | | | | |
|
| | |_|/ / / /
| |/| | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix for SI-6712, bug in object lifting.
|
| | |_|/ / / /
| |/| | | | | |
|
|\ \ \ \ \ \ \
| |_|_|_|_|_|/
|/| | | | | | |
Now the test suite runs MIMA for compatibility testing.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Failures are still not reported, thanks to MIMA not returnign non-0 exit codes on failure. I'll be patching MiMA seprately, but at least
this will let us deal with failures in scala. Currently, we need to adapt the Vector speed improvements for binary compatibility.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
refactors handling of parent types
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Even more trees (together with Apply nodes produced by templateParents
and New nodes produced by New in TreeBuilders) now distinguish nullary
argument list from empty argument list.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This looks like a much more specific name than a generic "dummy" prefix.
CannotHaveAttrs also doesn't imply that an implementing tree should
satisfy some bigger contract. EmptyTree and emptyValDef are very unlike
each other, so there's no point in trying to unify them.
Also DummyTree.isEmpty is no longer automatically true. The notion of
trees not having positions and types by design (i.e. EmptyTree + empty
TypeTrees + emptyValDef + the new pendingSuperCall) is quite different
from the notion of an empty tree in a sense of a tree being a null object
(i.e. EmptyTree + empty TypeTrees).
|
| | | | | | | | |
|