Как «скопировать-вставить» аргумент из аннотации Dart - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь «скопировать / вставить» аргумент из аннотации Dart в мой код в сценарии с кодовым кодом. Цель состоит в том, чтобы предоставить нулевое значение по умолчанию для получателя и сгенерировать его.

@MyAnnotation("")
String _myString;
// Generated
String get myString => _myString ?? "";

@MyAnnotation(1)
int _myInt;
// Generated
int get myInt => _myInt ?? 1;

@MyAnnotation({"foo": "bar"})
Map<String, String> _myMap;
// Generated
Map<String, String> get myMap => _myMap ?? {"foo": "bar"};

Я пробовал следующее, и все они терпят неудачу

final nullValue = annotation.read("firstArgument");
final nullValue = annotation.read("firstArgument").literalValue;
final nullValue = annotation.read("firstArgument").stringValue;
final nullValue = annotation.read("firstArgument").revive().toString();

Есть ли способ генерировать кодовое представление ConstantReader, чтобы мы могли использовать эту константу в нашем сгенерированном коде?

...