| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
xxl closures need to get the SAM type FunctionXXL as their explicit
type field after ersure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Illegal class overrides are fundamentally at odds with the way dotty
represents types and therefore can cause lots of low-level problems.
Two measures in this commit
First, we detect direct illegal class overrides on completion instead of
during RefChecks. Break the override by making the previously
overriding type private.
This fixes i1750.scala, but still fails for indirect overrides between
two unrelated outer traits/classes that are inherited by the same class or trait.
We fix this by catching the previously thrown ClassCastException
in both ExtractAPI and RefChecks.
Test case for indirect overrides is in i1750a.scala.
|
|\
| |
| | |
Add sbt-based bootstrap
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Type#member might return a denotation that doesn't "really exists" (as
defined by TypeAssigner#reallyExists), in some circumstance this
denotation can refer to a symbol in a class that is in the classpath but
that is not used by this file, so using addDependency on the result of
Type#member might add a false dependency. We avoid this by using
Type#select instead which will internally do the right thing.
This issue was discovered while compiling the bootstrapped projects
which would sometimes force a full recompilation for no reason.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The bug was that we declared case classes like:
case class CompFailed() extends NegTestState
but we used their companion objects like in:
case _ => CompFailed
Interestingly, this bug was caught by compiling this code with dotty,
instead of `failureStates` getting inferred to be of type `AnyRef`, it
ended up being a union of object types, this allows dotty to realize our
subsequent pattern match on `failureStates` cannot possibly succeed:
-- Error: /home/smarter/opt/dotty/compiler/test/dotty/partest/DPConsoleRunner.scala
353 | case CompFailedButWrongDiff() =>
| ^
| missing parameter type for parameter x$1 of expanded function x$1 =>
| x$1 @unchecked match
| {
| case CompFailedButWrongDiff() =>
| nextTestActionFailing(s"output differs")
| true
| case _ =>
| false
| }, expected = ?
-- Error: /home/smarter/opt/dotty/compiler/test/dotty/partest/DPConsoleRunner.scala
353 | case CompFailedButWrongDiff() =>
| ^^^^^^^^^^^^^^^^^^^^^^^^
|Pattern type CompFailedButWrongDiff is neither a subtype nor a supertype of selector type CompSucceeded | CompFailedButWrongNErr | CompFailed | CompFailedButWrongDiff'where: CompFailedButWrongDiff is a class in method runNegTest
| CompFailedButWrongDiff' is a object in method runNegTest
|
| |
| |
| |
| |
| | |
Using changeOwnerAfter would be more appropriate but currently fails
with an assertion in LambdaLift
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
`partest` and `partest-only` are now run through
`dotty-compiler-bootstrapped`. The old bootstrapping mechanism is
deleted since it has been unmaintained and broken for several months and
that I do not wish to maintain two bootstrapping mechanisms.
|
| |
| |
| |
| |
| | |
This is necessary to run the tests with the bootstrapped projects and is
just much better than hardcoding them anyway.
|
| |
| |
| |
| |
| |
| | |
If something needs to be fixed, fix it at the source. This prevented
dotty-compiler-bootstrapped from using the dotty-library-bootstrapped
clases instead of the dotty-library jar
|
|\ \
| | |
| | | |
Fix #1687: postpone computations in tailrec until they are needed.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Previous version precomputed everything needed to make the final decision.
This was fast-path for method that will be tail-rec transformed.
Unfortunatelly, in case decision was not to tail-rec optimize it could have
led to exponential number of transformations.
Now, the fast-path is for methods that will not.
|
|/ |
|
|\
| |
| | |
Fix another NPE when compiling under -Yno-imports
|
| | |
|
|\|
| |
| | |
Fix NPE in Implicits
|
| |
| |
| |
| |
| | |
We got on NPE when compiling the collection strawman under -Yno-imports. We did not
preview that the contextual implicit scope stack could be empty.
|
|\|
| |
| | |
Adopt scala's scheme for root import hiding
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
scalac hides a root import from Predef if there is an eplicit Predef import.
We now do the same (previously we did this only if the overriding import undefined
something, using a `x => _` syntax). To avoid cycles and races one had to be very careful
not to force import symbols too early, so we now compare the name before the symbol proper.
All this is likely temporary - the comment of ImportInfo#unimported points to a different,
more systematic solution.
|
|\ \
| |/
|/| |
Improve whitelist infrastructure.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Now that that the blacklist is fully know
and is small enough, it will be simpler to
maintain only the blacklist.
|
| | |
|
|\ \
| | |
| | | |
Fix #1877: Add forwarders for primitive/generic mixins.
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix benchmarks and add multiple mini benchmark tests
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Partially fix Java interop for emitted inner classes
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The backend uses `rawname` to define the "inner name" of an InnerClass
entry in a classfile, this should be the simple name of the class before
any mangling takes place.
Fixing this allows Java code to reference dotty inner classes, except if
they're defined in objects which is still broken until
https://github.com/DarkDimius/scala/pull/4 is merged and a new backend
is published.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix #1891: Don't add redundant constraint
|
| | | | | | |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Before adding a constraint, make sure there is no way
the two types are already in a subtype relation.
Adding redundant constraints is problematic because we
might introduce cycles. See i1891.scala for a test.
|
| | | | | |
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | | |
This reverts commit 63d68bf4d3cbac82f6d9faf19acd5589603a17ee.
|
|\ \ \ \
| | | | |
| | | | | |
Bump version from 0.1-SNAPSHOT to 0.1.1-SNAPSHOT
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is useful for two reasons:
- All published Scala versions are of the form a.b.c and some tooling
expect that, like sbt CrossVersion API.
- Using 0.1.1 instead of 0.1.0 means that we match the version number of
dotty-sbt-bridge, this is simpler and means that in the future sbt
could automatically choose the correct version of dotty-sbt-bridge so
that the user does not need to specify scalaCompilerBridgeSource in
his build.sbt
Note: it's awful that we have hardcoded paths to jars and that I had to
change them, but I won't fix that now.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
To match the specs in
https://github.com/lampepfl/dotty/blob/master/docs/syntax-summary.txt
all occurences of Id, ident or Ident in comments have been replaced
with the terminal `id`.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The following examples trigger the error message:
val x: Foo.this = ???
// Also triggers the error:
import foo.this
// Additionally, also slays the compiler
type X = Foo.this.type
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix #1867: Set position of empty refined types
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1865: Compute outer path at right phase
|
| | | | | |
|