Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Unified Diff: sdk/lib/_internal/compiler/implementation/compile_time_constants.dart

Issue 150693005: Fix ParameterMirror.hasDefaultValue/defaultValue in source mirrors. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix handling of external parameters Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sdk/lib/_internal/compiler/implementation/elements/modelx.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/_internal/compiler/implementation/compile_time_constants.dart
diff --git a/sdk/lib/_internal/compiler/implementation/compile_time_constants.dart b/sdk/lib/_internal/compiler/implementation/compile_time_constants.dart
index efb75b879b434ae0a5b4b5fd72c98f2afc0b77f0..d0bb37b0db22a20b9b5cd622bdf734d3940dd68a 100644
--- a/sdk/lib/_internal/compiler/implementation/compile_time_constants.dart
+++ b/sdk/lib/_internal/compiler/implementation/compile_time_constants.dart
@@ -17,6 +17,8 @@ class ConstantHandler extends CompilerTask {
* Contains the initial value of fields. Must contain all static and global
* initializations of const fields. May contain eagerly compiled values for
* statics and instance fields.
+ *
+ * Invariant: The keys in this map are declarations.
*/
final Map<VariableElement, Constant> initialVariableValues;
@@ -44,7 +46,7 @@ class ConstantHandler extends CompilerTask {
}
Constant getConstantForVariable(VariableElement element) {
- return initialVariableValues[element];
+ return initialVariableValues[element.declaration];
}
/**
@@ -61,8 +63,8 @@ class ConstantHandler extends CompilerTask {
*/
Constant compileVariable(VariableElement element, {bool isConst: false}) {
return measure(() {
- if (initialVariableValues.containsKey(element)) {
- Constant result = initialVariableValues[element];
+ if (initialVariableValues.containsKey(element.declaration)) {
+ Constant result = initialVariableValues[element.declaration];
return result;
}
Element currentElement = element;
@@ -145,7 +147,7 @@ class ConstantHandler extends CompilerTask {
}
}
if (value != null) {
- initialVariableValues[element] = value;
+ initialVariableValues[element.declaration] = value;
} else {
assert(!isConst);
lazyStatics.add(element);
@@ -223,7 +225,7 @@ class ConstantHandler extends CompilerTask {
}
Constant getInitialValueFor(VariableElement element) {
- Constant initialValue = initialVariableValues[element];
+ Constant initialValue = initialVariableValues[element.declaration];
if (initialValue == null) {
compiler.internalError("No initial value for given element",
element: element);
« no previous file with comments | « no previous file | sdk/lib/_internal/compiler/implementation/elements/modelx.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698