| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Benchmark code to compare compilation schemes in
different scenarios. See results.md for explanations.
|
| |
|
| |
|
|
|
|
|
| |
Optimizes implicit closures by avoiding closure
creation where possible.
|
|
|
|
|
|
|
| |
This avoids denotation transforms when called at a later
phase because it cuts out current. Not needed in final
version of ShortcutImplicits, but I thought it was
good to have.
|
|
|
|
|
| |
The Ref copier copies Idents and Selects, changing the name
of either.
|
|
|
|
|
|
| |
"Wrong number of args" only works for type arguments but was called also for
term arguments. Ideally we should have a WrongNumberOfArgs message that works for
both, but this will take some refactoring.
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. I noted java_all was not running(it took 0.01s to complete); fixed by
changing the test directory.
2. We suspected tasty_bootstrap was gettng the wrong classpath and
had a lot of problems getting it to print the classpatg. Fixed
by refactoring the options we pass to tasty_bootstrap (it has
to be -verbose in addition to -classpath). For the moment,
both a turned off but we have to just swap a false to a true
to turn them on together.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Run a typical dotty compiler scenario with implicit
contexts.
|
| |
|
|
|
|
|
| |
When the expected type is an implicit function, create an
implicit closure to match it.
|
|
|
|
|
|
| |
This will need a spec change. It's necessary in
order not to confuse synthetic implicits with each other
or with explicit ones in the environment.
|
|
|
|
| |
and check at runtime that it works
|
|
|
|
|
|
|
| |
This will no longer be supported. On the other hand, as long as
the alternative is not yet legal in Scala2.x we cannot flag this
as an error. So the migration warning/error and patch code is
currently disabled.
|
|
|
|
|
| |
- allow more than one implicit binding
- harmonize syntax in expressions and blocks
|
|
|
|
|
| |
Implicit modifiers were quite irregular compared
to the other ones. This commit does a cleanup.
|
|
|
|
|
|
| |
Implicitness is ignored for matching (otherwise
apply in ImplicitFunction could not shadow apply in Function).
And explicit trumps implicit in subtyping comparisons.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Also: show implicit function types correctly.
Also: refine applications of implicit funcitons
- don't do it for closure trees
- don't do it after typer.
|
| |
|
| |
|
|
|
|
| |
These are always synthetic; generated on demand.
|
|\
| |
| | |
Fix #1799: Make compilation of FunctionN traits possible.
|
| | |
|
|\ \
| |/
|/| |
Fix #1810 LazyVals should use changeOwnerAfter.
|
| | |
|
|\ \
| | |
| | | |
Fix emission of annotations
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is necessary for correct incremental recompilation but is also used
by sbt to find tests to run (for junit they should be annotated @org.junit.Test).
I added an sbt scripted test to verify that JUnit now works, to run it:
$ sbt
> scripted discovery/test-discovery
|
| | |
| | |
| | |
| | |
| | | |
Previously we replaced them by ConcreteAnnotation so they became regular
annotations and could be emitted in some cases. They need to keep being BodyAnnotation.
|
| | |
| | |
| | |
| | |
| | |
| | | |
`isRuntimeVisible` and `retentionPolicyOf` had two different ways to get
the retention policy of an annotation and they were both wrong.
Fix retentionPolicyOf` and use it in `isRuntimeVisible`
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix #1806: Define outer accessors at the right phase
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Some outer accessors were defined at phase explicitOuter,
but were entered into the scope of their enclosing class only
at phase explicitOuter + 1. This turned them to stale symbols
when trying to access them at a later run, because at their
initially valid phase they were not found as members of
their owner.
|
| | | | |
|
|\| | |
| | | |
| | | | |
Fix #1790: Change by-name pattern matching.
|
| | | |
| | | |
| | | |
| | | | |
This implements the rules laid down in #1805.
|
| | | |
| | | |
| | | |
| | | | |
New implementation following the scheme outlined in #1790.
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1784: allow to omit types for local implicit vals
|
| | | | |
| | | | |
| | | | |
| | | | | |
559e49317912ce52c51e295346cebcafbb69462d)
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Needed an // error annotation
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since we now allow to drop the explicit type of a local implicit val
it can happen that this causes a cyclic reference, namely when the
typechecking of the right-hand side involves an implicit search.
It's unpractical and fragile to avoid this. Instead we give now
a nice error message explaining the problem and how to fix it in
source code.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Drop explicit types for local implicit vals of type Context
and Position. Exercises the functionality and shortens the code.
|
| | | | | |
|