Skip to content

Commit 77ec4ef

Browse files
committed
SI-5130, precision disappearing from refinement.
[backport] Remove some code, win a prize.
1 parent faca7ec commit 77ec4ef

File tree

2 files changed

+46
-6
lines changed

2 files changed

+46
-6
lines changed

src/reflect/scala/reflect/internal/Types.scala

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3592,12 +3592,6 @@ trait Types extends api.Types { self: SymbolTable =>
35923592
val pre1 = pre match {
35933593
case x: SuperType if sym1.isEffectivelyFinal || sym1.isDeferred =>
35943594
x.thistpe
3595-
case _: CompoundType if sym1.isClass =>
3596-
// sharpen prefix so that it is maximal and still contains the class.
3597-
pre.parents.reverse dropWhile (_.member(sym1.name) != sym1) match {
3598-
case Nil => pre
3599-
case parent :: _ => parent
3600-
}
36013595
case _ => pre
36023596
}
36033597
if (pre eq pre1) TypeRef(pre, sym1, args)

test/files/pos/t5130.scala

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import scala.language.reflectiveCalls
2+
3+
class A {
4+
this_a =>
5+
6+
def b = new B
7+
class B { def a: this_a.type = this_a }
8+
}
9+
trait A2 { def c = () }
10+
11+
object Test {
12+
val v1 = new A { def c = () }
13+
val v2 = new A with A2 { }
14+
val v3: A { def c: Unit } = null
15+
def d1 = new A { def c = () }
16+
def d2 = new A with A2 { }
17+
def d3: A { def c: Unit } = null
18+
var x1 = new A { def c = () }
19+
var x2 = new A with A2 { }
20+
var x3: A { def c: Unit } = null
21+
22+
def main(args: Array[String]): Unit = {
23+
val mv1 = new A { def c = () }
24+
val mv2 = new A with A2 { }
25+
val mv3: A { def c: Unit } = null
26+
def md1 = new A { def c = () }
27+
def md2 = new A with A2 { }
28+
def md3: A { def c: Unit } = null
29+
30+
v1.b.a.c
31+
v2.b.a.c
32+
v3.b.a.c
33+
d1.b.a.c
34+
d2.b.a.c
35+
d3.b.a.c
36+
x1.b.a.c
37+
x2.b.a.c
38+
x3.b.a.c
39+
mv1.b.a.c
40+
mv2.b.a.c
41+
mv3.b.a.c
42+
md1.b.a.c
43+
md2.b.a.c
44+
md3.b.a.c
45+
}
46+
}

0 commit comments

Comments
 (0)