summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/reflection-names-neg.check10
-rw-r--r--test/files/neg/reflection-names-neg.scala6
-rw-r--r--test/files/pos/t5957/T_1.scala6
-rw-r--r--test/files/pos/t5957/Test.java11
-rw-r--r--test/files/run/reflection-names.check4
-rw-r--r--test/files/run/reflection-names.scala15
6 files changed, 52 insertions, 0 deletions
diff --git a/test/files/neg/reflection-names-neg.check b/test/files/neg/reflection-names-neg.check
new file mode 100644
index 0000000000..a56a19e7fd
--- /dev/null
+++ b/test/files/neg/reflection-names-neg.check
@@ -0,0 +1,10 @@
+reflection-names-neg.scala:5: error: type mismatch;
+ found : String("abc")
+ required: reflect.runtime.universe.Name
+Note that implicit conversions are not applicable because they are ambiguous:
+ both method stringToTermName in trait Names of type (s: String)reflect.runtime.universe.TermName
+ and method stringToTypeName in trait Names of type (s: String)reflect.runtime.universe.TypeName
+ are possible conversion functions from String("abc") to reflect.runtime.universe.Name
+ val x2 = ("abc": Name) drop 1 // error
+ ^
+one error found
diff --git a/test/files/neg/reflection-names-neg.scala b/test/files/neg/reflection-names-neg.scala
new file mode 100644
index 0000000000..7283d16db9
--- /dev/null
+++ b/test/files/neg/reflection-names-neg.scala
@@ -0,0 +1,6 @@
+import scala.reflect.runtime.universe._
+
+object Test {
+ val x1 = "abc" drop 1 // "bc": String
+ val x2 = ("abc": Name) drop 1 // error
+}
diff --git a/test/files/pos/t5957/T_1.scala b/test/files/pos/t5957/T_1.scala
new file mode 100644
index 0000000000..1db5a3891f
--- /dev/null
+++ b/test/files/pos/t5957/T_1.scala
@@ -0,0 +1,6 @@
+abstract class T {
+ def t1: Test$Bar
+ def t2: Test#Bar
+ def t3: Test$Baz
+ def t4: Test.Baz
+}
diff --git a/test/files/pos/t5957/Test.java b/test/files/pos/t5957/Test.java
new file mode 100644
index 0000000000..4fbd257d95
--- /dev/null
+++ b/test/files/pos/t5957/Test.java
@@ -0,0 +1,11 @@
+public class Test {
+ public class Bar {
+ public Bar(int i) {
+ }
+ }
+
+ public static class Baz {
+ public Baz(int i) {
+ }
+ }
+}
diff --git a/test/files/run/reflection-names.check b/test/files/run/reflection-names.check
new file mode 100644
index 0000000000..f8cb78cc67
--- /dev/null
+++ b/test/files/run/reflection-names.check
@@ -0,0 +1,4 @@
+(java.lang.String,bc)
+(scala.reflect.internal.Names$TermName_R,bc)
+(scala.reflect.internal.Names$TypeName_R,bc)
+(scala.reflect.internal.Names$TypeName_R,bc)
diff --git a/test/files/run/reflection-names.scala b/test/files/run/reflection-names.scala
new file mode 100644
index 0000000000..2433c84813
--- /dev/null
+++ b/test/files/run/reflection-names.scala
@@ -0,0 +1,15 @@
+import scala.tools.nsc._
+
+object Test {
+ val global = new Global(new Settings())
+ import global._
+
+ val x1 = "abc" drop 1 // "bc": String
+ val x2 = ("abc": TermName) drop 1 // "bc": TermName
+ val x3 = ("abc": TypeName) drop 1 // "bc": TypeName
+ val x4 = (("abc": TypeName): Name) drop 1 // "bc": Name
+
+ def main(args: Array[String]): Unit = {
+ List(x1, x2, x3, x4) foreach (x => println(x.getClass.getName, x))
+ }
+}