Выполнение набора функций по тегу их метаданных на языке Dart

Основываясь на this, я хочу написать код, который запускается A:: функции ссылаются на один и тот же тег метаданных.

Я настраиваю коды предыдущего потока, как показано ниже:

getFunctionMirrorsByTag.dart

library impl;
@MirrorsUsed(metaTargets: Tag)
import 'dart:mirrors';

class Tag {
  final Symbol name;
   const Tag(this.name);
 }
 List<ClassMirror> getClassMirrorsByTag(Symbol name) {
  List res = new List();
  MirrorSystem ms = currentMirrorSystem();
  ms.libraries.forEach((u, lm) {
  lm.declarations.forEach((s, dm) {
  dm.metadata.forEach((im) {
    if ((im.reflectee is Tag) && im.reflectee.name == name) {
      res.add(dm);     // I want to replace this by a statement executing the returned function
       }
     });
    });
  });
  return res;
}

main.dart:

library  main;
import 'getFunctionMirrorsByTag.dart';
import 'extra.dart';
 @Tag(#foo)
    printa()=>print('a');

 @Tag(#foo)
  printb()=>print('b');


 void main() {
    print(getClassMirrorsByTag(#foo));
 }

Используя вышеизложенное, я получаю следующий результат:

[MethodMirror on 'printa', MethodMirror on 'printb']

person Hasan A Yousef    schedule 09.11.2014    source источник