| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
(1) Drop unused error message
(2) Drop test which is now illegal
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drop the [type T] syntax, and what's associated to make it work.
Motivation: It's an alternative way of doing things for which there seems
to be little need. The implementation was provisional and bitrotted during
the various iterations to introduce higher-kinded types. So in the end the
complxity-cost for language and compiler was not worth the added benefit
that [type T] parameters provide.
Noe that we still accept _named arguments_ [A = T] in expressions; these are useful
for specifying some parameters and letting others be inferred.
|
|\
| |
| | |
Add assert that refine infos are legal wrt refined names
|
| | |
|
|\ \
| | |
| | | |
Fix #2030: Don't chain implicit conversions
|
| |/
| |
| |
| |
| |
| |
| | |
When inferring a view, we are not allowed to use another
implicit conversion to adapt its result. Fixing this revealed
another problem where we have to re-enable implicit conversions
when pre-typing arguments in overloading resolution.
|
| | |
|
|\ \
| | |
| | | |
Last changes before presentation at Matsuri
|
| | | |
|
|\ \ \
| | | |
| | | | |
Change 'private, protected, or this expected' to Message
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix #2033: Improve handling of unresolved overloaded arguments
|
| | |_|/
| |/| | |
|
|/ / /
| | |
| | |
| | | |
Note that it is never used and the same method exists in transform.TreeGen
|
|\ \ \
| | | |
| | | | |
Fix import which produces flakey test results on Eclipse
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Previous import gave test errors under eclipse. Probably
due to some stray directory on the classpath.
|
|\ \ \ \
| | | | |
| | | | | |
Treat implicit by-name arguments as lazy values
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
With the previous rules, the two test cases produce a
diverging implicit expansion. We avoid this by creating
for every implicit by-name argument of type T a lazy implicit
value of the same type. The implicit value is visible for all
nested implicit searches of by-name arguments. That way,
we tie the knot and obtain a recursive lazy value instead of
a diverging expansion.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Make resolveSuper less slow
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
By ordering tests in a smarter way.
Add leave a big scary comment.
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
Better error messages for missing type of recursive definitions
|
| | | | | |
|
| | |_|/
| |/| | |
|
|\ \ \ \
| |/ / /
|/| | | |
Add overloading support for case-closures
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
case-closures (which are represented as Match nodes) have a known
arity just like other function literals. So shape analysis for
overloading resolution should apply to them as well.
|
|\ \ \ \
| | | | |
| | | | | |
Change 'is abstract; cannot be instantiated' to Message
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix #2020: Only the first parameters of a case class are caseaccessors
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Only the parameters in the first parameter list of a case class should get
the `CaseAccessor` flag. Fixes #2020.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Fix #2009: Fix placeholder params logic for lambdas
Logic was missing placeholders in rhs of lambdas.
* Add comment
* Fix typo
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix #2000: Make implicit and non-implicit functions incomparable
|
| | | | | | |
|
| | | | | | |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Implicit and non-implicit functions are incomparable with <:<, but are
treated as equivalent with `matches`. This means implicit and non-implicit
functions of the same types override each other, but RefChecks will
give an error because their types are not subtypes.
Also contains a test for #2002.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix off-by-one error in forward reference checking
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Avoid accidental captures of Context
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This capture did not cause any problem since we always called
TempClassInfo#finalize with the same Context than we captured in
`addSuspension`, but it's better to be explicit about these things.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Previously we computed the scope in `findModuleBuddy` using
`this.effectiveScope`, this means that we captured `this` which has a
self-type of `Context`, replacing it by `ctx.effectiveScope`
would be wrong since we are interested in the scope at the time
`adjustModuleCompleter` was called, not the scope at the time the
completer is called. Therefore, we have to eagerly compute
`this.effectiveScope` so that we don't capture the Context but can use
the right scope in `findModuleBuddy`.
We also move `findModuleBuddy` to a companion object to avoid accidental
captures of `this`.
This capture lead to crashes in the IDE.
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
ImportInfo#toString required the ctx parameter,so it was replaced by
ImportInfo#toText.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
getMember needs to take an implicit `Context` parameter, otherwise the
following code:
val result = ctx.atPhaseNotLaterThan(ctx.typerPhase) { implicit ctx =>
getMember(owner, innerName.toTypeName)
}
will not run getMember at the typer phase.
|
| | | | | | | |
|
| | | | | | | |
|