| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
A method with return type Nothing elides into a call to ??? .
It's the role ??? was born for.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
One to go (which doesn't fail for me, which is interesting
because it's a VerifyError.)
|
|\ \ \
| | | |
| | | |
| | | | |
'szabolcsberecz/SI-5316' and 'szabolcsberecz/SI-5171' into develop
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | | |
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
|
| |/
|/|
| |
| | |
Compiler NPE on 2.9.1 when implicit parameter not found
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
| |
And some tests for pending.
Closes SI-5358.
|
|\ |
|
| |
| |
| |
| | |
multi-argument list methods.
|
| |
| |
| |
| | |
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.
|
| | | | | | |
| \ \ \ \ | |
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | |
| | | | | | |
into develop
|
| | | |_|/
| | |/| |
| | | | |
| | | | | |
Chain contexts by sharing the error buffer, unless you explicitly create a silent context. Review by @odersky
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of trying to track the fallback attempts we rely on the
context state to inform us which fallback is the last one.
setError cannot always be called in NoBestMethodAlternativeError
because inferMethodAlternative relies on side-effects.
Review by @paulp.
|
|\ \ \ \ |
|
| |/ / / |
|
|\ \ \ \
| |_|/ /
|/| | /
| | |/
| |/| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixed some tests so that they work now.
The Transactions.scala test was failing when defined in scala.concurrent
package, reporting that type `_$1` is defined twice. Until we figure out
the reason for this, the package name in that test is renamed.
|
| |\|
| | |
| | |
| | |
| | | |
Conflicts:
src/library/scala/package.scala
|
| |\ \ |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |\ \ \ |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
execution-context
|
| | | | | | |
|
| |/ / / / |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
execution-context
Conflicts:
test/files/jvm/concurrent-future.scala
|
| | | | | | |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
block on {
}
is now changed to:
block(timeout) {
}
|