Index: lib/src/runner/parse_metadata.dart |
diff --git a/lib/src/runner/parse_metadata.dart b/lib/src/runner/parse_metadata.dart |
index 8e1e8f19a6421563a026f0728855ca8e1fc54062..8d4cd240f8cdd90b60538169135845a97b74326f 100644 |
--- a/lib/src/runner/parse_metadata.dart |
+++ b/lib/src/runner/parse_metadata.dart |
@@ -176,9 +176,15 @@ class _Parser { |
_assertConstructorName(constructorName, 'Tags', annotation); |
_assertArguments(annotation.arguments, 'Tags', annotation, positional: 1); |
- return _parseList(annotation.arguments.arguments.first) |
- .map((tagExpression) => _parseString(tagExpression).stringValue) |
- .toSet(); |
+ return _parseList(annotation.arguments.arguments.first).map((tagExpression) { |
+ var name = _parseString(tagExpression).stringValue; |
+ if (name.contains(anchoredHyphenatedIdentifier)) return name; |
+ |
+ throw new SourceSpanFormatException( |
+ "Invalid tag name. Tags must be (optionally hyphenated) Dart " |
+ "identifiers.", |
+ _spanFor(tagExpression)); |
+ }).toSet(); |
} |
/// Parses an `@OnPlatform` annotation. |