summaryrefslogtreecommitdiff
path: root/test/files/run/reflection-fieldmirror-accessorsareokay.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2012-07-20 00:32:39 -0700
committerAdriaan Moors <adriaan.moors@epfl.ch>2012-07-20 00:32:39 -0700
commita8bd1e25b9fe32a8eff2f51ee3bfa527440beb84 (patch)
treee5ce970714407e6269b4d5a1255bc8947c99a4a4 /test/files/run/reflection-fieldmirror-accessorsareokay.scala
parentcf2a36315f380391a4bdf9f3f608715b392ccca6 (diff)
parentbaf3d1a2516e69660cd9a3d6ea3120327885fe93 (diff)
downloadscala-a8bd1e25b9fe32a8eff2f51ee3bfa527440beb84.tar.gz
scala-a8bd1e25b9fe32a8eff2f51ee3bfa527440beb84.tar.bz2
scala-a8bd1e25b9fe32a8eff2f51ee3bfa527440beb84.zip
Merge pull request #929 from scalamacros/ticket/5895
fixes field mirrors and also improves docs and exceptions for all mirrors
Diffstat (limited to 'test/files/run/reflection-fieldmirror-accessorsareokay.scala')
-rw-r--r--test/files/run/reflection-fieldmirror-accessorsareokay.scala29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/files/run/reflection-fieldmirror-accessorsareokay.scala b/test/files/run/reflection-fieldmirror-accessorsareokay.scala
new file mode 100644
index 0000000000..c586ce9bdd
--- /dev/null
+++ b/test/files/run/reflection-fieldmirror-accessorsareokay.scala
@@ -0,0 +1,29 @@
+import scala.reflect.runtime.universe._
+import scala.reflect.runtime.{currentMirror => cm}
+
+object Test extends App {
+ class A {
+ var x: Int = 42
+ }
+
+ val a = new A
+
+ val im: InstanceMirror = cm.reflect(a)
+ val cs = im.symbol
+
+ def test(f: Symbol) = {
+ try {
+ val fm: FieldMirror = im.reflectField(f.asTermSymbol)
+ println(fm.symbol.isVariable)
+ println(fm.get)
+ fm.set(2)
+ println(fm.get)
+ } catch {
+ case ex: Throwable =>
+ println(ex.getMessage)
+ }
+ }
+
+ test(cs.typeSignature.declaration(newTermName("x")).asTermSymbol)
+ test(cs.typeSignature.declaration(newTermName("x_$eq")).asTermSymbol)
+}