| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
It is used twice, should use same logic each time.
|
|\
| |
| | |
LazyVals: fix volatile lazy vals initialization
|
| |
| |
| |
| | |
Used to incorrectly set status field.
|
|\ \
| | |
| | | |
Fix #756 super accessors
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Avoid using unexpanded name because it can give wrong results for super accessors
of symbolic names. See #765. Without this commit t2183.scala crashes the compiler.
|
| | |
| | |
| | |
| | |
| | | |
There was a transcription error from scalac which caused the scope
of a `!` to be wrong.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Scalac seems to treat superaccessors of traits in a rather peculiar way. They are
left unexpanded so that a class implementing several traits with the same superaccessors
will get duplicate methods with the same name. It seems this is then resolved in the backend.
Here we solve the issue by expanding the names of trait super accessors immediately.
|
|\ \ \
| |_|/
|/| | |
Fix repeated
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Map a T* via underlyingIFRepeated to a Seq[T] in the
parameter ValDef of a closure. Without this change,
fun/sammy_repeated.scala fails to YCheck under the new
test introduced in the last commit.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Dotty allows T* types only for parameter types of MethodTypes (and for
repeated arguments); all other ocurrences have to be translated to the underlying type.
TreeChecker now verifies that Ident and Select nodes never carry a repeated parameter
type.
|
| | |
| | |
| | |
| | | |
VALsyms don't need the special setup of a module class unpickler.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
refOfDef is used in desugaring case classes, specifically the definition of an apply method.
Here it is necessary to pass a vararg argument (x: _*) if the case class parameter is repeated.
This functionality is now added to `refOfDef`. I verified that the other uses of `refOfDef` are
compatible with this change.
Fixes #768.
|
|\ \ \
| |/ /
|/| | |
Fix final vals
|
| | |
| | |
| | |
| | |
| | | |
Introduce a new non-terminal "SimpleLiteral". Only SimpleLiterals can be
types.
|
| | |
| | |
| | |
| | |
| | | |
Tested are now other numeric values, strings, booleans, which are
all legal singleton types.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Null and 'sym are not legal as singleton types because the underlying
values are not stable. They are rejected now outright instead of issuing
a cryptic "X is not stable" error message.
|
| | | |
|
| | |
| | |
| | |
| | | |
It's decided that constant types and purity are independent.
|
| | |
| | |
| | |
| | |
| | |
| | | |
As the comment in pos/singletons.scala says, we currently
test only constant propagation during typer. We should also have a
test that literalize produces the literals in the right places.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This duplicates scalac behavior. Awaiting inline, this is a stopgap because we need this to work
for the bootstrap. Once we have inline (and a migration tool that rewrites final to final inline)
we can migrate this functionality over to inline values.
|
| | |
| | |
| | |
| | | |
Only the parser needed to be updated. Everything else works out of the box.
|
|/ / |
|
|\ \
| | |
| | | |
Mixin: class defined abstract members take precedence over interface defined.
|
| | | |
|
| |/
| |
| |
| |
| | |
In case we have an class-defined abstract member implemented
by a trait we need to create an explicit forwarder.
|
|\ \
| |/
|/| |
Constructors: fields should be set before super constructor is invoked.
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
dotty-staging/fix-liftedTry-capturedVars-interaction
Fix lift try and captured vars interaction
|
| | |
|
| |
| |
| |
| |
| |
| | |
installAfter now overwrites denotaton also when the first denotation of a symbol is defined
after the current phase. Previously, a new denotation with a last valid phase before a first
valid phase was created.
|
| |
| |
| |
| |
| | |
Checks the hypothesis that lifting a try may safely move expressions
into a ValDef owned by a new temp var.
|
| |
| |
| |
| |
| |
| | |
CapturedVars introduced an assignment that could cause a try to be
executed with a non-empty stack, even after LiftTry had already run.
We now avoid this by introducing a temporary variable.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
It can happen that changeOwner sees symbols that are not defined yet at the phase where
the method is run. Such symbols should be ignored.
|
|\ \
| | |
| | | |
Typo fix in trait Lambda$II definition
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fixes to scala2 Mixin
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
As one can call them either indirectly through mixin composition or directly through super[Mixin].foo
|
| | | |
| | | |
| | | |
| | | | |
If a stable view on names is needed, better access them during a predefined phase.
|
| | |/
| |/|
| | |
| | | |
Need to do the very same transformation in AugmentScala2Traits.
|
|\ \ \
| | | |
| | | | |
ExpandSAMs: create isDefinedAt with correct name.
|
|/ / /
| | |
| | |
| | | |
Used to create a method named $isDefinedAt
|