| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
No need to form the glb.
|
| |
|
| |
|
|
|
|
|
| |
Do it only if at least one of the types has unnamed parameters. This is
a fundamental conflict with how we deal with intersections and unions.
|
|
|
|
|
|
| |
When instantiating a type variable, make the instance has the same named
type parameters as the upper bound. This is the analogue of kind-correctness
for named type parameters.
|
|
|
|
|
| |
Add methods for expressing what the named type parameters of a class or type are.
Also, add a method that widens a type so that is has a specified set of named type parameters.
|
|
|
|
| |
Explicitly given type parameters were printed twice.
|
|
|
|
| |
The intent is that Repr implementations should not bind the Out parameter.
|
|
|
|
| |
Type was printed in raw form.
|
|
|
|
|
|
|
| |
vcInlineMethods could produce a different type on rewire which led to a -Ycheck failure. We now insert
a cast when that happens.
Test case: pos/flowops1.scala with -Ycheck:vcInline.
|
| |
|
|
|
|
|
| |
The previous formulation broke for named parameters.
Test case in flowops1.scala.
|
|
|
|
|
|
|
|
|
| |
Simplified logic and now check prefixes of TypeRefs.
Without the simplified logic we would get false cyclic errors for ski.scala.
Test case: flowops.scala
Fixes #1185.
|
|\
| |
| | |
Improvements & bugs that were discovered while implementing specialization.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
There were two sources of inefficiency in previous scheme:
- if symbol was no overriding anything the forwarder was still being
created
- the class that is will have the forwarder was not considered.
Many methods do not require forwarders as JVM will dispatch correctly.
|
| |
| |
| |
| |
| | |
dropEmpty is not as clear, as it does not indicate what it drops.
Additionally makes phaseName by in sync with class name.
|
| |
| |
| |
| | |
Otherwise can create trees that do not pas Ycheck.
|
| |
| |
| |
| | |
Just like normal accessors.
|
|\ \
| | |
| | | |
dotc settings: String options after settings with colon shouldn't be ignored
|
| | |
| | |
| | |
| | |
| | |
| | | |
whitespace
Format of some of the compiler settings was incompatible with scalac. For example "-target:jvm-1.8" is a valid argument for scalac, but it should be "-target: jvm-1.8" (with a whitespace) for dotc.
|
|\ \ \
| | | |
| | | | |
better positioning of `_*` not last argument error
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The error should be at the beginning of the underscore `_`,
not the next token after the star `*`, which is the default.
|
|\ \ \ \
| | | | |
| | | | | |
Fix problem involving classtag based pattern matches.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Rewriting did not go far enough, as evidenced by pos/i1174.scala
Fixes #1174
|
|\ \ \ \
| |/ / /
|/| | | |
support `xs @ _*` and `_*` in Scala2 mode
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The standard syntax in Dotty now is `xs : _*`. In Scala2 mode,
following code should be valid:
list match {
case List(_, _, _, _ @ _*) => 0
case List(_, _, _*) => 1
case List(_, _: _*) => 2
case Nil => 3
}
|
|\ \ \
| | | |
| | | | |
Upgrade to Scala.js 0.6.8.
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
This allows to remove the ugly workaround for default methods.
There is also a slight adaptation for the new way to encode a
reference to the JS global scope in the IR.
|
|\ \ \
| | | |
| | | | |
fix command line processing error
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
Fix typing of SeqLiterals
|
| | | |
| | | |
| | | |
| | | | |
The test contained an error that was unvovered by the "Nothing is not Nullable" fix.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The field keeps track of the element type. This is necessary
because JavaSeqLiteral is nonvariant and the elements might
be empty, so we cannot always compute the type from the
element types.
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Add/collection strawman
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It worked more or less by accident before. Now it's more complicated,
but we also have tests.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Centered around views instead of iterators.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Implement most of the Scala.js IR code generator.
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Notable things that are not yet implemented:
* JS exports
* Scala.js-defined JS classes.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Notable things that are missing at this point:
* Pattern matching
* Try
* Most of the JavaScript interop
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Whether a language SAM type is also a valid SAM type for the
back-end is a platform-specific thing. On Scala.js, for example,
the rules are completely different than for the JVM.
This commit therefore moves the logic of the predicate used by
ExpandSAMs to decide whether to expand a SAM as an anonymous class
to the Platform.
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | | |
First steps towards rewriting from Scala2 in dotty
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
1. trailing `_`:
`x _` is rewritten to `(() => x)` not to `x`
2. lazy vals:
Rewrites are done in Typer, not LazyVals. Later on we are too much at risk to
hit synthetically generated lazy vals.
|