Invokes a getter and returns a mirror on the result. The getter can be the implicit getter for a field or a user-defined getter method.
Let o be the object reflected by this mirror, let
f be the simple name of the getter denoted by fieldName
,
Then this method will perform the getter invocation
o.f
in a scope that has access to the private members
of o (if o is a class or library) or the private members of the
class of o (otherwise).
If this mirror is an InstanceMirror, and fieldName
denotes an instance
method on its reflectee, the result of the invocation is an instance
mirror on a closure corresponding to that method.
If this mirror is a LibraryMirror, and fieldName
denotes a top-level
method in the corresponding library, the result of the invocation is an
instance mirror on a closure corresponding to that method.
If this mirror is a ClassMirror, and fieldName
denotes a static method
in the corresponding class, the result of the invocation is an instance
mirror on a closure corresponding to that method.
If the invocation returns a result r, this method returns the result of calling reflect. If the invocation causes a compilation error the effect is the same as if a non-reflective compilation error had been encountered. If the invocation throws an exception e (that it does not catch) this method throws e.
Source
/**
* Invokes a getter and returns a mirror on the result. The getter
* can be the implicit getter for a field or a user-defined getter
* method.
*
* Let *o* be the object reflected by this mirror, let
* *f* be the simple name of the getter denoted by [fieldName],
* Then this method will perform the getter invocation
* *o.f*
* in a scope that has access to the private members
* of *o* (if *o* is a class or library) or the private members of the
* class of *o* (otherwise).
*
* If this mirror is an [InstanceMirror], and [fieldName] denotes an instance
* method on its reflectee, the result of the invocation is an instance
* mirror on a closure corresponding to that method.
*
* If this mirror is a [LibraryMirror], and [fieldName] denotes a top-level
* method in the corresponding library, the result of the invocation is an
* instance mirror on a closure corresponding to that method.
*
* If this mirror is a [ClassMirror], and [fieldName] denotes a static method
* in the corresponding class, the result of the invocation is an instance
* mirror on a closure corresponding to that method.
*
* If the invocation returns a result *r*, this method returns
* the result of calling [reflect](*r*).
* If the invocation causes a compilation error
* the effect is the same as if a non-reflective compilation error
* had been encountered.
* If the invocation throws an exception *e* (that it does not catch)
* this method throws *e*.
*/
// TODO(ahe): Remove stuff about scope and private members. [fieldName] is a
// capability giving access to private members.
InstanceMirror getField(Symbol fieldName);