| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Retyping should not create new symbols and that includes local dummys.
|
|
|
|
| |
... to check whether tree types make sense. Still produces errors when enabled.
|
|
|
|
|
| |
Used to print <none> for denotations with a symbol,
now prints "some I" where I is the denotation's info.Reworked phases.
|
|
|
|
|
|
|
| |
Implemented splitting operations
As a side effect, this contains a test ruling out structural term member dispatch.
Tests 0586 and 0625 which used structural dispatch got moved to neg.
|
|
|
|
|
|
| |
Cannot discard a symbol simply because the other side's type is weaker.
If in (A | B)#m A and B resolve to different symbols `m`, the resulting denotation
cannot have either `m` as symbol; it must be NoSymbol instead.
|
|\
| |
| | |
Install method for SymDenotations
|
| |
| |
| |
| |
| |
| | |
Add a new method to install a SymDenotation after a specific
phase has run. The new denotation replaces the current denotation
of the symbol starting with the period after the given phase.
|
|\ \
| | |
| | | |
Bridge generation in erasure implemented.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Relies on meaning of "override" to see which bridges are required.
Doesn't take in account value classes for now
Uses 'adapt' used by erasure for converting arguments and return value.
|
|\ \ \
| |_|/
|/| | |
Reduce verbosity of logs.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We are already over limit on output size imposed by travis that is shown
in webpage, if we'll continue to add tests will be soon over limit even
to run builds.
This commit disables printing of classpath, and removes printlns in
several places.
In order for ShowClassTests to print info as is was printing
previously, please set "test.ShowClassTests.verbose" property.
|
|\ \ \
| | | |
| | | | |
Error reporting improvements
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/dotty/tools/dotc/typer/TypeAssigner.scala
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Diagnostic and might be nonsensical
Conflicts:
src/dotty/tools/dotc/typer/Checking.scala
src/dotty/tools/dotc/typer/TypeAssigner.scala
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
decouple Diagnostic from ContextBase
|
| | |/
| |/|
| | |
| | | |
remove all isSensical/SuppressedMessage logic from InfoString
|
|\ \ \
| |_|/
|/| | |
Topic/loggable transforms
|
| |/
| |
| |
| | |
using traceIndented in the transform method.
|
|\ \
| | |
| | | |
Documentation and a bit of cleanup.
|
| |/
| |
| |
| |
| |
| | |
Added documentation for non-trivial logic in Contexts, Phases and
TreeTransforms.
Removed redundant vars and casts
|
| |
| |
| |
| |
| |
| |
| | |
Replace member references for:
methods inside Any( == and !=)
## on primitives
.getClass on primitives
|
|/
|
|
|
|
|
|
|
| |
def p() = println().isInstanceOf[Long & Int]
was rewritten to
val ev$1: [T0]Boolean(x.isInstanceOf) = println().isInstanceOf
println().$isInstanceOf[Long & Int].&&(println().$isInstanceOf[Long & Int])
|
|
|
|
| |
Wrong helper method was used.
|
|\
| |
| | |
Transform/erasure
|
| |
| |
| |
| |
| | |
Refactored re-typing logic from erasure into seperate ReTyper class. Another candidate
subclass of ReTyper is a future TreeChecker.
|
| |
| |
| |
| |
| |
| |
| | |
withPhase operations in contexts are now memoized.
Conflicts:
src/dotty/tools/dotc/core/Contexts.scala
|
| |
| |
| |
| |
| |
| | |
clear is wrong. E.g. clearTyperState does not clear the typerstate at all. It installs a
fresh (i.e. cloned) copy of the previous one. clearScope is also wrong; it installs a new
scope, does not clear the current one.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The transformation framework needed to be changed so that contexts passed to
transformations have correct owner chains. These owner chins are demanded by
the Splitter phase.
Note: I eliminated the contexts array in TransformInfo because it interfered
with the owner computations. Generally, caching contexts with some phase is best
done in Contexts, because withPhase is also used heavily in othre code, not just in
Transformers.
New phase: Splitter
When it is complete, it will make sure that every term Ident and Select node
carries a symbol. Right now, all it does is coverting self reference idents to
"this"-nodes.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1. Object_isInstanceOf/asInstanceOf are no longer parameterized methods (seems there's
no point in writing x.$asInstanceOf[T]() instead of the shorter x.$asInstanceOf[T]).
2. Array constructor's type is unchanged (the previous rules erased it to
def <init>(len: Int)Object
which is clearly wrong).
3. indexing needs to be disabled.
4. typedTypeApply needs to keep type applications that apply to type tests and type casts as well as
array ops.
5. References to self-ids are typed ThisType(cls) before erasure; are replaced by This(cls) references
during erasure.
|
| |
| |
| |
| |
| | |
Right now uses a super-rudementary tree checker: we only check that every tree
has a type.
|
| |
| |
| |
| |
| | |
A list of names contains a phasegroup if it contains
any phase in the group.
|
| |
| |
| |
| |
| |
| | |
Methods appliedTo and translateParameterizes only apply before erasure (except on arrays).
Also, computation of a potential expensive yet redundant lub in assignType(SeqLiteral) is
avoided.
|
| |
| |
| |
| |
| | |
at the place forseen for the real pattern matcher, so that following
transformations do not have to deal with patterns.
|
| |
| |
| |
| |
| | |
If the arguments to a primitive conversion are not both numbers, the
conversion will either return the argument itself, or throw a ClassCastException.
|
| |
| |
| |
| | |
Need to update checkedPeriod when new denotation is computed.
|
| |
| |
| |
| |
| | |
A completer for a lazytype should run in the first phase
of the validity period of the denotation that gets completed.
|
|/ |
|
|
|
|
|
|
|
|
|
|
| |
Various fixes to the tree transformer.
In the denotation transformer we now keep self types around because otherwise
sourceModule would stop to work.
Conflicts:
src/dotty/tools/dotc/core/transform/Erasure.scala
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run now interprets correctly
-YstopBefore
-YstopAfter
-Yskip
-Tprint
phase settings. For now, we stop by default before
erasure, until erasure is fully debugged.
|
|
|
|
| |
Squash was accidenbtally turned off before. Is now on again.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Still missing: bridge method generation, signatures.
Other changes
- Turned around Checking and NoChecking. Checking is the default, NoChecking
disables it.
- Refactored Typer#typed to expose typedNamed, so that it can be overridden in
erasure.
- Made logging more forgiving wrt off-buy-one phase errors.
Conflicts:
src/dotty/tools/dotc/typer/Typer.scala
|
|
|
|
|
|
| |
Added general way to produce summaries when shwowing trees or types.
Summaries have limited, configrable recusion depth.
fix showSummary
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
New method ensureApplied which will add a () parameter list if
a tree's widened type takes parameters.
Used in numericConversion, so that we are independent whether we
run before () insertion or after. With that change TypeTestCasts can stay enabled for
the whole build.
Conflicts:
src/dotty/tools/dotc/ast/tpd.scala
|
|
|
|
| |
To be executed before erasure.
|