Index: pkg/compiler/lib/src/common/resolution.dart |
diff --git a/pkg/compiler/lib/src/common/resolution.dart b/pkg/compiler/lib/src/common/resolution.dart |
index 7c675afe9413ad947702acacc926ce0b9494ff88..b55e195814ddd4657051eea50448523ed11d7e25 100644 |
--- a/pkg/compiler/lib/src/common/resolution.dart |
+++ b/pkg/compiler/lib/src/common/resolution.dart |
@@ -1,4 +1,3 @@ |
- |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
@@ -6,49 +5,36 @@ |
library dart2js.common.resolution; |
import '../common.dart'; |
-import '../compiler.dart' show |
- Compiler; |
-import '../constants/expressions.dart' show |
- ConstantExpression; |
-import '../core_types.dart' show |
- CoreTypes; |
-import '../dart_types.dart' show |
- DartType, |
- InterfaceType; |
-import '../elements/elements.dart' show |
- AstElement, |
- ClassElement, |
- Element, |
- ErroneousElement, |
- FunctionElement, |
- FunctionSignature, |
- LocalFunctionElement, |
- MetadataAnnotation, |
- MethodElement, |
- TypedefElement, |
- TypeVariableElement; |
-import '../enqueue.dart' show |
- ResolutionEnqueuer; |
-import '../options.dart' show |
- ParserOptions; |
-import '../parser/element_listener.dart' show |
- ScannerOptions; |
-import '../tree/tree.dart' show |
- AsyncForIn, |
- Send, |
- TypeAnnotation; |
-import '../universe/world_impact.dart' show |
- WorldImpact; |
-import 'work.dart' show |
- ItemCompilationContext, |
- WorkItem; |
+import '../compiler.dart' show Compiler; |
+import '../constants/expressions.dart' show ConstantExpression; |
+import '../core_types.dart' show CoreTypes; |
+import '../dart_types.dart' show DartType, InterfaceType; |
+import '../elements/elements.dart' |
+ show |
+ AstElement, |
+ ClassElement, |
+ Element, |
+ ErroneousElement, |
+ FunctionElement, |
+ FunctionSignature, |
+ LocalFunctionElement, |
+ MetadataAnnotation, |
+ MethodElement, |
+ TypedefElement, |
+ TypeVariableElement; |
+import '../enqueue.dart' show ResolutionEnqueuer; |
+import '../options.dart' show ParserOptions; |
+import '../parser/element_listener.dart' show ScannerOptions; |
+import '../tree/tree.dart' show AsyncForIn, Send, TypeAnnotation; |
+import '../universe/world_impact.dart' show WorldImpact; |
+import 'work.dart' show ItemCompilationContext, WorkItem; |
/// [WorkItem] used exclusively by the [ResolutionEnqueuer]. |
class ResolutionWorkItem extends WorkItem { |
bool _isAnalyzed = false; |
- ResolutionWorkItem(AstElement element, |
- ItemCompilationContext compilationContext) |
+ ResolutionWorkItem( |
+ AstElement element, ItemCompilationContext compilationContext) |
: super(element, compilationContext); |
WorldImpact run(Compiler compiler, ResolutionEnqueuer world) { |
@@ -77,48 +63,69 @@ class ResolutionImpact extends WorldImpact { |
enum Feature { |
/// Invocation of a generative construction on an abstract class. |
ABSTRACT_CLASS_INSTANTIATION, |
+ |
/// An assert statement with no message. |
ASSERT, |
+ |
/// An assert statement with a message. |
ASSERT_WITH_MESSAGE, |
+ |
/// A method with an `async` body modifier. |
ASYNC, |
+ |
/// An asynchronous for in statement like `await for (var e in i) {}`. |
ASYNC_FOR_IN, |
+ |
/// A method with an `async*` body modifier. |
ASYNC_STAR, |
+ |
/// A catch statement. |
CATCH_STATEMENT, |
+ |
/// A compile time error. |
COMPILE_TIME_ERROR, |
+ |
/// A fall through in a switch case. |
FALL_THROUGH_ERROR, |
+ |
/// A ++/-- operation. |
INC_DEC_OPERATION, |
+ |
/// A field whose initialization is not a constant. |
LAZY_FIELD, |
+ |
/// A catch clause with a variable for the stack trace. |
STACK_TRACE_IN_CATCH, |
+ |
/// String interpolation. |
STRING_INTERPOLATION, |
+ |
/// String juxtaposition. |
STRING_JUXTAPOSITION, |
+ |
/// An implicit call to `super.noSuchMethod`, like calling an unresolved |
/// super method. |
SUPER_NO_SUCH_METHOD, |
+ |
/// A redirection to the `Symbol` constructor. |
SYMBOL_CONSTRUCTOR, |
+ |
/// An synchronous for in statement, like `for (var e in i) {}`. |
SYNC_FOR_IN, |
+ |
/// A method with a `sync*` body modifier. |
SYNC_STAR, |
+ |
/// A throw expression. |
THROW_EXPRESSION, |
+ |
/// An implicit throw of a `NoSuchMethodError`, like calling an unresolved |
/// static method. |
THROW_NO_SUCH_METHOD, |
+ |
/// An implicit throw of a runtime error, like |
THROW_RUNTIME_ERROR, |
+ |
/// The need for a type variable bound check, like instantiation of a generic |
/// type whose type variable have non-trivial bounds. |
TYPE_VARIABLE_BOUNDS_CHECK, |
@@ -133,8 +140,7 @@ class MapLiteralUse { |
MapLiteralUse(this.type, {this.isConstant: false, this.isEmpty: false}); |
int get hashCode { |
- return |
- type.hashCode * 13 + |
+ return type.hashCode * 13 + |
isConstant.hashCode * 17 + |
isEmpty.hashCode * 19; |
} |
@@ -142,8 +148,7 @@ class MapLiteralUse { |
bool operator ==(other) { |
if (identical(this, other)) return true; |
if (other is! MapLiteralUse) return false; |
- return |
- type == other.type && |
+ return type == other.type && |
isConstant == other.isConstant && |
isEmpty == other.isEmpty; |
} |
@@ -162,8 +167,7 @@ class ListLiteralUse { |
ListLiteralUse(this.type, {this.isConstant: false, this.isEmpty: false}); |
int get hashCode { |
- return |
- type.hashCode * 13 + |
+ return type.hashCode * 13 + |
isConstant.hashCode * 17 + |
isEmpty.hashCode * 19; |
} |
@@ -171,8 +175,7 @@ class ListLiteralUse { |
bool operator ==(other) { |
if (identical(this, other)) return true; |
if (other is! ListLiteralUse) return false; |
- return |
- type == other.type && |
+ return type == other.type && |
isConstant == other.isConstant && |
isEmpty == other.isEmpty; |
} |
@@ -233,4 +236,4 @@ abstract class Parsing { |
measure(f()); |
ScannerOptions getScannerOptionsFor(Element element); |
ParserOptions get parserOptions; |
-} |
+} |