| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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.
|
|
|
|
| |
These don't have a symref in their .tpe, so we should just print `_` instead of the type of the tree.
|
|
|
|
| |
Controlled by option -Yprintpos
|
|
|
|
| |
When printing the type of a non-overloaded RefTree (Ident, Select, SelectFromTypeTree), the reference itself is no longer printed.
|
|
|
|
| |
Uninstantiated type variables are now marked with ? instead of ''. The marking with '' is ambiguous becuase it could also mean an instantiated type variable that refers to another instantiated type variable.
|
| |
|
| |
|
|
|
|
| |
Refined type printing gave {<none>} if the refined name did not have a member in the parent. We now print the refined name instead.
|
|
|
|
| |
Normal singleton types are printed "underlying(value)". For modules that would give a duplication, which is avoided by this commit.
|
| |
|
| |
|
|
|
|
|
|
| |
1) Made consistency checking water tight, so that inconsistencies are always catched wehn they arise
2) Fixed problem in implicit search that led to inconsistencies
3) Refined printing of type parameters and type arguments
|
|
|
|
| |
Now displayed with =+, =-.
|
|
|
|
| |
If symbol was given explicitly, return it directly rather than going through denot.
|
|
|
|
| |
Parsing inner classes of generic outer classes requires a name-unexpansion.
|
|
|
|
| |
Main refactoring: lub/glb moves to type comparers.
|
| |
|
|
|
|
| |
Main blooper: TypeVars got dereferenced in all Typemaps, so disappeared too quickly from types during inference.
|
| |
|
|
|
|
| |
Avoid using symbols that might not exist when doing that.
|
|
|
|
| |
NamedTypes need not have an existing symbol, so one should print the name in the type instead.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Some initial bug fixes.
Added -explaintypes diagnostics.
|
| |
|
|
|
|
| |
Fleshed out handling of typevars for type inference. Also added some more methods to typer, for blocks, ifs and assignments. (Closures are still wip).
|
|
|
|
|
|
| |
1) Trees are now contravariant.
2) All creation ops, transformers, copiers are pushed into Instance.
3) Still to do: integrate TreeMappers and tpd.TreeTransformers.
|
| |
|
|
|
|
| |
SeqLiterals no longer have an elemtpt subtree. Their type is now no longer a RepeatedParamType, but instead an instance of SeqType or ArrayType.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added Applications class to represent applications
- Added Constraint class to represent type constraints
- Added TyperState class to represent typer state
- Added Diagnostic class to buffer errors and warnings
- Added Inferencing class that contains some common functionality for type inferencing (this one's still rudimentary).
- Added extractor for FunctionType in Definitions
- Added desugaring of default parameters to default getters in Desugar
- Added flags to deal with default parameters
- Added substitutions that replace bound parameters
|
|
|
|
|
|
| |
Changed the algorithm for & (and also |) to take accessibility into account. Fixed various problems that opened up when doing this.
Under -debug, new and old behavior of & are checked side-by-side and any discrepancy is noted.
|
|
|
|
| |
ClassDefs are now TypeDefs that have a Template as rhs.
|
|
|
|
|
|
| |
Typed TypeDefs no longer carry tparams. Untyped ones still do, but there is a special PolyTypeDef node for them in untpd.
Also, fixed flatten and DeSugarTest to deal with new tree desugarings which are not idempotent (e.g. desugar.classDef, or desugar.valDef).
|
|
|
|
|
| |
Also, changing the maps in Namer. More commenting needs to be done. Pushing now to get off this machine and
back to the new one, which just came back form repair.
|
| |
|
| |
|
|
|
|
|
| |
Replaced by tpd.Tree and untpd.Tree.
Also some cleanups in RefinedPrinters.
|
|
|
|
| |
Moved all other elements of TypedTrees and UntypedTrees into tpd and untpd.
|
|
|
|
|
|
|
| |
1) Getting rid of ugen in favor of untpd.
2) Eliminating some unused methods
3) Splitting out CheckTrees from TypedTrees.
4) Moving trees and related classes into separate package dotc.ast
|
|
|
|
| |
With various other small changes.
|
|
|
|
|
| |
Split printers into several files. Added refined printing of trees. Changed Showable and generalized printing
under a precedence.
|
| |
|
|
|