diff --git a/tests/pos/i11631.scala b/tests/pos/i11631.scala new file mode 100644 index 000000000000..96cd46578d76 --- /dev/null +++ b/tests/pos/i11631.scala @@ -0,0 +1,19 @@ +trait MyTrait: + def a(): String = "" + +class Nul + +extension [T](x: T | Nul) inline def nnn: x.type & T = ??? + +class MyClass: + var myTrait: MyTrait|Null = null + + def printA(): Unit = println(myTrait.nnn.a()) + +@main def runTest(): Unit = + val mt = new MyTrait: + override def a(): String = "hello world" + + val mc = MyClass() + mc.myTrait = mt + mc.printA() diff --git a/tests/pos/i11631b.scala b/tests/pos/i11631b.scala new file mode 100644 index 000000000000..6f91532158fe --- /dev/null +++ b/tests/pos/i11631b.scala @@ -0,0 +1,15 @@ +trait MyTrait: + def a(): String = "" + +class MyClass: + var myTrait: MyTrait|Null = null + + def printA(): Unit = println(myTrait.nn.a()) + +@main def runTest(): Unit = + val mt = new MyTrait: + override def a(): String = "hello world" + + val mc = MyClass() + mc.myTrait = mt + mc.printA()