Index: sdk/lib/_internal/compiler/implementation/deferred_load.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/deferred_load.dart b/sdk/lib/_internal/compiler/implementation/deferred_load.dart |
index daa22957395b1b55732524b8f48fe5104837f099..ec9edd1722fd299f853d3276381ad37f6f02ebbb 100644 |
--- a/sdk/lib/_internal/compiler/implementation/deferred_load.dart |
+++ b/sdk/lib/_internal/compiler/implementation/deferred_load.dart |
@@ -6,10 +6,10 @@ library deferred_load; |
import 'constants/expressions.dart'; |
import 'constants/values.dart' show |
- Constant, |
- ConstructedConstant, |
- DeferredConstant, |
- StringConstant; |
+ ConstantValue, |
+ ConstructedConstantValue, |
+ DeferredConstantValue, |
+ StringConstantValue; |
import 'dart2jslib.dart' show |
Backend, |
@@ -137,8 +137,8 @@ class DeferredLoadTask extends CompilerTask { |
/// A mapping from constants to their output unit. Query this via |
/// [outputUnitForConstant] |
- final Map<Constant, OutputUnit> _constantToOutputUnit = |
- new Map<Constant, OutputUnit>(); |
+ final Map<ConstantValue, OutputUnit> _constantToOutputUnit = |
+ new Map<ConstantValue, OutputUnit>(); |
/// All the imports with a [DeferredLibrary] annotation, mapped to the |
/// [LibraryElement] they import. |
@@ -149,7 +149,7 @@ class DeferredLoadTask extends CompilerTask { |
// For each deferred import we want to know exactly what elements have to |
// be loaded. |
Map<Import, Set<Element>> _importedDeferredBy = null; |
- Map<Import, Set<Constant>> _constantsDeferredBy = null; |
+ Map<Import, Set<ConstantValue>> _constantsDeferredBy = null; |
Set<Element> _mainElements = new Set<Element>(); |
@@ -180,7 +180,7 @@ class DeferredLoadTask extends CompilerTask { |
} |
/// Returns the [OutputUnit] where [constant] belongs. |
- OutputUnit outputUnitForConstant(Constant constant) { |
+ OutputUnit outputUnitForConstant(ConstantValue constant) { |
if (!isProgramSplit) return mainOutputUnit; |
return _constantToOutputUnit[constant]; |
@@ -195,7 +195,7 @@ class DeferredLoadTask extends CompilerTask { |
return outputUnitForElement(e1) == outputUnitForElement(e2); |
} |
- void registerConstantDeferredUse(DeferredConstant constant, |
+ void registerConstantDeferredUse(DeferredConstantValue constant, |
PrefixElement prefix) { |
OutputUnit outputUnit = new OutputUnit(); |
outputUnit.imports.add(prefix.deferredImport); |
@@ -234,14 +234,14 @@ class DeferredLoadTask extends CompilerTask { |
void _collectAllElementsAndConstantsResolvedFrom( |
Element element, |
Set<Element> elements, |
- Set<Constant> constants, |
+ Set<ConstantValue> constants, |
isMirrorUsage) { |
/// Recursively add the constant and its dependencies to [constants]. |
- void addConstants(Constant constant) { |
+ void addConstants(ConstantValue constant) { |
if (constants.contains(constant)) return; |
constants.add(constant); |
- if (constant is ConstructedConstant) { |
+ if (constant is ConstructedConstantValue) { |
elements.add(constant.type.element); |
} |
constant.getDependencies().forEach(addConstants); |
@@ -285,7 +285,8 @@ class DeferredLoadTask extends CompilerTask { |
// TODO(sigurdm): How is metadata on a patch-class handled? |
for (MetadataAnnotation metadata in element.metadata) { |
- ConstExp constant = backend.constants.getConstantForMetadata(metadata); |
+ ConstantExpression constant = |
+ backend.constants.getConstantForMetadata(metadata); |
if (constant != null) { |
addConstants(constant.value); |
} |
@@ -366,8 +367,8 @@ class DeferredLoadTask extends CompilerTask { |
{isMirrorUsage: false}) { |
Set<Element> elements = _importedDeferredBy.putIfAbsent(import, |
() => new Set<Element>()); |
- Set<Constant> constants = _constantsDeferredBy.putIfAbsent(import, |
- () => new Set<Constant>()); |
+ Set<ConstantValue> constants = _constantsDeferredBy.putIfAbsent(import, |
+ () => new Set<ConstantValue>()); |
// Only process elements once, unless we are doing dependencies due to |
// mirrors, which are added in additional traversals. |
@@ -421,7 +422,7 @@ class DeferredLoadTask extends CompilerTask { |
}); |
for (MetadataAnnotation metadata in library.metadata) { |
- ConstExp constant = |
+ ConstantExpression constant = |
backend.constants.getConstantForMetadata(metadata); |
if (constant != null) { |
_mapDependencies(constant.value.computeType(compiler).element, |
@@ -430,7 +431,7 @@ class DeferredLoadTask extends CompilerTask { |
} |
for (LibraryTag tag in library.tags) { |
for (MetadataAnnotation metadata in tag.metadata) { |
- ConstExp constant = |
+ ConstantExpression constant = |
backend.constants.getConstantForMetadata(metadata); |
if (constant != null) { |
_mapDependencies(constant.value.computeType(compiler).element, |
@@ -467,11 +468,12 @@ class DeferredLoadTask extends CompilerTask { |
assert(metadatas != null); |
for (MetadataAnnotation metadata in metadatas) { |
metadata.ensureResolved(compiler); |
- Element element = metadata.constant.value.computeType(compiler).element; |
+ Element element = |
+ metadata.constant.value.computeType(compiler).element; |
if (element == deferredLibraryClass) { |
- ConstructedConstant constant = metadata.constant.value; |
- StringConstant s = constant.fields[0]; |
- result = s.value.slowToString(); |
+ ConstructedConstantValue constant = metadata.constant.value; |
+ StringConstantValue s = constant.fields[0]; |
+ result = s.primitiveValue.slowToString(); |
break; |
} |
} |
@@ -531,7 +533,7 @@ class DeferredLoadTask extends CompilerTask { |
if (main == null) return; |
LibraryElement mainLibrary = main.library; |
_importedDeferredBy = new Map<Import, Set<Element>>(); |
- _constantsDeferredBy = new Map<Import, Set<Constant>>(); |
+ _constantsDeferredBy = new Map<Import, Set<ConstantValue>>(); |
_importedDeferredBy[_fakeMainImport] = _mainElements; |
measureElement(mainLibrary, () { |
@@ -555,8 +557,8 @@ class DeferredLoadTask extends CompilerTask { |
// Build the OutputUnits using these two maps. |
Map<Element, OutputUnit> elementToOutputUnitBuilder = |
new Map<Element, OutputUnit>(); |
- Map<Constant, OutputUnit> constantToOutputUnitBuilder = |
- new Map<Constant, OutputUnit>(); |
+ Map<ConstantValue, OutputUnit> constantToOutputUnitBuilder = |
+ new Map<ConstantValue, OutputUnit>(); |
// Reverse the mappings. For each element record an OutputUnit collecting |
// all deferred imports mapped to this element. Same for constants. |
@@ -572,7 +574,7 @@ class DeferredLoadTask extends CompilerTask { |
.imports.add(import); |
} |
} |
- for (Constant constant in _constantsDeferredBy[import]) { |
+ for (ConstantValue constant in _constantsDeferredBy[import]) { |
// Only one file should be loaded when the program starts, so make |
// sure that only one OutputUnit is created for [fakeMainImport]. |
if (import == _fakeMainImport) { |
@@ -601,7 +603,7 @@ class DeferredLoadTask extends CompilerTask { |
_elementToOutputUnit[element] = representative; |
}); |
constantToOutputUnitBuilder.forEach( |
- (Constant constant, OutputUnit outputUnit) { |
+ (ConstantValue constant, OutputUnit outputUnit) { |
OutputUnit representative = allOutputUnits.lookup(outputUnit); |
if (representative == null) { |
representative = outputUnit; |
@@ -657,7 +659,8 @@ class DeferredLoadTask extends CompilerTask { |
Element element = |
metadata.constant.value.computeType(compiler).element; |
if (element == deferredLibraryClass) { |
- compiler.reportFatalError(import, MessageKind.DEFERRED_OLD_SYNTAX); |
+ compiler.reportFatalError( |
+ import, MessageKind.DEFERRED_OLD_SYNTAX); |
} |
} |
} |