| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Added check for double def if owner of scope is not a class. For class members we will need a more refined
check. One way to do it is to immediately rule out doubly defined members with same signature.
|
| |
|
| |
|
|
|
|
|
|
|
| |
1. Changes to SAMType extractor
2. Self names are no longer members of enclosing class
3. SAM-Type closures now print with their result type.
4. refactoring newSkolemSingleon ==> narrow
|
|
|
|
|
|
|
|
|
| |
1. We forgot to mark declaration symbols Deferred.
2. Types with NoPrefix and the same name got identified. Fixed by adding a new category WithNoPrefix to named types, and changing the way named types get generated.
3. Self types lacked parameters. (Question: Do we need to also track type members?)
4. Printers caused cyclic reference errors. Now some print operations are more careful with forcing.
5. Namedparts accumulator has to be more careful with ThisTypes. Because self types now contain parameters, which might lead back to this, we only add the class name (or the source module, if it's a module class).
6. toBounds in TypeApplications needs to use Co/Contra aliases for expanded name parameters, not just local ones.
|
|
|
|
|
|
|
|
|
|
| |
We ran into a flase path in a situation like this before:
A <: B where
Type A: A type alias that refers to a constrainable PolyParam P.
Type B: An abstract type with bounds L..H.
Previously, we would have instantiated P to L, whereas instantiating to B would be the right choice.
|
|
|
|
| |
Before, TreeInfo would mis-predict whenever trees were inserted with TypedSplice. We should make sure the rest of the compiler also takes TypedSplices into account when matching on trees. It's a systemic risk. Not sure we can avoid it with a better design.
|
|
|
|
|
|
| |
1. Got rid if InSuperInit mode bit.
2. Fixes to typing assignments
3. Import qualifiers need to be stable
|
|
|
|
|
| |
1. Lifted defs should not get expr or singleton types of the lifted value. Need to widen.
2. In op-assignments we need to lift the prefix of the lhs function, not the function itself.
|
|
|
|
| |
Fixed a problem where an import and a definition in same scope were erroneously regarded as a conflict (L20 in typedIdents.scala)
|
|
|
|
|
|
|
| |
The problem was that in FunProto#typedArg we cache typed arguments, to retrieve them later, possibly in a different context (Example: typedArg might be computed during overloading resolution, and then cached copy
might be inserted in resolved call. The problem is that any errors, warnings or other diagnostics might be swallowed, if typedArg is computed in a context that is not committed but then re-used in a committed context.
The fix is to cache typed arguments only if no diagnostics were issued during their computation.
|
| |
|
|
|
|
| |
with symbolic name.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Previously Any & NoType was NoType, whereas it should be Any
Similarly for combinations of Nothing with NoType and also for |
|
| |
|
|
|
|
|
| |
- now handles the case where names in NamedArgs are wrong
- assertion check that default getter is indeed present
|
| |
|
| |
|
|
|
|
| |
Previous one was a no-op, because <init> is excluded from Name#encode
|
| |
|
| |
|
|
|
|
| |
Filters did not show the "if" before.
|
|
|
|
| |
Have to strip TypeVars so as to not enter them as bounds.
|
| |
|
|
|
|
| |
Also, widening before computing an annotated type.
|
| |
|
|
|
|
| |
Also: Standardized on selectorName; Translate $init$ to <init> when unpickling.
|
| |
|
|
|
|
| |
Trait constructors are now also called <init>. When expanding traits we might want to use IMPLCLASS_CONSTRUCTOR.
|
| |
|
|
|
|
| |
Previously printing a simple name always suppressed a module class suffix, which led to sometimes confusing output. Now we are more selective where the suffix is suppressed.
|
| |
|
|
|
|
| |
Plus more commenting of Desugar
|
|
|
|
| |
Now come with test cases.
|
|
|
|
| |
In particular: Changed the scheme to represent the types of setter parameters.
|
|
|
|
|
|
|
|
|
|
|
| |
NarrowMostSpecific does no longer disable implicits. With implicits disabled, the system is unable
to prefer
def + (x: Int): Int
over
def + (x: Float): Float
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Some code simplification + a change where non-idempotent Selects in function prefix position are now lifted as a whole (previously, only the prefix was lifted).
|
| |
|
|
|
|
| |
Still to do: catch cycles.
|
| |
|
|
|
|
| |
Also: Making VarianceMap a SimpleMap for replayability
|
| |
|