| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Fix-#1723: Avoid private leaks on completion
|
| |
| |
| |
| | |
As #1723 demonstrates, doing this at PostTyper is too late.
|
|\ \
| | |
| | | |
Implement structural type member access
|
| | |
| | |
| | |
| | | |
The PR also fixes #1866, as shown by this test case.
|
| | |
| | |
| | |
| | |
| | | |
Use base types instead of implicits. This is more robust
in the presence of type abstraction.
|
| | |
| | |
| | |
| | | |
New scheme for implementing structural type member access.
|
| |/
|/|
| |
| |
| | |
xxl closures need to get the SAM type FunctionXXL as their explicit
type field after ersure.
|
| |
| |
| |
| | |
The b-test would compile for a millenia without the fix.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Before adding a constraint, make sure there is no way
the two types are already in a subtype relation.
Adding redundant constraints is problematic because we
might introduce cycles. See i1891.scala for a test.
|
|\ \
| |/
|/| |
Fix #1867: Set position of empty refined types
|
| | |
|
|\ \
| | |
| | | |
Fix #1865: Compute outer path at right phase
|
| |/ |
|
|/ |
|
|\
| |
| | |
Make more parts of stdlib compile
|
| |
| |
| |
| |
| | |
Argument comparison of hk types did not take into account that
the compared types could have themselves wildcard arguments.
|
|/ |
|
|\
| |
| | |
Fix #1812, Symbols.mapSymbols shouldn't replace denotations
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Fix #1803: Infer type parameters of anonymous class parents from expected type
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If a parent type of an anonymous class is an Ident or Select which refers
to a parameterized type, use the expected type to infer its type parameters.
Fixes #1803.
|
|\ \ \
| | | |
| | | | |
Fix #1797: Allow case class params with names _1, _2, ...
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This was not possible before because it clashed with the automatically
generated name of the accessor. We now allow it, by simply taking the
parameter(accessor) itself as the case class accessor if it already has
that name. But you still cannot write
case class C(_2: Int, _1: String)
nor should you be able to do this.
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix #1755: Make sure references in outer args are accessible
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Needed a fixup action in ExplicitOuter to avoid references to
module's This from outside their scope.
The problem is fixed, but I wish I understood better the root cause.
|
|\ \ \ \
| |_|/ /
|/| | | |
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
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix checks related to value classes
|
| | | | | | |
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Add tests that work to pos/neg, tests that don't work yet to pending/pos/neg.
- Also, change .gitignore to allow for a local directory.
- Also add a draft page to the docs.
|
| |_|_|/
|/| | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix #1776: Avoid interaction between parameter forwarding and elimByName
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1757: Be more careful about positions of type variable binders
|
| | |_|/
| |/| | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix #1756: Use lexically enclosing class as start of outer path.
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
We confused the enclosing class (which skips the current class in super
call contexts) and the lexically enclosing class in three locations
that all had to do with the start of an outer path.
|
|\ \ \
| | | |
| | | | |
Fix #1765: Context bounds and denotation handling
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Once the context-bounds desugaring of i1765.scala was fixed, another problem came up:
We hit an invalid denotation due to some interaction between mixin and memoize.
It turned out that `insertInsteadOf` did not do what its doc comment claimed: it did
not store a forwarding pointer `nextInRun` in the overwritten denotation. Once that
was fixed we also needed to fix a follow-on erorr that now we could have chains of
invalid denotations linked by `nextInRun`.
|
|\ \ \
| | | |
| | | | |
Fix #1751: Make dominator work after erasure
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
i1751.scala shows a case where we need to compute the approximation
of an or-type during erasure. This can lead to an empty set of common
classes because Any does not exist anymore after erasure.
|
|\ \ \
| | | |
| | | | |
Drop function 22 limit
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Functions with more than 22 parameters are now
automatically converted to functions taking
a single object array parameter.
This has been achieved by tweaking erasure.
Other things I have tried that did ot work out well:
- Use a single function type in typer. The problem with this
one which could not be circumvented was that existing higher-kinded
code with e.g. Funcor assumes that Functon1 is a binary type constructor.
- Have a late phase that converts to FunctonXXL instead of
doing it in erasure. The problem with that one was that
potentially every type could be affected, which was ill-suited
to the architecture of a miniphase.
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix #1665: Check that != has an operand on the left.
|
| | |/
| |/| |
|