summaryrefslogtreecommitdiff
path: root/test/files/neg/t9273.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2015-04-15 22:21:14 +1000
committerJason Zaugg <jzaugg@gmail.com>2015-04-15 22:25:13 +1000
commit4ff3abbe950c0bd703298d7808e1de38894ddac7 (patch)
tree617a429238d02a13f658d58182a419d17133b398 /test/files/neg/t9273.scala
parent029cce77bd72cd8255c6dee08a227796cdb158b1 (diff)
downloadscala-4ff3abbe950c0bd703298d7808e1de38894ddac7.tar.gz
scala-4ff3abbe950c0bd703298d7808e1de38894ddac7.tar.bz2
scala-4ff3abbe950c0bd703298d7808e1de38894ddac7.zip
SI-9273 Avoid unpositioned error for bare classOf
A bare identifier `classOf` in a position wth an expected type of `Class[_]` was leading to an unpositioned error. This is due to special treatment of bare `classOf` in `typedIdent` creating an ephemeral, but unpositioned, `TypeTree`. This commit positions that tree and tests that the error is issued at a sensible position. There is still an irregularity between `classOf` and `Predef.classOf`, but that seems esoteric enough to leave alone for now.
Diffstat (limited to 'test/files/neg/t9273.scala')
-rw-r--r--test/files/neg/t9273.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/test/files/neg/t9273.scala b/test/files/neg/t9273.scala
new file mode 100644
index 0000000000..3f99dff17f
--- /dev/null
+++ b/test/files/neg/t9273.scala
@@ -0,0 +1,9 @@
+class MissingLineNumbers {
+ val foo: Class[_] = classOf // error without position, line or file
+ val foo1: Class[_] = classOf[X] // good error, all info contained
+ val foo2 = classOf // Infers T=Nothing
+
+ val foo3: Class[_] = Predef.classOf // Infers T=Nothing. Irregular wrt typedIdent.
+ val foo4: Class[_] = Predef.classOf[X] // good error, all info contained
+ val foo5 = Predef.classOf // Infers T=Nothing
+}