| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
lib/scala-compiler.jar.desired.sha1
lib/scala-library-src.jar.desired.sha1
lib/scala-library.jar.desired.sha1
src/compiler/scala/reflect/internal/Definitions.scala
src/compiler/scala/reflect/internal/Importers.scala
src/compiler/scala/reflect/internal/Symbols.scala
src/compiler/scala/reflect/internal/Trees.scala
src/compiler/scala/reflect/internal/Types.scala
src/compiler/scala/tools/nsc/Global.scala
src/compiler/scala/tools/nsc/transform/Erasure.scala
src/compiler/scala/tools/nsc/transform/LiftCode.scala
src/compiler/scala/tools/nsc/transform/UnCurry.scala
src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
src/compiler/scala/tools/nsc/typechecker/Typers.scala
test/files/run/programmatic-main.check
test/files/speclib/instrumented.jar.desired.sha1
|
| |
| |
| |
| |
| | |
Phantom types were vanishing during the erasure which takes
place from manifest -> class object -> tpe.
|
| |
| |
| |
| |
| |
| | |
This should exclude everything mutable. I'm open to suggestions
as to what sort of final fields we can safely allow beyond these,
if any.
|
| |
| |
| |
| | |
References SI-3569. Probably needs refinement.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Closes SI-5545. In the long run this should be generalized, as other
phases might suffer from the same problem. Full explanation here:
https://issues.scala-lang.org/browse/SI-5545
|
| | |
| | |
| | |
| | | |
(I'm assuming this is desirable, please review @scalamacros)
|
| | | | |
| | \ | |
| | \ | |
| | \ | |
| | \ | |
| | \ | |
| |\ \ \ \ \
| | |_|_|_|/
| |/| | | |
| | | | | | |
'axel22/feature/pc-execution-contexts', 'VladUreche/issue/5527-noPos' and 'retronym/topic/tolerant-interpolator' into develop
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
f"${foo}" is treated like f"${foo}%s".
|
| | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
By making the comment tree node transparent. Reverts previous change
in cfb04ef065. Will mark the bug 5527 as WONTFIX, because the effort
of fixing leaking comments is too great.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Has to be somewhere more directly tied to structural
refinements. See run/lub-visibility.scala before/after
output for motivation. Closes SI-5534.
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
I think this fixes SI-2296, the inability to access java protected
members from a trait which extends a java class. Counterexamples
appreciated. Closes SI-2296. Review by @dragos.
|
| | |/
| |/|
| | |
| | |
| | | |
And pending tests for most of the other VerifyErrors which
still fail to verify.
|
| | |
| | |
| | |
| | | |
Closes SI-5537.
|
| | | | |
| | \ | |
| |\ \|
| | | |
| | | |
| | | | |
'axel22/feature/pc-execution-contexts' and 'TiarkRompf/SI-5538'; commit 'd92bcb5302be04104abe2db6cf92620c4cd7255e' into develop
|
| | | |\ \
| | | | | |
| | | | | |
| | | | | | |
'szabolcsberecz/SI-5380' and 'scalamacros/ticket/5532' into develop
|
| | | |_|/
| | |/| | |
|
| | | |/
| | |/| |
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/compiler/scala/tools/nsc/transform/UnCurry.scala
|
| | | | | |
|
| | |/ /
| |/| | |
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
Looks like my attempt to handle whitespace when merging
preserved the correct history less than swimmingly. Am
attempting to patch it up.
|
| | |
| | |
| | |
| | | |
into develop
|
| | |
| | |
| | |
| | | |
Eliminated annotation and custom phase. Kept SYNCHRONIZED flag.
|
| |\ \
| | |/
| |/| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The following:
def f = synchronized { ... }
will be rewritten to:
<synchronized> def f = ...
which is then emitted to the classfile with the synchronized flag set.
Inlining of such transformed methods are disabled for now
This transformation is not done on methods defined in a trait.
|
| | |
| | |
| | |
| | | |
From the extempore archive of already implemented things.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Found a better elidable implementation which is robust against other
parts of the compiler doing their things. Calls to elidable methods are
replaced with zero of the same type. Elidable methods themselves remain
in place, but with their body replaced with a zero of the method return
type.
Thus is everything to be found where it is expected to be found, but
nothing will be found where nothing ought to be found. Nothing of course
will never be found.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
On epfl jenkins, elidable.scala fails with:
[partest] java.lang.VerifyError: (class: Test$, method: main signature: ([Ljava/lang/String;)V) Unable to pop operand off an empty stack
[partest]
[partest] at Test.main(elidable.scala)
Strangely it is fine for me on OSX with either apple's jvm or openjdk.
Since tests were not running for a while I don't know which of the recent
elidable commits is responsible, so given present time demands all I
can do is revert them all.
Revert "Fix for SI-5215: scalac crash when @elidable used in trait"
This reverts commit 5e52ce9a13f12ef159e25ac80c6be2803ec48950.
Revert "Fix for SI-5215 part 2: generate return value when eliding method calls"
This reverts commit 61c9b4f01d99a81e15391b270bd1b5a895f65ffd.
Revert "Eliminating duplication in zero creation."
This reverts commit fbb7865e137e83660257fdc79d19d29ff39c775b.
Revert "Disallow eliding when Nothing is expected"
This reverts commit f26a47c4e8bda2f6c689b4e9b0bb5c64ccf4c699.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Running the test produces the following error in 2.9.1:
java.lang.VerifyError: class com.restphone.IsList$ overrides final method canEqual.
Works fine in 2.10.0-M2
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
The elision is now done by not emitting method calls (it was done by removing the elidable methods).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
While [@specialized A] already tries to include specialization,
a bug in specializedOn prevented this from happening: any empty
list could mean that the type var was unspecialized, or that it
was specialized on everything.
The fix is to have this function create the full list of symbols
in the case where the @specialized annotation doesn't explicitly
include any types.
|
| | |
| | |
| | |
| | | |
Some in pending, some in files. Closes SI-4770.
|
| | |
| | |
| | |
| | |
| | |
| | | |
A reimagining of erik's patch in 1df4fc6e59 . He did the hard
part, this is the batman reboot. I added more tests and tried
to make the anyref caching code less fragile.
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The basic problem here was that generic type params were getting
confused between the various specialized subclasses. For instance,
calling typeParamsSubAnyRef(A, C2$mcLI$sp) might return the wrong
specialized type param, e.g. C2$mcLZ$sp.A$sp (note the Z instead
of the I).
The fix is to cache with both the sym (A) and also the clazz
(C2$mcLI$sp). This may resolve a whole host of other obscure
AnyRef specialization problems.
|
| |\ \ \
| | |/ /
| |/| | |
|
| | | | |
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | | |
don't consider the matcherror-throwing catch-all case (generated by virtpatmat) a default case
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
catch handlers are now also translated by the virtualizing pattern matcher
emit type-based switches when possible, fallback to catch-all with full pattern match
(the logic used to emit constant-based switches was generalized to type-based switches,
abstracting out how to refer to the scrutinee and the shape of a default/catch-all case)
this was the last missing piece of essential functionality
now the virtualizing pattern matcher and the old one are mutually exclusive:
-Yvirtpatmat disables the old matcher logic completely
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
At least for the value of fix which means "better than it was in
2.9." I accidentally spent a long while trying to fix something I didn't
realize I hadn't broken. But then I lucked into partially fixing it, so
that's good news.
See run/t5488-fn.scala if you want to see what still doesn't work.
(It's covered at SI-4770, which is now reopened.) Closes SI-5488.
|
| | | | |
| | \ | |
| | \ | |
| | \ | |
| |\ \ \ \
| | | | |/
| | | |/|
| | | | | |
'szabolcsberecz/synchronized-test' and 'non/si-5005-2' into develop
|
| | |/ /
| |/| | |
|
| | |/
| | |
| | |
| | | |
This fix was previously only applied to hash sets.
|
| | | | |
| | \ | |
| |\ \ \
| | | | |
| | | | |
| | | | | |
and 'scalamacros/pullrequest/multilineinterpolation' into develop
|
| | | | | |
|