You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: overviews/reflection/environment-universes-mirrors.md
+8-8Lines changed: 8 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ An `InstanceMirror` is used for creating invoker mirrors for methods and fields
90
90
91
91
A `MethodMirror` is used for invoking instance methods (Scala only has instance methods-- methods of objects are instance methods of object instances, obtainable via `ModuleMirror.instance`). Entry point: `val mm = im.reflectMethod(<method symbol>)`. Example:
92
92
93
-
scala> val methodX = typeOf[C].declaration(newTermName("x")).asMethod
93
+
scala> val methodX = ru.typeOf[C].declaration(ru.newTermName("x")).asMethod
94
94
methodX: reflect.runtime.universe.MethodSymbol = method x
95
95
96
96
scala> val mm = im.reflectMethod(methodX)
@@ -101,7 +101,7 @@ A `MethodMirror` is used for invoking instance methods (Scala only has instance
101
101
102
102
A `FieldMirror` is used for getting/setting instance fields (like methods, Scala only has instance fields, see above). Entry point: `val fm = im.reflectMethod(<field or accessor symbol>)`. Example:
103
103
104
-
scala> class C { val x = 2; val y = 3 }
104
+
scala> class C { val x = 2; var y = 3 }
105
105
defined class C
106
106
107
107
scala> val m = ru.runtimeMirror(getClass.getClassLoader)
@@ -110,8 +110,9 @@ A `FieldMirror` is used for getting/setting instance fields (like methods, Scala
110
110
scala> val im = m.reflect(new C)
111
111
im: reflect.runtime.universe.InstanceMirror = instance mirror for C@5f0c8ac1
112
112
113
-
scala> val fieldX = typeOf[C].declaration(newTermName("x")).asTerm.accessed.asTerm
113
+
scala> val fieldX = ru.typeOf[C].declaration(ru.newTermName("x")).asTerm.accessed.asTerm
114
114
fieldX: reflect.runtime.universe.TermSymbol = value x
115
+
115
116
scala> val fmX = im.reflectField(fieldX)
116
117
fmX: reflect.runtime.universe.FieldMirror = field mirror for C.x (bound to C@5f0c8ac1)
117
118
@@ -122,7 +123,7 @@ A `FieldMirror` is used for getting/setting instance fields (like methods, Scala
122
123
scala.ScalaReflectionException: cannot set an immutable field x
123
124
...
124
125
125
-
scala> val fieldY = typeOf[C].declaration(newTermName("y")).asTerm.accessed.asTerm
126
+
scala> val fieldY = ru.typeOf[C].declaration(ru.newTermName("y")).asTerm.accessed.asTerm
126
127
fieldY: reflect.runtime.universe.TermSymbol = variable y
127
128
128
129
scala> val fmY = im.reflectField(fieldY)
@@ -144,14 +145,13 @@ A `ClassMirror` is used for creating invoker mirrors for constructors. Entry poi
144
145
scala> val m = ru.runtimeMirror(getClass.getClassLoader)
0 commit comments