| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix incremental overcompilation due to instabilities
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The output of ExtractAPI should be stable, otherwise sbt might
incorrectly conclude that some API changed because its hash is
different, even though the source hasn't changed. This commit fixes two
cases where this might happen:
- package prefixes in NamedTypes are unstable, we already worked around this by
normalizing them, but only for classes, we now always do it.
- We use a simplified representation for `_ >: Nothing <: Any`, this is
now checked using `isDirectRef` instead of referential equality on types
since there is more than one way to represent `Nothing` and `Any`.
Both of these issues were found while compiling dotty with
`dotty-compiler-bootstrapped/compile` and making small changes.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Fix #2056: Backend crash when inlined method contains try
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In various places we do "case EmptyTree =>", since Tree#equals uses
reference equality this means that EmptyTree should never be copied,
otherwise some other code path will be taken.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
fixed PatternSyntaxException on Windows
|
| | |_|/ /
| |/| | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
(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
|
|\ \ \ \
| | | | |
| | | | | |
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.
|