diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/reflection-names-neg.check | 10 | ||||
-rw-r--r-- | test/files/neg/reflection-names-neg.scala | 6 | ||||
-rw-r--r-- | test/files/pos/t5957/T_1.scala | 6 | ||||
-rw-r--r-- | test/files/pos/t5957/Test.java | 11 | ||||
-rw-r--r-- | test/files/run/reflection-names.check | 4 | ||||
-rw-r--r-- | test/files/run/reflection-names.scala | 15 |
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)) + } +} |