From 455354b07da113c19e8007197742db535ee9f88a Mon Sep 17 00:00:00 2001 From: Som Snytt Date: Mon, 2 Sep 2013 18:56:15 -0700 Subject: SI-7810 Reflect private constructor `JavaMirror.constructorToJava` uses `getDeclaredConstructor` now instead of `getConstructor`. --- test/files/run/reflect-priv-ctor.check | 1 + test/files/run/reflect-priv-ctor.scala | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 test/files/run/reflect-priv-ctor.check create mode 100644 test/files/run/reflect-priv-ctor.scala (limited to 'test/files/run') diff --git a/test/files/run/reflect-priv-ctor.check b/test/files/run/reflect-priv-ctor.check new file mode 100644 index 0000000000..a0fb1943b7 --- /dev/null +++ b/test/files/run/reflect-priv-ctor.check @@ -0,0 +1 @@ +privately constructed 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 + } +} + -- cgit v1.2.3