We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 7a99d3d commit 377b479Copy full SHA for 377b479
compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala
@@ -315,8 +315,12 @@ trait TypeAssigner {
315
def assignType(tree: untpd.Select, qual: Tree)(implicit ctx: Context): Select = {
316
def qualType = qual.tpe.widen
317
def arrayElemType = {
318
- val JavaArrayType(elemtp) = qualType
319
- elemtp
+ qualType match {
+ case JavaArrayType(elemtp) => elemtp
320
+ case _ =>
321
+ ctx.error("Expected Array but was " + qualType.show, tree.sourcePos)
322
+ defn.NothingType
323
+ }
324
}
325
val p = nme.primitive
326
val tp = tree.name match {
tests/neg/i4247.scala
@@ -0,0 +1,3 @@
1
+class Foo[U] { self : Array[U] & Nothing =>
2
+ val s = self(0) // error
3
+}
tests/neg/i4247b.scala
+class Foo[U] { self : Array[U] =>
+ self(0) // error
0 commit comments