Chromium Code Reviews| Index: pkg/compiler/lib/src/js_backend/namer.dart |
| diff --git a/pkg/compiler/lib/src/js_backend/namer.dart b/pkg/compiler/lib/src/js_backend/namer.dart |
| index 15751cfe3a2151b13cfdc64b33968b6d889e757c..e0b2a7f717ff56c0a2761d6e6f948abc5bf26286 100644 |
| --- a/pkg/compiler/lib/src/js_backend/namer.dart |
| +++ b/pkg/compiler/lib/src/js_backend/namer.dart |
| @@ -14,7 +14,20 @@ import '../common/names.dart' show Identifiers, Selectors; |
| import '../constants/values.dart'; |
| import '../common_elements.dart' show CommonElements; |
| import '../diagnostics/invariant.dart' show DEBUG_MODE; |
| -import '../elements/elements.dart'; |
| +import '../elements/elements.dart' |
| + show |
| + ClassElement, |
| + ConstructorBodyElement, |
| + Element, |
| + Elements, |
| + FieldElement, |
| + FormalElement, |
| + FunctionElement, |
| + FunctionSignature, |
| + MemberElement, |
| + TypeDeclarationElement, |
| + MixinApplicationElement, |
| + TypedefElement; |
| import '../elements/entities.dart'; |
| import '../elements/entity_utils.dart' as utils; |
| import '../elements/jumps.dart'; |
| @@ -22,7 +35,6 @@ import '../elements/names.dart'; |
| import '../elements/resolution_types.dart'; |
| import '../elements/types.dart'; |
| import '../js/js.dart' as jsAst; |
| -import '../tree/tree.dart'; |
|
Siggi Cherem (dart-lang)
2017/06/15 18:28:55
\o/
|
| import '../universe/call_structure.dart' show CallStructure; |
| import '../universe/selector.dart' show Selector, SelectorKind; |
| import '../universe/world_builder.dart' show CodegenWorldBuilder; |
| @@ -542,8 +554,8 @@ class Namer { |
| final Map<String, int> popularNameCounters = <String, int>{}; |
| - final Map<LibraryElement, String> libraryLongNames = |
| - new HashMap<LibraryElement, String>(); |
| + final Map<LibraryEntity, String> libraryLongNames = |
| + new HashMap<LibraryEntity, String>(); |
| final Map<ConstantValue, jsAst.Name> constantNames = |
| new HashMap<ConstantValue, jsAst.Name>(); |
| @@ -553,8 +565,8 @@ class Namer { |
| /// Maps private names to a library that may use that name without prefixing |
| /// itself. Used for building proposed names. |
| - final Map<String, LibraryElement> shortPrivateNameOwners = |
| - <String, LibraryElement>{}; |
| + final Map<String, LibraryEntity> shortPrivateNameOwners = |
| + <String, LibraryEntity>{}; |
| final Map<String, String> suggestedGlobalNames = <String, String>{}; |
| final Map<String, String> suggestedInstanceNames = <String, String>{}; |
| @@ -562,8 +574,8 @@ class Namer { |
| /// Used to store unique keys for library names. Keys are not used as names, |
| /// nor are they visible in the output. The only serve as an internal |
| /// key into maps. |
| - final Map<LibraryElement, String> _libraryKeys = |
| - new HashMap<LibraryElement, String>(); |
| + final Map<LibraryEntity, String> _libraryKeys = |
| + new HashMap<LibraryEntity, String>(); |
| Namer(this._closedWorld, this._codegenWorldBuilder) { |
| _literalAsyncPrefix = new StringBackedName(asyncPrefix); |
| @@ -596,7 +608,7 @@ class Namer { |
| /// Returns the string that is to be used as the result of a call to |
| /// [JS_GET_NAME] at [node] with argument [name]. |
| - jsAst.Name getNameForJsGetName(Node node, JsGetName name) { |
| + jsAst.Name getNameForJsGetName(Spannable spannable, JsGetName name) { |
| switch (name) { |
| case JsGetName.GETTER_PREFIX: |
| return asName(getterPrefix); |
| @@ -653,17 +665,14 @@ class Namer { |
| case JsGetName.IS_INDEXABLE_FIELD_NAME: |
| return operatorIs(_commonElements.jsIndexingBehaviorInterface); |
| case JsGetName.NULL_CLASS_TYPE_NAME: |
| - ClassElement nullClass = _commonElements.nullClass; |
| - return runtimeTypeName(nullClass); |
| + return runtimeTypeName(_commonElements.nullClass); |
| case JsGetName.OBJECT_CLASS_TYPE_NAME: |
| - ClassElement objectClass = _commonElements.objectClass; |
| - return runtimeTypeName(objectClass); |
| + return runtimeTypeName(_commonElements.objectClass); |
| case JsGetName.FUNCTION_CLASS_TYPE_NAME: |
| - ClassElement functionClass = _commonElements.functionClass; |
| - return runtimeTypeName(functionClass); |
| + return runtimeTypeName(_commonElements.functionClass); |
| default: |
| throw new SpannableAssertionFailure( |
| - node, 'Error: Namer has no name for "$name".'); |
| + spannable, 'Error: Namer has no name for "$name".'); |
| } |
| } |
| @@ -741,10 +750,10 @@ class Namer { |
| // Public names are easy. |
| if (!originalName.isPrivate) return text; |
| - LibraryElement library = originalName.library; |
| + LibraryEntity library = originalName.library; |
| // The first library asking for a short private name wins. |
| - LibraryElement owner = |
| + LibraryEntity owner = |
| shortPrivateNameOwners.putIfAbsent(text, () => library); |
| if (owner == library) { |
| @@ -1036,7 +1045,7 @@ class Namer { |
| /// Generates a unique key for [library]. |
| /// |
| /// Keys are meant to be used in maps and should not be visible in the output. |
| - String _generateLibraryKey(LibraryElement library) { |
| + String _generateLibraryKey(LibraryEntity library) { |
| return _libraryKeys.putIfAbsent(library, () { |
| String keyBase = library.name; |
| int counter = 0; |