| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Better comments and refactorings that move some things around
so that less modules depend on Inliner.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drop @dotty.annotation.inline. This will inline all
@inline marked methods in Scala for which a body is known
(i.e. that are either compiled in the same run or have Tasty
trees available).
Option -Yno-inline suppresses inlining. This is needed for
the moment because some @inline methods access private members
or members that are otherwise inaccessible at the call-site.
Also fixes some problems in Inliner
- make sure type arguments to inline calls re fully defined
- don't forget recursive calls in typeMap
- don't forget positions in treeMap
- drop dead code dealing with outer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Don't retypecheck the arguments of an inlined epressions.
These might be very large (e.g. inlined track, or traceIndented in dotty)/
2. Keep track of inlined calls in context instead of
Inlined nodes. We only need the to compute the source file, the rest
is irrelevant.
3. In Def bindings of inlined by-name parameters, change owner of right
hand side. Otherwise we get incorrect owner chains.
4. In TreeTypeMap, treat Inlined in the same way as a block.
|
|
|
|
|
| |
- represent directly as a list
- can replace separate inlineCount
|
|
|
|
|
| |
Error messages now print the inlined positions as well
as the position of the inlined call, recursively.
|
|
|
|
|
|
| |
Roll `sm` and `i` into one interpolator (also called `i`)
Evolve `d` to `em` interpolator (for error messages)
New interpolator `ex` with more explanations, replaces disambiguation.
|
|
|
|
|
| |
Mode is used from a lot of low-level code, does not just reflect Typer info.
So it makes more sense top to place it in the core package.
|
|
|
|
|
|
|
|
| |
There were two architectural errors here, which confused TreeTransforms and MiniPhases
and which caused "NotDefinedHere" on transformFollowing:
1. TreeTransforms should not have idx fields, MiniPhases have them.2
2. TreeTransformers initialize arrays of MiniPhases not TreeTransforms.
|
|
|
|
|
| |
This was uncovered by previous commit "Fix isSubType bug ...".
Also removed two redundants ".fresh" calls in "fresh.addMode".
|
|
|
|
|
| |
I scanned the main sources with IntellIJ's spell checker and
corrected what showed up.
|
|
|
|
|
|
|
| |
We saw a failure of accessing a denotation outside its defined interval, which got triggered
by i"...". This should never be the case. We should be more interested in what i"..." has to print.
(V2, to see whether this builds with Travis now)
|
|
|
|
|
|
| |
- treated nested Matches correctly
- treat nested packages correctly
- SELECT always needs to select with sig
|
| |
|
|
|
|
|
|
|
|
| |
TreeChecker now tests that a symbol does not have two definitions that define it,
and that every reference to a symbol owner by a term is in the scope of a definition
of that symbol.
Both tests fail on several files for pattern matcher.
|
|
|
|
|
|
|
| |
Catch exceptions and embed into string instead of passing exception on.
Reason: i"" strings are for diagnostic output but may cause exceptions such
as CyclicReferences, stale symbols and so on. We never want to crash the
program with such an exception.
|
|
|
|
|
| |
Most transformations are subclasses of phase. Having a generic name
like `name` in scope everywhere is therefore very risky.
|
|
|
|
|
|
|
|
| |
TreeTransforms are no longer phases. This allows to generate
new transforms in prepare... methods without running into the
problem that thee new transforms are undefined as phases.
It also makes for a cleaner separation of concerns.
|
|
|
|
|
|
|
| |
- Some new functionality in tpd and in Symbols.
- Added `sm` interpolator to print nicely.
- Make use of nestedMap where possible.
- Add IdentityDenotTransformer as a convencience class
|
| |
|
|
|
|
| |
remove all isSensical/SuppressedMessage logic from InfoString
|
|
|
|
|
| |
A list of names contains a phasegroup if it contains
any phase in the group.
|
| |
|
|
|
|
|
|
| |
- moving out type applicaton related operations to a decorator: TypeApplications
- converting some set operations to list operations to make them replayable.
- moving unused operations to Types.overflow
|
| |
|
|
|
|
| |
Main refactoring: lub/glb moves to type comparers.
|
| |
|
| |
|
|
|
|
| |
Also, special treatment of <init>, which is not encoded.
|
|
|
|
|
| |
Split printers into several files. Added refined printing of trees. Changed Showable and generalized printing
under a precedence.
|
| |
|
| |
|
| |
|
|
|
|
| |
Manjor change is that splitArgs got eliminated and replaced by an optimized version of typeArgs.
|
| |
|
|
|
|
|
|
|
| |
Added reporters.
Added context for signatures.
Implemented method signatures via erasure.
Refined derivedNameType handling.
|
| |
|
|
|
|
| |
LocalNames.
|
| |
|
|
|