File tree 3 files changed +33
-1
lines changed
compiler/src/dotty/tools/dotc/ast 3 files changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -869,7 +869,7 @@ trait TypedTreeInfo extends TreeInfo[Type] { self: Trees.Instance[Type] =>
869
869
case RefinedType (parent, rname, rinfo) =>
870
870
rname == tree.name || hasRefinement(parent)
871
871
case tp : TypeProxy =>
872
- hasRefinement(tp.underlying )
872
+ hasRefinement(tp.superType )
873
873
case tp : AndType =>
874
874
hasRefinement(tp.tp1) || hasRefinement(tp.tp2)
875
875
case tp : OrType =>
Original file line number Diff line number Diff line change
1
+ object Minimized :
2
+ type Pointer [S <: Int ] <: S
3
+
4
+ type Break = Int {
5
+ def boom : Unit
6
+ }
7
+
8
+ def test = {
9
+ val ptrBreak : Pointer [Break ] = ???
10
+ ptrBreak.boom // error Required: Selectable, was boom crashes the compiler
11
+ }
Original file line number Diff line number Diff line change
1
+ object SelectableBreaks1 {
2
+ object opaques {
3
+ opaque type Pointer [S ] <: S = S
4
+ object Pointer {
5
+ implicit class PointerSelectable [S ](private val f : Pointer [S ]) extends Selectable {
6
+ def selectDynamic (name : String ): Any = ???
7
+ def applyDynamic (name : String )(): Any = ???
8
+ }
9
+ }
10
+ }
11
+ import opaques .*
12
+
13
+ type Break = AnyRef {
14
+ def boom (): Nothing
15
+ }
16
+
17
+ def makeBreak (): Pointer [Break ] = ???
18
+
19
+ makeBreak().boom()
20
+ }
21
+
You can’t perform that action at this time.
0 commit comments