Skip to content

Commit 2cfafb1

Browse files
committed
Add test for select
1 parent e2fb56a commit 2cfafb1

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ trait TypeAssigner {
162162
val qualType = qual.tpe.widenIfUnstable
163163
def kind = if tree.isType then "type" else "value"
164164
val foundWithoutNull = qualType match
165-
case OrNull(qualType1) =>
165+
case OrNull(qualType1) if qualType1 <:< defn.ObjectType =>
166166
val name = tree.name
167167
val pre = maybeSkolemizePrefix(qualType1, name)
168168
reallyExists(qualType1.findMember(name, pre))
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
case class MyVal(i: Int) extends AnyVal:
2+
def printVal: Unit =
3+
println(i)
4+
5+
class Test:
6+
val v: MyVal | Null = MyVal(1)
7+
8+
def f1 =
9+
v.printVal // error: value printVal is not a member of MyVal | Null
10+
11+
def f1 =
12+
import scala.language.unsafeNulls
13+
v.printVal // error: value printVal is not a member of MyVal | Null

tests/explicit-nulls/pos/AnyValOrNull.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def test2 =
88
if v != null then
99
println(v)
1010

11-
case class MyVal(val i: Boolean) extends AnyVal
11+
case class MyVal(i: Boolean) extends AnyVal
1212

1313
def test3 =
1414
val v: MyVal | Null = MyVal(false)

0 commit comments

Comments
 (0)