| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
As done in inliner.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |\
| | |
| | | |
fix #2254: dealias types in decomposition of spaces
|
| |\ \
| | | |
| | | | |
Fix #2230: Add regression test.
|
| | | | |
|
| |\ \ \
| | | | |
| | | | | |
Fix #2152: Instantiate dependent result type parameters
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
#2152 shows that dependent result type parameters can end up in
the types of terms, so we have to eliminate them. If we don't we
get orphan parameters in pickling.
Fix method name and comment
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The change in question broke the following pattern, commonly used in name based pattern matching:
```scala
object ProdEmpty {
def _1: Int = ???
def _2: String = ???
def isEmpty = true
def get = this
}
```
This type define both `_1` and `get` + `isEmpty` (but is not <: Product). After #1938, `ProdEmpty` became eligibles for both product and name based pattern. Because "in case of ambiguities, *Product Pattern* is preferred over *Name Based Pattern*", isEmpty wouldn't be used, breaking the scalac semantics.
|
| |_|_|/
|/| | | |
|
|/ / / |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Note that merging this as-is will not protect us against fork bombs.
This is because the timeout of tests is currently 180 seconds. A
forkbomb that is allowed to run for that long...
|
| | | |
|
|\ \ \
| |_|/
|/| | |
Port some ClassfileParser changes from scalac
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adapted from scalac commit 3c5990ce5839f4bdfca8fed7f2c415a72f6a8bd8 by
Som Snytt:
Use DataInputStream.readUTF to read CONSTANT_Utf8_info.
This fixes reading embedded null char and supplementary chars.
|
|\ \ \
| |/ /
|/| | |
Fix #2212: Avoid imports in the wrong namespace
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Don't issue an error if when considering a named import that
refers to a valoe or type which does not exist. Instead, disregard
the import an continue.
|
|\ \ \
| | | |
| | | | |
Fix #2218: Add fullyDefinedType for class parent types
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
If we do not do that, any type variables in the parent type get interpolated
later, when the whole primary constructor is typed. But by then we miss the
context of what their variance was.
|
|\ \ \
| |/ /
|/| | |
fix #2163: don't narrow liftedOwner if symbol is InSuperCall
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
The previous fix was too coarse. We need to move an anonymous function
in a supercall towards the call, we just have to make sure it's not
in the directly enclosing class.
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| | |
Previously we just returned the unapplied WildcardType which is
incorrect if the WildcardType is bounded. The proper thing to do is to
do the type application on the bounds of the WildcardType and wrap the
result in a WildcardType.
|
|\ \
| | |
| | | |
Change case class desugaring and decouple Products and name-based-pattern-matching
|
| | |
| | |
| | |
| | |
| | |
| | | |
- t7296 & case-class-23 are moved out of pending
- 1938 tests productElement > 23
|
|\ \ \
| | | |
| | | | |
Fix #2142: Skolemize arguments of dependent methods if necessary
|
| | | |
| | | |
| | | |
| | | | |
This was missing before, led to errors not being detected.
|
|\ \ \ \
| | | | |
| | | | | |
Add enum exhaustivity checking
|
| | | | | |
|
| | | | | |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | | |
A new kind of child annotation that points to the term symbol representing an
enum value.
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix #2198: Don't widen module singletons
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since module classes are a compiler-generated construct that's not directly
visible to programmers, it seems better not to automatically widen a module
singleton to its underlying class.
Fixes #2198.
|
|\ \ \ \
| | | | |
| | | | | |
Fix #2188: Do cbn transform also on Selects
|
| |/ / /
| | | |
| | | |
| | | | |
These can arise as a result of an explicit outer transform.
|
|\ \ \ \
| | |_|/
| |/| | |
Fix #2192: Follow supertypes when determining whether an expect type …
|
| |/ /
| | |
| | |
| | | |
function type
|
|\ \ \
| |/ /
|/| | |
Fix #2220: Change handling of package objects and tweak hk type inference
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we believed that reducing type applications did not affect
type inference as long as the reduced type constructor had the same
arity as the unreduced one, for example reducing `Foo[X, Y]` is fine
when `Foo` is defined as:
type Foo[A, B] = Bar[A, B]
but not when it's defined as:
type Foo[A] = Bar[A, A]
But this is not a sufficient condition: the bounds of the type
constructor arguments also matter for type inference, so we need to be
more strict and disallow reductions in cases like:
type Foo[A, B] = Bar[B, A]
and:
type Foo[A, B] = Bar[A, Int]
|
|\ \
| |/
|/| |
fix #2166: unpickling of shared CaseDef
|