| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
...unless the HK type can be eta-reduced to a class type.
|
|
|
|
|
|
|
|
|
|
| |
Now also allows to reduce something like
([T] => Map[T, String])
to
Map[_, String]
|
|
|
|
|
| |
Accidentally forwarded to rawTypeParams. This solved the problem with mismatching
type params in appliedTo that was caught in testLifted.
|
| |
|
|
|
|
|
| |
Replace occurrences of isLambda with isHK, because isHK is
a bit faster and simplier.
|
|
|
|
| |
It's no longer needed with new hk scheme.
|
|
|
|
|
|
|
|
| |
These are not user-accessible types, so no need to follow
type convention and write in upper case.
Also, rename occurrences of lambda to Lambda, to make clear
we mean a type lambda.
|
|
|
|
| |
by removing dead case.
|
|
|
|
| |
Want to have a unique name for Apply, so that tests for higher-kinded types become cheaper.
|
| |
|
|
|
|
|
|
| |
Previously, only pattern bound arguments were adapated. This was an oversight.
Also, change logix so that we survive empty type parameter lists. This was
also an oversight before.
|
|
|
|
|
|
| |
Turn a possible NPE into an AssertionError. The latter
are caught in pickleTree, so an error leaves a trace about
what was pickled.
|
|
|
|
|
|
| |
Used to be just instantiated lambdas. With the new scheme
every type with a kind higher than * needs to be projected
with #Apply.
|
|
|
|
|
|
|
|
| |
Rewrite a type application like
([HK$0] => C[HK$0])(T) to C[T]
Avoids application cahins to become unnecessarly large.
|
|
|
|
| |
This aligns typeParams and rawTypeParams. It's not strictly to necessary, though.
|
|
|
|
|
|
|
|
| |
Discrepancies between numbers of formal and actual type arguments were
observed when typing partialFunctions.scala under new scheme.
Should come back to this when subtyping is rewrittem/simplified to
work with new hk-scheme. Maybe testLifted is no longer needed at all.
|
|
|
|
|
| |
Derived types already contain the lambda abstractoion; lambda abstracting
them again would cause a double lambda.
|
|
|
|
|
| |
New hk-scheme caused cycles in elimExistentials which are fixed
by this patch.
|
|
|
|
|
|
| |
When unpickling from Scala2 TypeRefs with arguments which do not
refer to classes, use EtaExpand instead of LambdaAbstract. Lambda Abstrct
is wrong since it drops type arguments.
|
|
|
|
|
| |
Needed to avoid cycles involving F-boundes hk-types when reading Scala2 collection classes
with new hk-scheme.
|
|
|
|
|
| |
parameterizeWith picked between simple hk types and lambda abstraction.
No longer needed because now we always lambda abstract.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
EtaReduce will be used to keep applications on eta expanded methods small.
|
|
|
|
|
|
|
| |
This would lead to a crash. Example is in Predef:
object Pair
type Pair
|
|
|
|
|
| |
Previously, we did this only in applications in rhs of type definitions.
Need to do it everywhere.
|
|
|
|
|
| |
Without the additional `typeParams.nonEmpty` condition we got a crash
in t1439.scala
|
|
|
|
|
| |
... and move to TypeApplications. isLambda test
was the wrong way before.
|
|
|
|
|
|
| |
Erreneous programs could have a difference in lengths
between type parameters and type args, but this is tested
anyway in Typer.
|
|
|
|
|
| |
Now catches attempts to recursively force a LazyRef type
that's in train of being evaluated.
|
|
|
|
|
|
| |
It used to be "assertion error: NoType" whenever sigName git
a projection of a missing member. Now we find out about
what type was projected.
|
|
|
|
|
| |
With the hk-types schem changed, we need to make sure that actual and formal argument lists
of parameterized types have the same length.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Avoid forcing info if the reference goes to a class. This avoided
a CyclicReference when reading Scala's standard library form pos/collections
when fiddling with the hk logic.
|
| |
|
|\
| |
| | |
Fix 791
|
| |
| |
| |
| |
| | |
Afterwards, implicit conversions are no longer available.
Fixes #791.
|
| | |
|
|\|
| |
| | |
Fix #789 problems in erasure
|
| |
| |
| |
| |
| | |
Makes self types explicit, if this is needed to identify
a member in a select. Fixes #789.
|
|\|
| |
| | |
Fix weaker access errors
|
| |
| |
| |
| |
| | |
A bridge cannot have weaker access than the symbol it overrides.
This triggered an assertion error on "clone" for pos/t2183.scala.
|
| |
| |
| |
| | |
Fix typo, and print infos alongside fully qualified names.
|
|\ \
| |/
|/| |
bin/dotc: add an option to run -tasty.
|
| |
| |
| |
| | |
@vladimirNik, should simplify your life
|
|\ \
| | |
| | | |
Memoize: Support creating valid trait setters
|