summaryrefslogtreecommitdiff
path: root/test/files/run/reflect-priv-ctor.scala
diff options
context:
space:
mode:
authorSom Snytt <som.snytt@gmail.com>2013-09-02 18:56:15 -0700
committerSom Snytt <som.snytt@gmail.com>2013-09-03 06:04:25 -0700
commit455354b07da113c19e8007197742db535ee9f88a (patch)
tree082194ac6d1c09b30d5091fcf5633ba9ebdf3eea /test/files/run/reflect-priv-ctor.scala
parenta8c05274f738943ae58ecefda4b012b9daf5d8dc (diff)
downloadscala-455354b07da113c19e8007197742db535ee9f88a.tar.gz
scala-455354b07da113c19e8007197742db535ee9f88a.tar.bz2
scala-455354b07da113c19e8007197742db535ee9f88a.zip
SI-7810 Reflect private constructor
`JavaMirror.constructorToJava` uses `getDeclaredConstructor` now instead of `getConstructor`.
Diffstat (limited to 'test/files/run/reflect-priv-ctor.scala')
-rw-r--r--test/files/run/reflect-priv-ctor.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/files/run/reflect-priv-ctor.scala b/test/files/run/reflect-priv-ctor.scala
new file mode 100644
index 0000000000..9cb3e658cd
--- /dev/null
+++ b/test/files/run/reflect-priv-ctor.scala
@@ -0,0 +1,22 @@
+
+import language.postfixOps
+import reflect.runtime._
+import universe._
+
+object Test {
+
+ class Foo private () {
+ override def toString = "privately constructed"
+ }
+
+ def main(args: Array[String]): Unit = {
+
+ //val foo = new Foo // no access
+ val klass = currentMirror reflectClass typeOf[Foo].typeSymbol.asClass
+ val init = typeOf[Foo].members find { case m: MethodSymbol => m.isConstructor case _ => false } get
+ val ctor = klass reflectConstructor init.asMethod
+ val foo = ctor() // no access?
+ Console println foo
+ }
+}
+