summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-03-25 16:01:10 +0100
committerJason Zaugg <jzaugg@gmail.com>2014-03-25 16:01:10 +0100
commit4e3f290e375e7c99cfbf80be9559212fc158481c (patch)
treecc622b21e2d32585eaa968bc82c2f7b7e20cc9f7 /test/files
parent49f54abed4f82d9b58f416915edaaea889734344 (diff)
parentf9a5880bf82b71174eb3dbd6b67646bbc27a975a (diff)
downloadscala-4e3f290e375e7c99cfbf80be9559212fc158481c.tar.gz
scala-4e3f290e375e7c99cfbf80be9559212fc158481c.tar.bz2
scala-4e3f290e375e7c99cfbf80be9559212fc158481c.zip
Merge pull request #3636 from xeno-by/topic/mirror-typeof
introduces Mirror.typeOf
Diffstat (limited to 'test/files')
-rw-r--r--test/files/run/mirror_symbolof_x.check13
-rw-r--r--test/files/run/mirror_symbolof_x.scala43
2 files changed, 56 insertions, 0 deletions
diff --git a/test/files/run/mirror_symbolof_x.check b/test/files/run/mirror_symbolof_x.check
new file mode 100644
index 0000000000..cc9cad7a13
--- /dev/null
+++ b/test/files/run/mirror_symbolof_x.check
@@ -0,0 +1,13 @@
+class Int
+object C
+type T
+type Id
+class Nothing
+class Null
+class Int
+object C
+type T
+type Id
+class Nothing
+class Null
+exception: class C not found.
diff --git a/test/files/run/mirror_symbolof_x.scala b/test/files/run/mirror_symbolof_x.scala
new file mode 100644
index 0000000000..8fec301f56
--- /dev/null
+++ b/test/files/run/mirror_symbolof_x.scala
@@ -0,0 +1,43 @@
+import scala.reflect.runtime.universe._
+import scala.reflect.runtime.{universe => ru}
+import scala.reflect.runtime.{currentMirror => cm}
+import scala.reflect.api.Mirror
+
+class C
+object C
+
+object Test extends App {
+ object test1 {
+ val m = cm
+ type T = Int
+ type Id[X] = X
+ println(m.symbolOf[Int]: ru.TypeSymbol)
+ println(m.symbolOf[C.type]: ru.TypeSymbol)
+ println(m.symbolOf[T]: ru.TypeSymbol)
+ println(m.symbolOf[Id[_]]: ru.TypeSymbol)
+ println(m.symbolOf[Nothing]: ru.TypeSymbol)
+ println(m.symbolOf[Null]: ru.TypeSymbol)
+ }
+
+ object test2 {
+ val m: Mirror[ru.type] = cm
+ type T = Int
+ type Id[X] = X
+ println(m.symbolOf[Int]: ru.TypeSymbol)
+ println(m.symbolOf[C.type]: ru.TypeSymbol)
+ println(m.symbolOf[T]: ru.TypeSymbol)
+ println(m.symbolOf[Id[_]]: ru.TypeSymbol)
+ println(m.symbolOf[Nothing]: ru.TypeSymbol)
+ println(m.symbolOf[Null]: ru.TypeSymbol)
+ }
+
+ object test3 {
+ val m = ru.runtimeMirror(classOf[Int].getClass.getClassLoader)
+ try println(m.symbolOf[C])
+ catch { case ex: ScalaReflectionException => println(s"exception: ${ex.getMessage}") }
+ }
+
+ test1
+ test2
+ test3
+}