Annotation describing how "dart:mirrors" is used (EXPERIMENTAL).
When used as metadata on an import of "dart:mirrors" in library L, this class describes how "dart:mirrors" is used by library L unless overridden. See override.
The following text is non-normative:
In some scenarios, for example, when minifying Dart code, or when generating JavaScript code from a Dart program, the size and performance of the output can suffer from use of reflection. In those cases, telling the compiler what is used, can have a significant impact.
Example usage:
@MirrorsUsed(symbols: 'foo')
import 'dart:mirrors';
class Foo {
noSuchMethod(Invocation invocation) {
print(MirrorSystem.getName(invocation.memberName));
}
}
main() {
new Foo().foo(); // Prints "foo".
new Foo().bar(); // Might print an arbitrary (mangled) name, "bar".
}
For a detailed description of the parameters to the MirrorsUsed constructor see the comments for symbols, targets, metaTargets and override.
An import of dart:mirrors
may have multiple MirrorsUsed annotations. This
is particularly helpful to specify overrides for specific libraries. For
example:
@MirrorsUsed(targets: 'foo.Bar', override: 'foo')
@MirrorsUsed(targets: 'Bar')
import 'dart:mirrors';
will ensure that the target Bar
from the current library and from library
foo
is available for reflection. See also override.
Constructors
- MirrorsUsed({symbols, targets, metaTargets, override })
-
See the documentation for MirrorsUsed.symbols, MirrorsUsed.targets, MirrorsUsed.metaTargets and MirrorsUsed.override for documentation of the parameters.
const
Properties
- metaTargets → dynamic
-
A list of classes that when used as metadata indicates a reflective target. See also targets.
final - override → dynamic
-
A list of library names or "*".
final - symbols → dynamic
-
The list of strings passed to new Symbol, and symbols that might be passed to MirrorSystem.getName.
final - targets → dynamic
-
A list of reflective targets.
final - hashCode → int
-
The hash code for this object.
read-only, inherited - runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
Operators
-
operator ==(
other) → bool -
The equality operator.
inherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited -
toString(
) → String -
Returns a string representation of this object.
inherited