| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
SI-6815 untangle isStable and hasVolatileType
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`Symbol::isStable` is now independent of `Symbol::hasVolatileType`,
so that we can allow stable identifiers that are volatile in ident patterns.
This split is validated by SI-6815 and the old logic in RefChecks,
which seems to assume this independence, and thus I don't think ever worked:
```
if (member.isStable && !otherTp.isVolatile) {
if (memberTp.isVolatile)
overrideError("has a volatile type; cannot override a member with non-volatile type")
```
Introduces `admitsTypeSelection` and `isStableIdentifierPattern` in treeInfo,
and uses them instead of duplicating that logic all over the place.
Since volatility only matters in the context of type application,
`isStableIdentifierPattern` is used to check patterns (resulting in `==` checks)
and imports.
|
| | |
|
|\ \
| | |
| | | |
SI-6406 Restore deprecated API
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The original patch for SI-6406 was intended for 2.10 but during
those volatile weeks of early autumn, it missed the boat.
A deprecated method was incorrectly tagged at 2.10 and later
removed; this restores the method and its test, and resets
the deprecation clock to 2.11.
The deprecation tool should confirm that changes occur on the
git timeline as claimed.
|
|\ \ \
| | | |
| | | | |
SI-3943 Test case for already-fixed Java interop bug
|
| | | |
| | | |
| | | |
| | | | |
Confirmed that this was fixed in edee27f59.
|
|\ \ \ \
| |_|_|/
|/| | | |
SI-7469 Remove @deprecated scala.util.logging
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
SI-7476 Add documentation to GenericTraversableTemplate
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
Fix formatting for couple of scaladocs in the compiler
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Source code on scaladoc for the virtual pattern matcher was not being
correctly identified as such. Also, I had to use an html code tag instead
of backticks when referring to the __match identifier, otherwise the
double underscore would be treated as start-of-underline wiki markup.
|
|\ \ \
| | | |
| | | | |
SI-7469 Make @deprecated elems in scala.concurrent private[scala]
|
| |/ /
| | |
| | |
| | | |
They can't be removed yet because scala.actors depends on it.
|
|\ \ \
| | | |
| | | | |
SI-7469 Remove deprecated elements in s.u.parsing.combinator
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
SI-7469 Remove @deprecated MurmurHash elements
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
makes sense of implicit macros! now in master
|
| | | |
| | | |
| | | |
| | | | |
This is a port of https://github.com/scala/scala/commit/4e64a2731d from 2.10.x.
|
| | | |
| | | |
| | | |
| | | | |
This is a port of https://github.com/scala/scala/commit/b4da864247 from 2.10.x.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a port of https://github.com/scala/scala/commit/8168f118c9 from 2.10.x,
with an additional change to the `enclosingImplicits` and `openImplicits` APIs,
which encapsulates tuples of `pt` and `tree` into `ImplicitCandidate`.
|
| | | |
| | | |
| | | |
| | | | |
This is a port of https://github.com/scala/scala/commit/bb73b9669a from 2.10.x.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In January I submitted a pull request that, as I thought back then,
fixes SI-5923: https://github.com/scala/scala/commit/fe60284769.
The pull request was merged, and everyone was happy that the bug got fixed.
Unfortunately, the fix was: a) incomplete, b) broke something else,
as noticed by Miles in https://groups.google.com/d/topic/scala-internals/7pA9CiiD3u8/discussion.
Now we got a real fix in 2.10.x (https://github.com/scala/scala/commit/90ac5c4e13),
and it's my pleasure to port it to master.
|
|\ \ \ \
| | | | |
| | | | | |
SI-6039 Harden against irrelevant filesystem details
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The symbol loader need not create and populate package
symbols merely because there is a directory somewhere.
Every package created based on the existence of a directory
should contain a classfile, either directly or indirectly.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
fix typo in comment
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | | |
AbstractFile.getDirectory does not return null when outDir is "."
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | | |
SI-7469 Remove @deprecated scala.util.parsing.ast
|
|/ / / / / |
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
Limit unnecessary calls to Type#toString.
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Logging revealed a few thousand calls to the often expensive
Type#toString emerging from tailcalls. The error message was
being generated for all methods even though it was only issued
in rare cases (and for the particular tailrec failure which
made the call, extremely rare.)
The remaining boatload of unnecessary Type#toString calls are
much harder to fix due to the design of "AbsTypeError" and the
fact that the compiler approaches mutability like a cat approaches
a loaded gun. See SI-6149.
|
|\ \ \ \
| | | | |
| | | | | |
SI-7432 Range.min should throw NoSuchElementException on empty range
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For consistency, range.max and range.min should throw
NoSuchElementException on an empty range.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Par-Test includes log in transcript of failed exec
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The previous behavior was that the Failure is generated
before the log is appended to the transcript.
That meant that the summary transcripts wouldn't include
the log file. Luckily, the transcript would say something
like "jvm > showFail-run.log".
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Boil out some duplicated parser logic.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Our focus today is on packages and package objects.
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-6863 root cause fixed using factory of scala.runtime.*Ref
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit does away with an error-prone division of labor between
UnCurry and LambdaLift, a division of labor by which UnCurry had to
anticipate under which circumstances LambdaLift creates a
scala.runtime.*Ref whose initial value is given by a an expression
including a Try in non-statement position. That sounds complicated,
and it is.
The solution so far (fixing SI-6863) is replaced by a simpler approach,
at the cost of forward binary comptability with pre-2.11 releases,
this time fixing the root cause of SI-6863.
From now on, a s.r.*Ref is instantiated via invocation of
a static factory method in the s.r.*Ref class in question.
Unlike the code that was emitted so far (which involved
NEW refclass, DUP, expr, INVOKESPECIAL refclass.<init>)
the "expr" doesn't appear on the operand stack on top
of the *Ref value being initialized. In other words,
the *Ref initialization is in statement position provided "expr" is.
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Partest can --show-diff again after incremental report.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
A flag is set in NestUI to look for "diff" in the transcript
of failing tests.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Hardening against nulls for deserialization.
|