| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|\
| |
| | |
Fix #2137: Create dummy companions for top-level objects without a real one
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The previous commit introduced two new usages of `denotNamed` which broke
tests/run/t1987b because `denotNamed` indirectly calls `packageObj`
which caches the package object, except that at this point the package
object is not yet entered, so the cache was incorrect. We fix this by
using `effectiveScope.lookup` instead since we only need to look into
the current scope, this is also true for the two existing usage of
`denotNamed` in `createCompanionLinks` so they were also replaced by
`effectiveScope.lookup`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, we sometimes ended up forcing a companion class symbol from
a previous run or from the classpath which lead to weird issues like in
`false-companion`. Even if we end up not forcing such a symbol, its
presence can still lead to issue: before this commit incremental
compilation of `dotty-compiler-bootstrapped` was broken because we
recorded a false dependency on the non-bootstrapped `dotty-compiler`
jar.
The added test is currently marked pending because it does not work with
JUnit (which doesn't handle separate compilation), only partest. I
didn't managed to get it to work right, and this won't be necessary once
our testing framework is overhauled by
https://github.com/lampepfl/dotty/pull/2125 anyway, so I'll just have to
remember to enable this test afterwards.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 57641b9c7447fa0a6f1f47352dffb4c56c560b6a.
Using `Type#select` instead of `Type#member` turned out to not help at
all in avoiding false dependencies, you can still get a symbol whose
denotation does not reallyExists. A proper fix for this issue is
contained in the next commit.
|
|\ \
| | |
| | | |
sbt-bridge: Remove unused imports from scala-compiler
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix desugaring of variable pattern leaking into API
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This was especially bad for incremental compilation since the temporary
variable name is unstable.
|
|\ \ \ \
| |_|/ /
|/| | | |
Add a warning and instructions for new users.
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
Upgrade to sbt 0.13.14-RC2, switch to build.sbt
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Using the same technique than scala-js where we just forward to
Build.scala: https://github.com/scala-js/scala-js/pull/2312
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Also fix a bug where the compiler output for the tests ended up in the
wrong directory, causing some new tests from 0.13.14 to fail.
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Also replace com.typesafe.sbt:sbt-interface by the equivalent
org.scala-sbt:interface since the former is not published in 0.13.14 for
some reason (https://github.com/sbt/sbt/issues/3012).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Fix varargs in methods (Issue: #1625)
* Fix minor comments
* Change varargs parameter message
* Fix failed test, fix case for constructor
|
|\ \ \
| |_|/
|/| | |
Fix incremental compilation not working after restarting sbt
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, every time sbt was restarted, `compile` would do a full
recompilation. This happened because sbt uses Java serialization to
persist the incremental compilation analysis, deserialization was always
silently failing because we used to serialize a class from the
dotty-compiler jar which is not on the classpath at deserialization
time. See the added comments for more details.
|
|\ \
| | |
| | | |
incremental compilation: Fix unstable name hashing for refined members
|
|/ / |
|
|\ \
| | |
| | | |
Fix IntellliJ support by making dotty-doc its own subproject
|
|/ / |
|
|\ \
| |/
|/| |
Fix parameter accessor forwarding
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Normal references won't work since the referenced accessor has
the same name as a private name in the class defining the forwarder.
This showed up as pickling failures under separate compilation.
|
|/
|
|
| |
Making a name shadowed lost the signature before.
|
| |
|
|
|
|
|
| |
This wasn't done before because dotty could not compile dottydoc, this
is now fixed.
|
| |
|
|\
| |
| | |
Fixed #2086: Add tests for issue that has already been fixed.
|
| | |
|
|\ \
| | |
| | | |
Fixed #1573: Add tests for fixed issue.
|
| | | |
|
|\ \ \
| |_|/
|/| | |
Fix position of errors in Inliner TreeTypeMap
|
| | | |
|
|\ \ \
| |_|/
|/| | |
Fix #2117: bug in typechecking super prefix with invalid enclosing class
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When typechecking
class A {
C.super.foo()
}
If C isn't an enclosing class, the compiler was throwing because of an
unguarded pattern match.
Fix the issue by checking for ErrorType.
Tested:
Verified that the example above no longer throws.
Added a test.
|
| | | |
|
| | |
| | |
| | |
| | | |
- Added explicit checking for NonEntity when serializing DefaultParams
|
|\ \ \
| | | |
| | | | |
Better type inference in harmonizeUnion
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before this commit, the added testcase failed because the type of `inv`
was inferred to be `Inv[Any]` instead of `Inv[Int]`. The situation looks
like this:
def inv(cond: Boolean) =
if (cond)
new Inv(1) // : Inv[A] where A >: Int
else
Inv.empty // : Inv[A'] where A' unconstrained
// : Inv[A] | Inv[A']
To get the type of `inv`, we call `harmonizeUnion` which will take the
lub of `Inv[A]` and `Inv[A']`, eventually this mean that we do:
A' <:< A
But since `harmonizeUnion` uses `fluidly`, this does not result in `A'`
getting constrained to be a subtype of `A`, instead we constrain `A` to
the upper bound of `A'`:
Any <:< A
We use `fluidly` to avoid creating OrTypes in `lub`, but it turns out
that there is a less aggressive solution: `lub` calls `mergeIfSuper`
which then calls `isSubTypeWhenFrozen`, if we just make these subtype
calls non-frozen, we can achieve what we want. This is what the new
`lub` parameter `canConstrain` allows.
|
|\ \ \
| | | |
| | | | |
Reduce type lambdas even if variance changes
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, the added testcase failed with (when running with -Ydebug-alias):
2 | def foo = Seq(a)
| ^
|covariant type A occurs in invariant position in type => Seq.CC[Cov.this.A] of method foo
Because the type parameter of `CC` is invariant.
Of course, this is fine because `CC[A]` can be reduced to `Seq[A]`, but
before this commit, `TypeApplications#appliedTo` used to disallow
reductions that replaced an invariant type parameter with a variant one.
I believe that for type inference, only preserving the arity is
important, so I removed this restriction.
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
Update periods-related comments
|