| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Fixes suggested by @marter when reviewing previous hk PR.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It turns out that asSeenFrom can produce types
that get projected with $apply but that are not
higher-kinded. An exampple failure is in Iter3,
andother in scala.collection.immutable.Map (which is
now part of the test suite).
We now detect that situation, and eta expand the
projected type in `derivedSelect`, this will
force a subssequent `lookupRefined` which will give
the desired normalized type.
Also added is a configurable test that checks that
$apply projected tyeps are in fact higher-kinded.
|
|
|
|
|
|
| |
The original IterableSelfRec is not syntactically legal after
the hk changes. I attempted to fix, but there's still a type error.
Need to investigate whether this is a true error or a bug.
|
|
|
|
| |
...unless the HK type can be eta-reduced to a class type.
|
|
|
|
|
| |
In Namer, eta expand any type argument that corresponds to a higher-kinded type parameter.
Also, check that all type parameter lists are fully applied.
|
| |
|
|
|
|
|
| |
Makes self types explicit, if this is needed to identify
a member in a select. Fixes #789.
|
| |
|
| |
|
|
|
|
|
| |
Check that calling a side effecting function returning
a constant type does not get suppressed.
|
|
|
|
| |
to test for propagation of constant types.
|
| |
|
|
|
|
| |
Should have been added on final vals commit.
|
|
|
|
| |
Desugaring worked incorrectly when both context bounds and default parameters were present.
|
|\
| |
| | |
Fix #756 super accessors
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Fix repeated
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
refOfDef is used in desugaring case classes, specifically the definition of an apply method.
Here it is necessary to pass a vararg argument (x: _*) if the case class parameter is repeated.
This functionality is now added to `refOfDef`. I verified that the other uses of `refOfDef` are
compatible with this change.
Fixes #768.
|
| | |
| | |
| | |
| | |
| | | |
Introduce a new non-terminal "SimpleLiteral". Only SimpleLiterals can be
types.
|
| | |
| | |
| | |
| | |
| | | |
Tested are now other numeric values, strings, booleans, which are
all legal singleton types.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Null and 'sym are not legal as singleton types because the underlying
values are not stable. They are rejected now outright instead of issuing
a cryptic "X is not stable" error message.
|
| | |
| | |
| | |
| | | |
It's decided that constant types and purity are independent.
|
|/ /
| |
| |
| |
| |
| | |
As the comment in pos/singletons.scala says, we currently
test only constant propagation during typer. We should also have a
test that literalize produces the literals in the right places.
|
|\ \
| | |
| | | |
Mixin: class defined abstract members take precedence over interface defined.
|
| |/ |
|
|/ |
|
|\
| |
| |
| |
| | |
dotty-staging/fix-liftedTry-capturedVars-interaction
Fix lift try and captured vars interaction
|
| |
| |
| |
| |
| | |
Checks the hypothesis that lifting a try may safely move expressions
into a ValDef owned by a new temp var.
|
| |
| |
| |
| |
| |
| | |
CapturedVars introduced an assignment that could cause a try to be
executed with a non-empty stack, even after LiftTry had already run.
We now avoid this by introducing a temporary variable.
|
|\ \
| | |
| | | |
Fixes to scala2 Mixin
|
| |/ |
|
|/ |
|
|
|
|
| |
TermRefs do not have a classSymbol.
|
|
|
|
| |
This reverts commit a43d39ad719978fbb36663f336c1c7cd2c4da1e0.
|
|
|
|
|
| |
Phase lifts tries that would be illegal because they execute on non-empty
expression stacks.
|
|
|
|
| |
Non-local returns are now implemented.
|
|\
| |
| | |
Ycheck that methods defined in ClassInfo exist in tree.
|
| |
| |
| |
| | |
Mixi was not calling transformFollowing on generated setters.
|
| | |
|
| |
| |
| |
| |
| | |
Making a correct fix could take some time,
and I want to find other issues before I start working on this one.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Avoid crashes on double definitions
|
| | | |
|
|\ \ \
| | | |
| | | | |
Implement emission of annotations in GenBCode.
|
| | |/
| |/|
| | |
| | | |
Fixes #688
|