| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | | |
Erasure inserts boxing and unboxing of label returned values, ignoring the fact that some labels do not return.
Now this is taken into account also inside labels which refer labels themselves
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Includes fixed for emitting string concatenation if string originates from an array.
Eg `"hello " + Array("world")(0)`
|
| | | |
|
| | |
| | |
| | |
| | | |
compiling dotty is stil WIP
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Ident('_') was reaching backend in rhs of body of initialiser methods.
This phase replaces those initialisers with default values of corresponding type.
|
|\ \ \
| | | |
| | | | |
Check validity of symbols in Ycheck
|
| | | |
| | | |
| | | |
| | | | |
For now check if symbol was already defined and if classes have a valid superclass.
|
| | | |
| | | |
| | | |
| | | | |
As we are now synthesizing companion objects for all classes, this seems reasonable to have.
|
|\ \ \ \
| | | | |
| | | | | |
Fix #400
|
| | | | |
| | | | |
| | | | |
| | | | | |
In a call-by-name arg, replace () => f.apply() with f only if f is pure.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
New test for valueclasses
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Re-instantiated t2667.scala, which failed before because of issue #390.
Also changed order of tests in isDerivedValueClass, to make more disriminating test come first.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
add/strict
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add -strict option to do some type checks that are encessary to ensure type soundness, but
are stricter than what Scala 2.x enforces.
The first such test is the "pattern cannot be uniquely instantiated" problem where we reject a
non-variant case subclass of a covariant superclass in a pattern match. The error is now only
issued in -struct mode, otherwise it will be a warning.
We might move more tests into the same category. This should help the transition.
|
|\ \ \ \
| | | | |
| | | | | |
`AnyVal` is not a derived value class
|
| | | | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
Fixes to class field initialization
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Class fields were not initialized from constructor parameters before.
This is now fixed. The fix uncovered some problems with the treatement
of outer parameters which are now also corrected.
|
|\ \ \ \
| | | | |
| | | | | |
Compiler#newRun: reset the context _before_ initializing a new run
|
|/ / / /
| | | |
| | | |
| | | |
| | | | |
Previously it was incorrectly done after the run was initialized, this
fixes #391.
|
|\ \ \ \
| | | | |
| | | | | |
Move ElimByName as late as possible.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
ElimByName might be merged with erasure, so we can alreayd move it
as close a pssoble to it. Verified that it can't be moved beyong ResolevSuper,
but not why.
|
|\ \ \ \
| | | | |
| | | | | |
The fold reverses the order of the typed strings.
|
| |/ / / |
|
|\ \ \ \
| |/ / /
|/| | | |
Drop/throw
|
| | | |
| | | |
| | | |
| | | | |
Having backend abstracted away from AST helps a lot here.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Replace with
<compiler-ops>.throw(exception)
Only leave Throw as an untyped tree.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Compiler interpreted methods now have a home in OpsPackage.
The first such symbol is dummyApply.
But other symbols representing primitive operations (e.g. array
operations) could also go there.
|
|\ \ \ \
| |/ / /
|/| | | |
FullParameterization: fix rewiring of Returns
|
| |/ /
| | |
| | |
| | |
| | | |
The `from` field of a Return tree should either be EmptyTree or an Ident
corresponding to the method we're returning from.
|
|\ \ \
| |/ /
|/| | |
Fix bug which prevented New over type-instantiated aliases.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously,
type Map = HashMap[Int, String]
new Map
did not work. See test aliasNew.scala for a test.
Formerly this logic handled in Parsers (wrapNew),
but that one does not work for aliastypes.
|
|\ \
| | |
| | | |
Fix of #375 - adapt returned value in erasure
|
|/ / |
|
|\ \
| | |
| | | |
make Ycheck a phase
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Do not die if phases aren't squashed
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Fix for #371
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This causes backend to fail with ambiguous reference when loading
member "equals" of object "BoxesRuntime".
The reference is indeed ambiguous. BoxesRunTime has a two paremeter
equals method and, with the fix, inherits the one-parameter method from
Object. The backend needs to disambiguate, e.g. by demanding the `decl`
equals in BoxesRunTime instead of the member.
|
|\ \
| | |
| | | |
Type stealer, take 2
|
| | |
| | |
| | |
| | |
| | | |
Proposed to be used from repl: it gives you internal
representation of types after frontend and a context to play with them
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Dotty requires a mangled bootclasspath to start.
It means that `console` mode of sbt doesn't work for us.
At least I wasn't able to make sbt fork in console,
so instead I've added a Scala-repl into dotty itself :-)
It would be good to make it use dotty one day when we have
a backend :-)
|
|\ \ \
| |/ /
|/| | |
Fix the synthetic methods of value classes
|