| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
Also fixed a couple of bugs related to message suppression and error reporting.
|
| |
|
|
|
|
| |
new string interpolator "i" for info strings. Computing an info string performs some compiler specific display operations and also allows to suppress an error message entirely if it refers to something non-sensical.
|
|
|
|
|
| |
Some initial bug fixes.
Added -explaintypes diagnostics.
|
|
|
|
| |
Files with $'s need not be loaded during typer.
|
|
|
|
| |
To get this to work, we need to store the name of a scope netry irectly in the entry. This is arguably the right model anyway. A symbol can have different denotations with different names, and it might exist under different names in different scopes. In the previous model once a symbol's name changed in some phase, all scopes referring to that symbol from previous phases would become invalid. Now, the symbol is still visible under its original name.
|
| |
|
|
|
|
| |
Left dummies for Compiler and Run.
|
| |
|
|
|
|
| |
Also changed some maps to mapconserves to avoid unnecessary tree copying.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
one is given for the same package or object.
|
|
|
|
| |
Also, removed redundant Trees. prefixes in patterns.
|
|
|
|
| |
Going through baseType.typeArgs does not work, as the baseType is not structurally a type application.
|
|
|
|
| |
SeqLiterals no longer have an elemtpt subtree. Their type is now no longer a RepeatedParamType, but instead an instance of SeqType or ArrayType.
|
|
|
|
| |
Also: made RepeatedParamTypes aliases of their underlying types, in order to avoid any incompatibilities.
|
|
|
|
|
|
|
| |
- Pushed mode into context
- Elimintaed scope nesting level
- Fixed a desugar bug
- Added constant folding
|
| |
|
| |
|
|
|
|
| |
future integration of reporters in typerstate.
|
| |
|
|
|
|
|
|
| |
Still to do:
- properly account for bounded wildcard types
- set up scheme for nested diagnostics buffers.
|
| |
|
| |
|
| |
|
|
|
|
| |
period is properly contained in the validty periods of all its parent classes. This is necessary to ensure that parent- and member-based caches in a ClassDenotation never become invalid.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
A TypeVar is essentially a container whose contents can be "flipped" from a PolyParam to an instantiated type.
Adding TypeVars avoids subtitutions of large trees and all their types which would otherwise be necessary when a type parameter is instantiated at some point.
|
|
|
|
| |
… and got started with typing applications.
|
|
|
|
| |
Re-organized constraints and type comparers and added methods that will be needed for type inference.
|
| |
|
| |
|
| |
|
| |
|