| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Plus further bug fixes.
|
| |
| |
| |
| | |
Plus various bug fixes and filling in missing functionality
|
| | |
|
| | |
|
| |
| |
| |
| | |
nameddefaults.scala now compiles without crashing
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Structured names are not Seqs anymmore. But the Seq behavior
is required in many places that mangle names. As an intermediate step
we drop the Seq basetype but add Seq behavior through a decorator.
Most Seq operations only work on SimpleTermNames and their
TypeName analogue, will throw an exception wehn called on structured
names.
|
| |
| |
| |
| | |
Keep start as a hash for SimpleTermNames because it distributed better.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This is a temporary step. If semanticNames is true we construct
structured qualified names, but check they have the same string
representation as the unstructured names.
|
| |
| |
| |
| | |
Subject to flags Config.semanticNames.
|
| |
| |
| |
| |
| | |
These always construct a new name, other derivations should
not commute with Qualified.
|
| | |
|
| |
| |
| |
| | |
Add machinery to define and hash cons derived names.
|
| |
| |
| |
| |
| | |
Reduce # of creation methods and make TypeNames
simple derived names from TermNames.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We now consider a type also as stable if it refers
to an ExprType whose result type is stable.
The previous commit made pos/z1720.scala break, because it
skolemized unstable argument types. This commit makes the test
pass again.
|
|\ \
| | |
| | | |
Fix #2220: Change handling of package objects and tweak hk type inference
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
1. Invalidate packageObj cache when entering a package object
2. Prefer package object members over same-named package members
unless we are in the scala package
3. Exclude package objects from no-double-bindings checks, since
package objects may now be visited before indexing them.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we believed that reducing type applications did not affect
type inference as long as the reduced type constructor had the same
arity as the unreduced one, for example reducing `Foo[X, Y]` is fine
when `Foo` is defined as:
type Foo[A, B] = Bar[A, B]
but not when it's defined as:
type Foo[A] = Bar[A, A]
But this is not a sufficient condition: the bounds of the type
constructor arguments also matter for type inference, so we need to be
more strict and disallow reductions in cases like:
type Foo[A, B] = Bar[B, A]
and:
type Foo[A, B] = Bar[A, Int]
|
|\ \
| | |
| | | |
Deterministically randomises test compilation order
|
| | |
| | |
| | |
| | | |
The previous implementation would compile tests in different orders from machine to machine, depending on the order in which *.scala files are listed by the operating system.
|
|\ \ \
| |_|/
|/| | |
fix #2166: unpickling of shared CaseDef
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- split LambdaType.equals into two equals so that tests
are more specific (also avoids type testing against
a trait)
- re-order cases in some pattern matches with the aim to
(1) move common cases earlier, (2) move more expensive
trait type tests later.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Two benefits: (1) less code. (2) finding subtle bugs about
parameter dependent method types. By merging with PolyTypes
we are forced to take parameter dependencies into account.
|
| | |
| | |
| | |
| | |
| | | |
It's too surprising to leave it as a type proxy. In all circumstances except
erasure, it is not true that a PolyType is somehow the same as its result type.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Use fromParams instead.
|
| | |
| | |
| | |
| | |
| | | |
- Use TypeLambda instead of PolyType.
- Further harmonize factory operations
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Replace with LambdaType
|
| | |
| | |
| | |
| | | |
Replace with ParamRef
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
... to distinguish between HK(proxy) and *(ground) types.
Also, refactor some more methods to keep it DRY.
|
| | |
| | |
| | |
| | | |
Also, rename LambdaOver{Type,Term}s to {Type,Term}Lambda
|