Index: pkg/compiler/lib/src/common/codegen.dart |
diff --git a/pkg/compiler/lib/src/common/codegen.dart b/pkg/compiler/lib/src/common/codegen.dart |
index 12c399f9d652ea0669a20e4d3736da23c5cc0c6e..ce72cfc586bb5b7f6c1215ec01b8ae673feef2c8 100644 |
--- a/pkg/compiler/lib/src/common/codegen.dart |
+++ b/pkg/compiler/lib/src/common/codegen.dart |
@@ -5,30 +5,28 @@ |
library dart2js.common.codegen; |
import '../common.dart'; |
-import '../elements/resolution_types.dart' |
- show ResolutionDartType, ResolutionInterfaceType; |
import '../elements/elements.dart' |
show |
+ AsyncMarker, |
ClassElement, |
- Element, |
- FunctionElement, |
LocalFunctionElement, |
MemberElement, |
ResolvedAst; |
import '../elements/entities.dart'; |
+import '../elements/types.dart' show DartType, InterfaceType; |
import '../js_backend/backend.dart' show JavaScriptBackend; |
import '../universe/use.dart' show ConstantUse, DynamicUse, StaticUse, TypeUse; |
import '../universe/world_impact.dart' |
show WorldImpact, WorldImpactBuilderImpl, WorldImpactVisitor; |
+import '../util/enumset.dart'; |
import '../util/util.dart' show Pair, Setlet; |
import 'work.dart' show WorkItem; |
class CodegenImpact extends WorldImpact { |
const CodegenImpact(); |
- Iterable<Pair<ResolutionDartType, ResolutionDartType>> |
- get typeVariableBoundsSubtypeChecks { |
- return const <Pair<ResolutionDartType, ResolutionDartType>>[]; |
+ Iterable<Pair<DartType, DartType>> get typeVariableBoundsSubtypeChecks { |
+ return const <Pair<DartType, DartType>>[]; |
} |
Iterable<String> get constSymbols => const <String>[]; |
@@ -39,16 +37,15 @@ class CodegenImpact extends WorldImpact { |
bool get usesInterceptor => false; |
- Iterable<Element> get asyncMarkers => const <FunctionElement>[]; |
+ Iterable<AsyncMarker> get asyncMarkers => <AsyncMarker>[]; |
} |
class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact { |
- Setlet<Pair<ResolutionDartType, ResolutionDartType>> |
- _typeVariableBoundsSubtypeChecks; |
+ Setlet<Pair<DartType, DartType>> _typeVariableBoundsSubtypeChecks; |
Setlet<String> _constSymbols; |
List<Set<ClassEntity>> _specializedGetInterceptors; |
bool _usesInterceptor = false; |
- Setlet<FunctionElement> _asyncMarkers; |
+ EnumSet<AsyncMarker> _asyncMarkers; |
_CodegenImpact(); |
@@ -59,20 +56,18 @@ class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact { |
} |
void registerTypeVariableBoundsSubtypeCheck( |
- ResolutionDartType subtype, ResolutionDartType supertype) { |
+ DartType subtype, DartType supertype) { |
if (_typeVariableBoundsSubtypeChecks == null) { |
- _typeVariableBoundsSubtypeChecks = |
- new Setlet<Pair<ResolutionDartType, ResolutionDartType>>(); |
+ _typeVariableBoundsSubtypeChecks = new Setlet<Pair<DartType, DartType>>(); |
} |
- _typeVariableBoundsSubtypeChecks.add( |
- new Pair<ResolutionDartType, ResolutionDartType>(subtype, supertype)); |
+ _typeVariableBoundsSubtypeChecks |
+ .add(new Pair<DartType, DartType>(subtype, supertype)); |
} |
- Iterable<Pair<ResolutionDartType, ResolutionDartType>> |
- get typeVariableBoundsSubtypeChecks { |
+ Iterable<Pair<DartType, DartType>> get typeVariableBoundsSubtypeChecks { |
return _typeVariableBoundsSubtypeChecks != null |
? _typeVariableBoundsSubtypeChecks |
- : const <Pair<ResolutionDartType, ResolutionDartType>>[]; |
+ : const <Pair<DartType, DartType>>[]; |
} |
void registerConstSymbol(String name) { |
@@ -105,15 +100,17 @@ class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact { |
bool get usesInterceptor => _usesInterceptor; |
- void registerAsyncMarker(FunctionElement element) { |
+ void registerAsyncMarker(AsyncMarker asyncMarker) { |
if (_asyncMarkers == null) { |
- _asyncMarkers = new Setlet<FunctionElement>(); |
+ _asyncMarkers = new EnumSet<AsyncMarker>(); |
} |
- _asyncMarkers.add(element); |
+ _asyncMarkers.add(asyncMarker); |
} |
- Iterable<Element> get asyncMarkers { |
- return _asyncMarkers != null ? _asyncMarkers : const <FunctionElement>[]; |
+ Iterable<AsyncMarker> get asyncMarkers { |
+ return _asyncMarkers != null |
+ ? _asyncMarkers.iterable(AsyncMarker.values) |
+ : const <AsyncMarker>[]; |
} |
} |
@@ -153,7 +150,7 @@ class CodegenRegistry { |
} |
void registerTypeVariableBoundsSubtypeCheck( |
- ResolutionDartType subtype, ResolutionDartType supertype) { |
+ DartType subtype, DartType supertype) { |
worldImpact.registerTypeVariableBoundsSubtypeCheck(subtype, supertype); |
} |
@@ -173,12 +170,12 @@ class CodegenRegistry { |
worldImpact.registerUseInterceptor(); |
} |
- void registerInstantiation(ResolutionInterfaceType type) { |
+ void registerInstantiation(InterfaceType type) { |
registerTypeUse(new TypeUse.instantiation(type)); |
} |
- void registerAsyncMarker(FunctionElement element) { |
- worldImpact.registerAsyncMarker(element); |
+ void registerAsyncMarker(AsyncMarker asyncMarker) { |
+ worldImpact.registerAsyncMarker(asyncMarker); |
} |
} |