Index: compiler/java/com/google/dart/compiler/resolver/TopLevelElementBuilder.java |
diff --git a/compiler/java/com/google/dart/compiler/resolver/TopLevelElementBuilder.java b/compiler/java/com/google/dart/compiler/resolver/TopLevelElementBuilder.java |
index 116f0a84ed6e8dd83421cf197303ff9c8335c966..d9e3dee109b3aeb22868ef8d395b132cdde3fa98 100644 |
--- a/compiler/java/com/google/dart/compiler/resolver/TopLevelElementBuilder.java |
+++ b/compiler/java/com/google/dart/compiler/resolver/TopLevelElementBuilder.java |
@@ -20,6 +20,7 @@ import com.google.dart.compiler.ast.DartNodeTraverser; |
import com.google.dart.compiler.ast.DartTypeParameter; |
import com.google.dart.compiler.ast.DartUnit; |
import com.google.dart.compiler.ast.LibraryUnit; |
+import com.google.dart.compiler.ast.Modifiers; |
import com.google.dart.compiler.common.SourceInfo; |
import com.google.dart.compiler.type.Types; |
@@ -150,7 +151,12 @@ public class TopLevelElementBuilder { |
@Override |
public Void visitField(DartField node) { |
- node.setSymbol(Elements.fieldFromNode(node, library, node.getModifiers())); |
+ Modifiers modifiers = node.getModifiers(); |
+ if (modifiers.isFinal()) { |
+ // final toplevel fields are implicitly compile-time constants. |
ngeoffray
2011/10/17 10:59:38
Again, since they must all be compile-time constan
|
+ modifiers = modifiers.makeConstant(); |
+ } |
+ node.setSymbol(Elements.fieldFromNode(node, library, modifiers)); |
return null; |
} |
} |