Closed
Description
Dart VM version: 2.0.0-dev.67.0 (Tue Jul 3 18:17:07 2018 +0200) on "macos_x64"
@Foo()
import 'dart:mirrors';
class Foo {
const Foo();
}
@Foo()
class Bar {
@Foo()
String it;
void doIt(@Foo() String param) {}
}
void main() {
{
print("### Annotation on dependencies");
final mirror = currentMirrorSystem().isolate.rootLibrary;
for (var d in mirror.libraryDependencies) {
print(d.targetLibrary.simpleName);
print(d.metadata);
}
}
{
print("### Annotation on class, field and parameters");
final mirror = reflectClass(Bar);
print(mirror.metadata);
print((mirror.declarations[#it] as VariableMirror).metadata);
for (var p in (mirror.declarations[#doIt] as MethodMirror).parameters) {
print("${p.simpleName} -> ${p.metadata}");
}
}
}
Output with Dart 1.24.3
## Annotation on dependencies
Symbol("dart.mirrors")
[InstanceMirror on Instance of 'Foo']
Symbol("dart.core")
[]
### Annotation on class, field and parameters
[InstanceMirror on Instance of 'Foo']
[InstanceMirror on Instance of 'Foo']
Symbol("param") -> [InstanceMirror on Instance of 'Foo']
Output with Dart 2.0.0-dev.67.0
### Annotation on dependencies
Symbol("dart.mirrors")
[]
### Annotation on class, field and parameters
[InstanceMirror on Instance of 'Foo']
[InstanceMirror on Instance of 'Foo']
Symbol("param") -> []