1
1
import 'package:angular/core/parser/parser_library.dart' ;
2
2
3
+ // TODO(deboer): Remove this duplicated code.
4
+ // From https://www.dartlang.org/docs/spec/latest/dart-language-specification.html#h.huusvrzea3q
5
+ List <String > RESERVED_DART_KEYWORDS = [
6
+ "assert" , "break" , "case" , "catch" , "class" , "const" , "continue" ,
7
+ "default" , "do" , "else" , "enum" , "extends" , "false" , "final" ,
8
+ "finally" , "for" , "if" , "in" , "is" , "new" , "null" , "rethrow" ,
9
+ "return" , "super" , "switch" , "this" , "throw" , "true" , "try" ,
10
+ "var" , "void" , "while" , "with" ];
11
+ isReserved (String key) => RESERVED_DART_KEYWORDS .contains (key);
12
+
3
13
class _AST implements ParserAST {
4
14
bool get assignable => true ;
5
15
}
@@ -50,7 +60,8 @@ class ParserGetterSetter {
50
60
print (generateCode (backend.identifiers.keys.toList ()));
51
61
}
52
62
53
- generateCode (List <String > keys) {
63
+ generateCode (Iterable <String > keys) {
64
+ keys = keys.where ((key) => ! isReserved (key));
54
65
return '''
55
66
class StaticGetterSetter extends GetterSetter {
56
67
Map<String, Function> _getters = ${generateGetterMap (keys )};
@@ -68,12 +79,12 @@ class StaticGetterSetter extends GetterSetter {
68
79
''' ;
69
80
}
70
81
71
- generateGetterMap (List <String > keys) {
82
+ generateGetterMap (Iterable <String > keys) {
72
83
var lines = keys.map ((key) => 'r"${key }": (s) => s.$key ' );
73
84
return '{\n ${lines .join (",\n " )}\n }' ;
74
85
}
75
86
76
- generateSetterMap (List <String > keys) {
87
+ generateSetterMap (Iterable <String > keys) {
77
88
var lines = keys.map ((key) => 'r"${key }": (s, v) => s.$key = v' );
78
89
return '{\n ${lines .join (",\n " )}\n }' ;
79
90
}
0 commit comments