| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Was: corresponding parameter types "are compatible".
Now: corresponding parameter types "conform".
This avoids the inconsistency mentioned by @retronym in #897.
|
| |
|
| |
|
|
|
|
| |
Tests suggested by @retronym's comments on issue #897.
|
|
|
|
| |
Implements SIP #897.
|
|\
| |
| | |
Drop empty companion objects
|
| | |
|
| |
| |
| |
| |
| | |
If the object was explicitly written, it might be
referenced, even if it is empty.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The underlying problem on MacOS/Windows remains:
We have a class `B` and an object `b` in the same scope.
We used to get a conflict on `B$/b$` because we created
an empty companion object for `B`. Now we get a conflict
for `B/b`, because the `b` object creates to classes:
`b.class` an `b$.class` and `b.class` clashes with `B.class`.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add operations to NameOps to detect and produce names
for lazy locals.
@darkdimius Maybe there is already another way to do this?
I could not find it.
|
|\ \
| | |
| | | |
Document dotty internal Annotations
|
| |/ |
|
|\ \
| | |
| | | |
Fix #435
|
| | |
| | |
| | |
| | | |
... when package clashes with same-named object.
|
|\ \ \
| | | |
| | | | |
partest: run tests with -Xms64M -Xmx1024M instead of JVM defaults
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
This is the same settings that scalac uses, this should help use avoid
using too much memory (the default on 64 bits Linux seems to be
-Xms248M -Xmx3938M).
|
|\ \ \
| | | |
| | | | |
Add test case for #645
|
| |/ / |
|
|\ \ \
| |/ /
|/| /
| |/ |
Better handling enclosing class computations
|
| | |
|
|/
|
|
|
|
|
|
| |
An `C.this` term with erroneous class `C` will get a
`NoPrefix` type. A subsequent implicit search on this
crashed. This is fixed now.
Fixes #324.
|
|\
| |
| | |
Enable tests for old fixed issues
|
|/
|
|
| |
Fix #530, #654, #681, #684, #685
|
|\
| |
| | |
Change is volatile
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Move logic from TypeOps to new file CheckRealizable.scala.
Also check realizable fields under strict mode.
Check at phase PostTyper rather than Typer to avoid cycles.
New tests for imports and deep paths.
|
| | |
|
| |
| |
| |
| | |
should be terated analogous to lazy vals for realizability checking.
|
| |
| |
| |
| | |
These are replaced by the realizibility logic.
|
| |
| |
| |
| |
| |
| |
| | |
The lines in question now cause an error ("cannot be instantiated...")
which masks the real tests at phase PostTyper.
Also adapt bugcount of hklower test
|
| | |
|
| |
| |
| |
| | |
Need to demand "effecively final" instead of `is(Final)`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If `T` is a member of `p` then
{ import p._; ... T ... }
should be checked in the same way as
{ ... p.T ... }
|
| |
| |
| |
| |
| | |
Fix wording so that it works for nested errors as well.
Incorparte Tiark's latest example.
|
| |
| |
| |
| |
| |
| | |
Reason: They might be overridden by other lazy vals
that are not realizable, and therefore risk creating
bad bounds.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Tests with failed projections are moved to pos-scala2, which
was renamed from pos-special. Files in pos-scala2 are compiled
with -language:Scala2 option.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
EffectivelyFinal came without documentation, so it was not clear
what is was supposed to compute. I looked at the use sites, and it
seems that all they need is "impossible to override". So I changed
the code to do that and dropped the additional condition that
members of modules or final classes were not allowed to be lazy or
mutable. It was not clear to me what that had to do with finality.
|
| |
| |
| |
| | |
Types is already big enough.
|
| |
| |
| |
| |
| |
| | |
Distinguish between isStable and isRealizable.
Issue migration warnings for realizibility failures.
Provide error diagnostics why something is not realizable.
|
| |
| |
| |
| | |
Fixes #50.
|
| |
| |
| |
| | |
This prepares the way for using isRealizable in different contexts.
|
| |
| |
| |
| |
| |
| |
| | |
Replaces isVolatile, which is too weak (and more complicated).
Backwards compatibility with Scala2 is ensured by dropping the
requirement in Scala2 mode.
Fixes #1047, which now compiles without inifinite recursion.
|
| | |
|
|\ \
| |/
|/| |
Prune constraints that could turn into cycles
|
| | |
|