| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Bringing file names tpd/untpd in line with the objects they define.
|
|
|
|
| |
- make namedParts return an ordered collection.
|
|
|
|
| |
All occurrences replaced by select, or second version of Term/TypeRef.apply
|
|
|
|
|
|
|
|
|
| |
New operations:
- typeRef
- termRef
- valRef (like termRef, but with NotAMethod signature)
- termRefWithSig (like termRef, but with denotation's signature)
|
| |
|
| |
|
|
|
|
|
| |
Select reduces refinetype/typeref pairs and is therefore preferable over raw NamedType.
Still need to do the same for TypeRefs.
|
| |
|
|
|
|
| |
Was still using the old-alias scheme, which is ineffective now.
|
|
|
|
| |
Previously, some trees could contain subtrees with NoPosition. This happended when a tree had both positioned children and other children with NoPosition. When setting the synthetic position of a tree, the NoPosition children were not visited.
|
|
|
|
|
|
| |
p <- xs
for irrefutable pattern `p` used to be expanded to `xs.withFilterIfRefutable`, now is expanded to just `xs.withFilter`.
|
|
|
|
| |
For interoperability we will keep for the time being the traditional treatment of tuples as instances of Tuple 2… Tuple 22. The new hlist-like treatment will be done in a future step. The flip is controlled by variable "unboxedPairs".
|
|
|
|
| |
It turned out the some trees were still carrying NoPosition in their pos fields. The new treatment avoids that and aslo adds some assertions to check for regressions.
|
| |
|
|
|
|
|
| |
1. Added a "simplified" method which gets called on type varianvle instantiation and interpolation.
2. Fixed a problem in TypeAccumulator which did not take the variance into account for Co/Contra type aliases.
|
|
|
|
| |
Constructors of parameterized classes now get polymorphic types when unpickled, as is the case when defining them or when reading them from a Java classfile. This caused a ripple of other faults which this commit also fixes.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Previously, { () }
was expanded to { (); EmptyTree }, because the empty tuple is not a term tree. Now EmptyTree is inserted only after a definition.
Furthermore, blocks ending in EmptyTree are now replaced by blocks that end in a unit literal.
|
| |
|
|
|
|
|
| |
In particular, changed internal representation of Java constructors and
changed treatment of parent constructors in templates.
|
|
|
|
|
|
|
| |
symbol.
The alternative (tpe eq sym.typeConstructor) does not work because types are not unique.
The alternative (tpe.typeSymbol == sym) does not work because other types than TypeRefs have typeSymbols.
|
|
|
|
| |
Main refactoring: lub/glb moves to type comparers.
|
|
|
|
|
|
| |
… after figuring out the root cause: conforms needs to be renamed because otherwise it shadows Predef.conforms.
Also fixing two bugs in Desugar.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
… more to come. Plus some bugfixes.
|
|
|
|
|
|
|
|
|
|
|
| |
1) Refactoring of package loaders that ensures that a package is always loaded before new members are entered. This led to a refactoring of sourceModule in completers into its own trait
2) Refactoring of optSelfType ot selfInfo. Class Infos may now have a reference to a symbol in their selfInfo field, instead of always a type, as it was before. This allows to introduce laziness for self type evaluation. Laziness is needed so that modules can be desugared and the desugared version be compiled without special tricks.
3) <init> and $init members are no longer inherited.
4) Refactoring of createSymbol and enterSym, so that creating symbols and entering them in a scope is decoupled.
Renamed the driver operation form `enterSym(s)` to `index`.
|
|
|
|
| |
… and cleaned up and simplified other context-reated features.
|
|
|
|
| |
Module classes no longer contain an explicit self type referencing the module val (this leads to cycles). Self type is instead handled by the completer.
|
|
|
|
|
| |
The idea is that getters shoul dbe generated later (probably during UnCurry). This is much better for handling modules,
and also obviates the need to have LocalNames. Getters can be generated as soon in the compilation pipeline as methoda always get a parameter list. That way, we can distinguihs getters from fields without playing any tricks with names.
|
| |
|
| |
|
| |
|
|
|
|
| |
Also revised handling of SeqLiterals by replacing additional type member with split into SeqLiteral and JavaSeqLiteral.
|
|
|
|
| |
Also some fixes in adapt wrt patterns.
|
|
|
|
| |
Also issues an error on returns form methods missing a return type.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Fleshed out handling of typevars for type inference. Also added some more methods to typer, for blocks, ifs and assignments. (Closures are still wip).
|
|
|
|
| |
Partial revert of previous two commits. Creation methods are no longer implemented on Instance, but separately in untpd and tpd. It turned out that tree copying should not use typed creation methods (would tie in too many things into one complex knot). So there was no generic (between typed/untyped) usage of creation methods left. In that case it seemd better to implement the methods separately in tpd and untpd. That way, we do not need to carry a useless context in untpd methods and we do not need to block unavailable methods in tpd with "unsupported".
|
|
|
|
|
|
| |
1) Trees are now contravariant.
2) All creation ops, transformers, copiers are pushed into Instance.
3) Still to do: integrate TreeMappers and tpd.TreeTransformers.
|
| |
|