| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
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.
|
| | |/
| |/| |
|
| |/
|/|
| |
| |
| |
| | |
In this case, a path went through a type parameter which was
aliased to a singleton type. Need to dealias to get to the
special case handling two paths.
|
|/
|
|
|
| |
So far, only typed patterns an dunapply had GADT matching.
i1737.scala shows that we need to do the same thing for objects.
|
|
|
|
|
|
| |
The access boundary of a def in a local class is the owner of that
class, previously it was set to the access boundary of the owner of the
class instead.
|
|
|
|
|
|
|
|
|
|
|
| |
Previously Outer2#Inner#foo failed to compile with:
```
non-private method foo refers to private value x in its type signature
```
This should compile because the boundary of `foo` is `class Outer2`
and the boundary of `x` is `object Outer2`. This commit fixes this by
also considering the linked boundary in `checkNoPrivateLeaks`.
|
|
|
|
|
|
|
|
|
|
| |
Previously, the tests where all in tests/pos/java-interop which means
that partest would try to run them as one single test, this failed
because some of these tests define classes with the same name. We could
fix this by putting them all in separate packages but for now it's
simple to move them to tests/pos-java-interop (they will still be run
individually as they should thanks to the `java_all` test defined in
tests.scala)
|
|
|
|
|
|
|
|
| |
We forgot the case where a hoistable method can still
refer to free variables that have to be passed using
outer pointers.
Fixes #1664.
|
|\
| |
| | |
Fix #1638: Don't import when typing a package clause
|
| |
| |
| |
| |
| |
| |
| | |
When typing the first identifier of a package clause, disable
imports, as package clauses are never imported.
Fixes #1638.
|
|/
|
|
|
|
|
| |
Drop special mode that handles future defs without which we
get DenotationNotDefinedHere errors. In more than a year, this
has only turned up false negatives. So I think it's better to
drop the check, and the contortions needed to deal with it.
|
|\
| |
| | |
Fix-#1500 Include constraining type variables when interpolating
|
| |
| |
| |
| | |
Fixes #1500. Review by @smarter.
|
|\ \
| | |
| | | |
Fix #1570: Allow inline parameters as inline args
|
| |/
| |
| |
| |
| |
| |
| | |
Inline parameters can always be passed to other
inline parameters.
Fixes #1570.
|
| | |
|
|\ \
| | |
| | | |
Fix #1576: Parameters of Java annotations should be public
|
| |/
| |
| |
| |
| | |
Parameters of annotation classes parsed by the Java parser should
have public val parameters. Otherwise they cannot be accessed as fields.
|