Index: pkg/front_end/lib/src/fasta/modifier.dart |
diff --git a/pkg/front_end/lib/src/fasta/modifier.dart b/pkg/front_end/lib/src/fasta/modifier.dart |
index ac6fce6f393e7af7b4a926271e46ac10d3c0c3ee..4b2f5c6e18898939581b59165c63dd4138b38931 100644 |
--- a/pkg/front_end/lib/src/fasta/modifier.dart |
+++ b/pkg/front_end/lib/src/fasta/modifier.dart |
@@ -9,6 +9,7 @@ import 'errors.dart' show internalError; |
enum ModifierEnum { |
Abstract, |
Const, |
+ Covariant, |
External, |
Final, |
Static, |
@@ -21,7 +22,9 @@ const int abstractMask = 1; |
const int constMask = abstractMask << 1; |
-const int externalMask = constMask << 1; |
+const int covariantMask = constMask << 1; |
+ |
+const int externalMask = covariantMask << 1; |
const int finalMask = externalMask << 1; |
@@ -37,6 +40,9 @@ const Modifier Abstract = const Modifier(ModifierEnum.Abstract, abstractMask); |
const Modifier Const = const Modifier(ModifierEnum.Const, constMask); |
+const Modifier Covariant = |
+ const Modifier(ModifierEnum.Covariant, covariantMask); |
+ |
const Modifier External = const Modifier(ModifierEnum.External, externalMask); |
const Modifier Final = const Modifier(ModifierEnum.Final, finalMask); |
@@ -56,6 +62,7 @@ class Modifier { |
factory Modifier.fromString(String string) { |
if (identical('abstract', string)) return Abstract; |
if (identical('const', string)) return Const; |
+ if (identical('covariant', string)) return Covariant; |
if (identical('external', string)) return External; |
if (identical('final', string)) return Final; |
if (identical('static', string)) return Static; |
@@ -66,7 +73,8 @@ class Modifier { |
toString() => "modifier(${'$kind'.substring('ModifierEnum.'.length)})"; |
static int validate(List<Modifier> modifiers, {bool isAbstract: false}) { |
- // TODO(ahe): Implement modifier validation: ordering and uniqueness. |
+ // TODO(ahe): Rename this method, validation is now taken care of by the |
+ // parser. |
int result = isAbstract ? abstractMask : 0; |
if (modifiers == null) return result; |
for (Modifier modifier in modifiers) { |