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

Unified Diff: pkg/compiler/lib/src/js_backend/namer.dart

Issue 1859343004: dartfmt pkg/compiler (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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 | « pkg/compiler/lib/src/js_backend/minify_namer.dart ('k') | pkg/compiler/lib/src/js_backend/namer_names.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 7ffe502ffd7d599d10f5417b09ca00bccc6202ed..70d7eb7dabacbb2f832332608f2951f4a2fbca1a 100644
--- a/pkg/compiler/lib/src/js_backend/namer.dart
+++ b/pkg/compiler/lib/src/js_backend/namer.dart
@@ -102,7 +102,6 @@ part of js_backend;
* must be disambiguated elsewhere.
*/
class Namer {
-
static const List<String> javaScriptKeywords = const <String>[
// These are current keywords.
"break", "delete", "function", "return", "typeof", "case", "do", "if",
@@ -118,13 +117,13 @@ class Namer {
"long", "short", "volatile"
];
- static const List<String> reservedPropertySymbols =
- const <String>[
- "__proto__", "prototype", "constructor", "call",
- // "use strict" disallows the use of "arguments" and "eval" as
- // variable names or property names. See ECMA-262, Edition 5.1,
- // section 11.1.5 (for the property names).
- "eval", "arguments"];
+ static const List<String> reservedPropertySymbols = const <String>[
+ "__proto__", "prototype", "constructor", "call",
+ // "use strict" disallows the use of "arguments" and "eval" as
+ // variable names or property names. See ECMA-262, Edition 5.1,
+ // section 11.1.5 (for the property names).
+ "eval", "arguments"
+ ];
// Symbols that we might be using in our JS snippets.
static const List<String> reservedGlobalSymbols = const <String>[
@@ -251,48 +250,49 @@ class Namer {
];
static const List<String> reservedGlobalObjectNames = const <String>[
- "A",
- "B",
- "C", // Global object for *C*onstants.
- "D",
- "E",
- "F",
- "G",
- "H", // Global object for internal (*H*elper) libraries.
- // I is used for used for the Isolate function.
- "J", // Global object for the interceptor library.
- "K",
- "L",
- "M",
- "N",
- "O",
- "P", // Global object for other *P*latform libraries.
- "Q",
- "R",
- "S",
- "T",
- "U",
- "V",
- "W", // Global object for *W*eb libraries (dart:html).
- "X",
- "Y",
- "Z",
+ "A",
+ "B",
+ "C", // Global object for *C*onstants.
+ "D",
+ "E",
+ "F",
+ "G",
+ "H", // Global object for internal (*H*elper) libraries.
+ // I is used for used for the Isolate function.
+ "J", // Global object for the interceptor library.
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P", // Global object for other *P*latform libraries.
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W", // Global object for *W*eb libraries (dart:html).
+ "X",
+ "Y",
+ "Z",
];
static const List<String> reservedGlobalHelperFunctions = const <String>[
- "init",
- "Isolate",
+ "init",
+ "Isolate",
];
static final List<String> userGlobalObjects =
new List.from(reservedGlobalObjectNames)
- ..remove('C')
- ..remove('H')
- ..remove('J')
- ..remove('P')
- ..remove('W');
+ ..remove('C')
+ ..remove('H')
+ ..remove('J')
+ ..remove('P')
+ ..remove('W');
Set<String> _jsReserved = null;
+
/// Names that cannot be used by members, top level and static
/// methods.
Set<String> get jsReserved {
@@ -305,6 +305,7 @@ class Namer {
}
Set<String> _jsVariableReserved = null;
+
/// Names that cannot be used by local variables and parameters.
Set<String> get jsVariableReserved {
if (_jsVariableReserved == null) {
@@ -456,33 +457,48 @@ class Namer {
bool get shouldMinify => false;
NamingScope _getPrivateScopeFor(PrivatelyNamedJSEntity entity) {
- return _privateNamingScopes.putIfAbsent(entity.rootOfScope,
- () => new NamingScope());
+ return _privateNamingScopes.putIfAbsent(
+ entity.rootOfScope, () => new NamingScope());
}
/// 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) {
switch (name) {
- case JsGetName.GETTER_PREFIX: return asName(getterPrefix);
- case JsGetName.SETTER_PREFIX: return asName(setterPrefix);
- case JsGetName.CALL_PREFIX: return asName(callPrefix);
- case JsGetName.CALL_PREFIX0: return asName('${callPrefix}\$0');
- case JsGetName.CALL_PREFIX1: return asName('${callPrefix}\$1');
- case JsGetName.CALL_PREFIX2: return asName('${callPrefix}\$2');
- case JsGetName.CALL_PREFIX3: return asName('${callPrefix}\$3');
- case JsGetName.CALL_CATCH_ALL: return asName(callCatchAllName);
- case JsGetName.REFLECTABLE: return asName(reflectableField);
+ case JsGetName.GETTER_PREFIX:
+ return asName(getterPrefix);
+ case JsGetName.SETTER_PREFIX:
+ return asName(setterPrefix);
+ case JsGetName.CALL_PREFIX:
+ return asName(callPrefix);
+ case JsGetName.CALL_PREFIX0:
+ return asName('${callPrefix}\$0');
+ case JsGetName.CALL_PREFIX1:
+ return asName('${callPrefix}\$1');
+ case JsGetName.CALL_PREFIX2:
+ return asName('${callPrefix}\$2');
+ case JsGetName.CALL_PREFIX3:
+ return asName('${callPrefix}\$3');
+ case JsGetName.CALL_CATCH_ALL:
+ return asName(callCatchAllName);
+ case JsGetName.REFLECTABLE:
+ return asName(reflectableField);
case JsGetName.CLASS_DESCRIPTOR_PROPERTY:
return asName(classDescriptorProperty);
case JsGetName.REQUIRED_PARAMETER_PROPERTY:
return asName(requiredParameterField);
- case JsGetName.DEFAULT_VALUES_PROPERTY: return asName(defaultValuesField);
- case JsGetName.CALL_NAME_PROPERTY: return asName(callNameField);
- case JsGetName.DEFERRED_ACTION_PROPERTY: return asName(deferredAction);
- case JsGetName.OPERATOR_AS_PREFIX: return asName(operatorAsPrefix);
- case JsGetName.SIGNATURE_NAME: return asName(operatorSignature);
- case JsGetName.TYPEDEF_TAG: return asName(typedefTag);
+ case JsGetName.DEFAULT_VALUES_PROPERTY:
+ return asName(defaultValuesField);
+ case JsGetName.CALL_NAME_PROPERTY:
+ return asName(callNameField);
+ case JsGetName.DEFERRED_ACTION_PROPERTY:
+ return asName(deferredAction);
+ case JsGetName.OPERATOR_AS_PREFIX:
+ return asName(operatorAsPrefix);
+ case JsGetName.SIGNATURE_NAME:
+ return asName(operatorSignature);
+ case JsGetName.TYPEDEF_TAG:
+ return asName(typedefTag);
case JsGetName.FUNCTION_TYPE_VOID_RETURN_TAG:
return asName(functionTypeVoidReturnTag);
case JsGetName.FUNCTION_TYPE_RETURN_TYPE_TAG:
@@ -502,10 +518,8 @@ class Namer {
case JsGetName.FUNCTION_CLASS_TYPE_NAME:
return runtimeTypeName(coreClasses.functionClass);
default:
- reporter.reportErrorMessage(
- node,
- MessageKind.GENERIC,
- {'text': 'Error: Namer has no name for "$name".'});
+ reporter.reportErrorMessage(node, MessageKind.GENERIC,
+ {'text': 'Error: Namer has no name for "$name".'});
return asName('BROKEN');
}
}
@@ -539,8 +553,8 @@ class Namer {
String constantLongName(ConstantValue constant) {
String longName = constantLongNames[constant];
if (longName == null) {
- longName = new ConstantNamingVisitor(compiler, constantHasher)
- .getName(constant);
+ longName =
+ new ConstantNamingVisitor(compiler, constantHasher).getName(constant);
constantLongNames[constant] = longName;
}
return longName;
@@ -611,8 +625,8 @@ class Namer {
/// Name for a constructor body.
jsAst.Name constructorBodyName(FunctionElement ctor) {
- return _disambiguateInternalMember(ctor,
- () => _proposeNameForConstructorBody(ctor));
+ return _disambiguateInternalMember(
+ ctor, () => _proposeNameForConstructorBody(ctor));
}
/// Annotated name for [method] encoding arity and named parameters.
@@ -625,8 +639,7 @@ class Namer {
String _jsNameHelper(Element e) {
String jsInteropName = backend.nativeData.getJsInteropName(e);
- if (jsInteropName != null && jsInteropName.isNotEmpty)
- return jsInteropName;
+ if (jsInteropName != null && jsInteropName.isNotEmpty) return jsInteropName;
return e.isLibrary ? 'self' : e.name;
}
@@ -694,13 +707,11 @@ class Namer {
jsAst.Name invocationName(Selector selector) {
switch (selector.kind) {
case SelectorKind.GETTER:
- jsAst.Name disambiguatedName =
- _disambiguateMember(selector.memberName);
+ jsAst.Name disambiguatedName = _disambiguateMember(selector.memberName);
return deriveGetterName(disambiguatedName);
case SelectorKind.SETTER:
- jsAst.Name disambiguatedName =
- _disambiguateMember(selector.memberName);
+ jsAst.Name disambiguatedName = _disambiguateMember(selector.memberName);
return deriveSetterName(disambiguatedName);
case SelectorKind.OPERATOR:
@@ -721,8 +732,7 @@ class Namer {
return disambiguatedName; // Methods other than call are not annotated.
default:
- reporter.internalError(
- CURRENT_ELEMENT_SPANNABLE,
+ reporter.internalError(CURRENT_ELEMENT_SPANNABLE,
'Unexpected selector kind: ${selector.kind}');
return null;
}
@@ -731,8 +741,8 @@ class Namer {
/**
* Returns the internal name used for an invocation mirror of this selector.
*/
- jsAst.Name invocationMirrorInternalName(Selector selector)
- => invocationName(selector);
+ jsAst.Name invocationMirrorInternalName(Selector selector) =>
+ invocationName(selector);
/**
* Returns the disambiguated name for the given field, used for constructing
@@ -793,8 +803,8 @@ class Namer {
// apply. So we can directly grab a name.
Entity asEntity = element;
if (asEntity is JSEntity) {
- return _disambiguateInternalMember(element,
- () => asEntity.declaredEntity.name);
+ return _disambiguateInternalMember(
+ element, () => asEntity.declaredEntity.name);
}
// If the name of the field might clash with another field,
@@ -825,7 +835,7 @@ class Namer {
/// True if [class_] is a non-native class that inherits from a native class.
bool _isUserClassExtendingNative(ClassElement class_) {
return !backend.isNative(class_) &&
- backend.isNativeOrExtendsNative(class_.superclass);
+ backend.isNativeOrExtendsNative(class_.superclass);
}
/// Annotated name for the setter of [element].
@@ -901,7 +911,7 @@ class Namer {
int counter = 0;
String key = keyBase;
while (_libraryKeys.values.contains(key)) {
- key ="$keyBase${counter++}";
+ key = "$keyBase${counter++}";
}
return key;
});
@@ -940,11 +950,10 @@ class Namer {
/// to the ([originalName], [suffixes]) pair within the instance-member
/// namespace.
jsAst.Name _disambiguateMember(Name originalName,
- [List<String> suffixes = const []]) {
+ [List<String> suffixes = const []]) {
// Build a string encoding the library name, if the name is private.
- String libraryKey = originalName.isPrivate
- ? _generateLibraryKey(originalName.library)
- : '';
+ String libraryKey =
+ originalName.isPrivate ? _generateLibraryKey(originalName.library) : '';
// In the unique key, separate the name parts by '@'.
// This avoids clashes since the original names cannot contain that symbol.
@@ -958,7 +967,7 @@ class Namer {
proposedName += r'$' + suffixes.join(r'$');
}
newName = getFreshName(instanceScope, proposedName,
- sanitizeForAnnotations: true);
+ sanitizeForAnnotations: true);
userInstanceMembers[key] = newName;
}
return _newReference(newName);
@@ -980,8 +989,7 @@ class Namer {
jsAst.Name newName = userInstanceMembers[key];
if (newName == null) {
String name = proposeName();
- newName = getFreshName(instanceScope, name,
- sanitizeForAnnotations: true);
+ newName = getFreshName(instanceScope, name, sanitizeForAnnotations: true);
userInstanceMembers[key] = newName;
}
return _newReference(newName);
@@ -995,8 +1003,7 @@ class Namer {
///
/// Using [_disambiguateMember] with the given [originalName] and no suffixes
/// will subsequently return [disambiguatedName].
- void reservePublicMemberName(String originalName,
- String disambiguatedName) {
+ void reservePublicMemberName(String originalName, String disambiguatedName) {
// Build a key that corresponds to the one built in disambiguateMember.
String libraryPrefix = ''; // Public names have an empty library prefix.
String suffix = ''; // We don't need any suffixes.
@@ -1013,8 +1020,8 @@ class Namer {
/// constructor bodies, and super-accessors.
///
/// The resulting name is unique within the instance-member namespace.
- jsAst.Name _disambiguateInternalMember(Element element,
- String proposeName()) {
+ jsAst.Name _disambiguateInternalMember(
+ Element element, String proposeName()) {
jsAst.Name newName = internalInstanceMembers[element];
if (newName == null) {
String name = proposeName();
@@ -1023,15 +1030,13 @@ class Namer {
if (asEntity is PrivatelyNamedJSEntity) {
NamingScope scope = _getPrivateScopeFor(asEntity);
newName = getFreshName(scope, name,
- sanitizeForAnnotations: true,
- sanitizeForNatives: false);
+ sanitizeForAnnotations: true, sanitizeForNatives: false);
internalInstanceMembers[element] = newName;
} else {
bool mayClashNative =
_isUserClassExtendingNative(element.enclosingClass);
newName = getFreshName(instanceScope, name,
- sanitizeForAnnotations: true,
- sanitizeForNatives: mayClashNative);
+ sanitizeForAnnotations: true, sanitizeForNatives: mayClashNative);
internalInstanceMembers[element] = newName;
}
}
@@ -1053,10 +1058,8 @@ class Namer {
return _newReference(newName);
}
- String _generateFreshStringForName(String proposedName,
- NamingScope scope,
- {bool sanitizeForAnnotations: false,
- bool sanitizeForNatives: false}) {
+ String _generateFreshStringForName(String proposedName, NamingScope scope,
+ {bool sanitizeForAnnotations: false, bool sanitizeForNatives: false}) {
if (sanitizeForAnnotations) {
proposedName = _sanitizeForAnnotations(proposedName);
}
@@ -1092,16 +1095,11 @@ class Namer {
///
/// Note that [MinifyNamer] overrides this method with one that produces
/// minified names.
- jsAst.Name getFreshName(NamingScope scope,
- String proposedName,
- {bool sanitizeForAnnotations: false,
- bool sanitizeForNatives: false}) {
- String candidate =
- _generateFreshStringForName(proposedName,
- scope,
- sanitizeForAnnotations:
- sanitizeForAnnotations,
- sanitizeForNatives: sanitizeForNatives);
+ jsAst.Name getFreshName(NamingScope scope, String proposedName,
+ {bool sanitizeForAnnotations: false, bool sanitizeForNatives: false}) {
+ String candidate = _generateFreshStringForName(proposedName, scope,
+ sanitizeForAnnotations: sanitizeForAnnotations,
+ sanitizeForNatives: sanitizeForNatives);
return new StringBackedName(candidate);
}
@@ -1152,7 +1150,7 @@ class Namer {
String name;
if (element.isGenerativeConstructor) {
name = "${element.enclosingClass.name}\$"
- "${element.name}";
+ "${element.name}";
} else if (element.isFactoryConstructor) {
// TODO(johnniwinther): Change factory name encoding as to not include
// the class-name twice.
@@ -1162,7 +1160,7 @@ class Namer {
if (element.isClassMember) {
ClassElement enclosingClass = element.enclosingClass;
name = "${enclosingClass.name}_"
- "${element.name}";
+ "${element.name}";
} else {
name = element.name.replaceAll('+', '_');
}
@@ -1184,14 +1182,15 @@ class Namer {
if (!IDENTIFIER.hasMatch(name)) {
name = name.replaceAllMapped(NON_IDENTIFIER_CHAR,
(match) => match[0].codeUnitAt(0).toRadixString(16));
- if (!IDENTIFIER.hasMatch(name)) { // e.g. starts with digit.
+ if (!IDENTIFIER.hasMatch(name)) {
+ // e.g. starts with digit.
name = 'lib_$name';
}
}
// Names constructed based on a libary name will be further disambiguated.
// However, as names from the same libary should have the same libary
// name part, we disambiguate the library name here.
- String disambiguated = name;
+ String disambiguated = name;
for (int c = 0; libraryLongNames.containsValue(disambiguated); c++) {
disambiguated = "$name$c";
}
@@ -1248,8 +1247,8 @@ class Namer {
/// Property name used for the one-shot interceptor method for the given
/// [selector] and return-type specialization.
- jsAst.Name nameForGetOneShotInterceptor(Selector selector,
- Iterable<ClassElement> classes) {
+ jsAst.Name nameForGetOneShotInterceptor(
+ Selector selector, Iterable<ClassElement> classes) {
// The one-shot name is a global name derived from the invocation name. To
// avoid instability we would like the names to be unique and not clash with
// other global names.
@@ -1264,8 +1263,8 @@ class Namer {
return new CompoundName([root, _literalDollar]);
} else {
String suffix = suffixForGetInterceptor(classes);
- return new CompoundName([root, _literalDollar,
- new StringBackedName(suffix)]);
+ return new CompoundName(
+ [root, _literalDollar, new StringBackedName(suffix)]);
}
}
@@ -1354,11 +1353,11 @@ class Namer {
// other elements, such as bound closures also live in
// [staticStateHolder].
!element.isAccessor &&
- !element.isClass &&
- !element.isTypedef &&
- !element.isConstructor &&
- !element.isFunction &&
- !element.isLibrary;
+ !element.isClass &&
+ !element.isTypedef &&
+ !element.isConstructor &&
+ !element.isFunction &&
+ !element.isLibrary;
}
/// Returns [staticStateHolder] or one of [reservedGlobalObjectNames].
@@ -1389,8 +1388,8 @@ class Namer {
jsAst.Name staticClosureName(Element element) {
assert(Elements.isStaticOrTopLevelFunction(element));
- String enclosing = element.enclosingClass == null
- ? "" : element.enclosingClass.name;
+ String enclosing =
+ element.enclosingClass == null ? "" : element.enclosingClass.name;
String library = _proposeNameForGlobal(element.library);
return _disambiguateInternalGlobal(
"${library}_${enclosing}_${element.name}\$closure");
@@ -1440,17 +1439,19 @@ class Namer {
jsAst.Name operatorIsType(DartType type) {
if (type.isFunctionType) {
// TODO(erikcorry): Reduce from $isx to ix when we are minifying.
- return new CompoundName([new StringBackedName(operatorIsPrefix),
- _literalUnderscore,
- getFunctionTypeName(type)]);
+ return new CompoundName([
+ new StringBackedName(operatorIsPrefix),
+ _literalUnderscore,
+ getFunctionTypeName(type)
+ ]);
}
return operatorIs(type.element);
}
jsAst.Name operatorIs(ClassElement element) {
// TODO(erikcorry): Reduce from $isx to ix when we are minifying.
- return new CompoundName([new StringBackedName(operatorIsPrefix),
- runtimeTypeName(element)]);
+ return new CompoundName(
+ [new StringBackedName(operatorIsPrefix), runtimeTypeName(element)]);
}
/// Returns a name that does not clash with reserved JS keywords.
@@ -1463,8 +1464,8 @@ class Namer {
}
jsAst.Name substitutionName(Element element) {
- return new CompoundName([new StringBackedName(operatorAsPrefix),
- runtimeTypeName(element)]);
+ return new CompoundName(
+ [new StringBackedName(operatorAsPrefix), runtimeTypeName(element)]);
}
/// Translates a [String] into the corresponding [Name] data structure as
@@ -1475,13 +1476,11 @@ class Namer {
jsAst.Name asName(String name) {
if (name.startsWith(getterPrefix) && name.length > getterPrefix.length) {
return new GetterName(_literalGetterPrefix,
- new StringBackedName(
- name.substring(getterPrefix.length)));
+ new StringBackedName(name.substring(getterPrefix.length)));
}
if (name.startsWith(setterPrefix) && name.length > setterPrefix.length) {
return new GetterName(_literalSetterPrefix,
- new StringBackedName(
- name.substring(setterPrefix.length)));
+ new StringBackedName(name.substring(setterPrefix.length)));
}
return new StringBackedName(name);
@@ -1589,7 +1588,6 @@ class Namer {
*
*/
class ConstantNamingVisitor implements ConstantValueVisitor {
-
static final RegExp IDENTIFIER = new RegExp(r'^[A-Za-z_$][A-Za-z0-9_$]*$');
static const MAX_FRAGMENTS = 5;
static const MAX_EXTRA_LENGTH = 30;
@@ -1598,8 +1596,8 @@ class ConstantNamingVisitor implements ConstantValueVisitor {
final Compiler compiler;
final ConstantCanonicalHasher hasher;
- String root = null; // First word, usually a type name.
- bool failed = false; // Failed to generate something pretty.
+ String root = null; // First word, usually a type name.
+ bool failed = false; // Failed to generate something pretty.
List<String> fragments = <String>[];
int length = 0;
@@ -1623,8 +1621,8 @@ class ConstantNamingVisitor implements ConstantValueVisitor {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
int digit = hash % 62;
- sb.write('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
- [digit]);
+ sb.write('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'[
+ digit]);
hash ~/= 62;
if (hash == 0) break;
}
@@ -1742,7 +1740,8 @@ class ConstantNamingVisitor implements ConstantValueVisitor {
addRoot('Type');
DartType type = constant.representedType;
String name = type.element?.name;
- if (name == null) { // e.g. DartType 'dynamic' has no element.
+ if (name == null) {
+ // e.g. DartType 'dynamic' has no element.
JavaScriptBackend backend = compiler.backend;
name = backend.rtiEncoder.getTypeRepresentationForTypeConstant(type);
}
@@ -1769,8 +1768,8 @@ class ConstantNamingVisitor implements ConstantValueVisitor {
add('name');
break;
default:
- reporter.internalError(CURRENT_ELEMENT_SPANNABLE,
- "Unexpected SyntheticConstantValue");
+ reporter.internalError(
+ CURRENT_ELEMENT_SPANNABLE, "Unexpected SyntheticConstantValue");
}
}
@@ -1789,11 +1788,9 @@ class ConstantNamingVisitor implements ConstantValueVisitor {
* their hashCodes.
*/
class ConstantCanonicalHasher implements ConstantValueVisitor<int, Null> {
-
static const _MASK = 0x1fffffff;
static const _UINT32_LIMIT = 4 * 1024 * 1024 * 1024;
-
final Compiler compiler;
final Map<ConstantValue, int> hashes = new Map<ConstantValue, int>();
@@ -1926,7 +1923,8 @@ class ConstantCanonicalHasher implements ConstantValueVisitor<int, Null> {
static int _hashDouble(double value) {
double magnitude = value.abs();
int sign = value < 0 ? 1 : 0;
- if (magnitude < _UINT32_LIMIT) { // 2^32
+ if (magnitude < _UINT32_LIMIT) {
+ // 2^32
int intValue = value.toInt();
// Integer valued doubles in 32-bit range hash to the same values as ints.
int hash = _hashInt(intValue);
@@ -1964,7 +1962,7 @@ class ConstantCanonicalHasher implements ConstantValueVisitor<int, Null> {
}
static int _finish(int hash) {
- hash = _MASK & (hash + (((_MASK >> 3) & hash) << 3));
+ hash = _MASK & (hash + (((_MASK >> 3) & hash) << 3));
hash = hash & (hash >> 11);
return _MASK & (hash + (((_MASK >> 15) & hash) << 15));
}
@@ -2004,7 +2002,7 @@ class FunctionTypeNamer extends BaseDartTypeVisitor {
visit(parameter);
}
bool first = false;
- for (DartType parameter in type.optionalParameterTypes) {
+ for (DartType parameter in type.optionalParameterTypes) {
if (!first) {
sb.write('_');
}
@@ -2026,7 +2024,6 @@ class FunctionTypeNamer extends BaseDartTypeVisitor {
}
}
-
class NamingScope {
/// Maps proposed names to *suggested* disambiguated names.
///
@@ -2047,6 +2044,7 @@ class NamingScope {
assert(!_suggestedNames.containsKey(original));
_suggestedNames[original] = suggestion;
}
+
bool hasSuggestion(String original) => _suggestedNames.containsKey(original);
bool isSuggestion(String candidate) {
return _suggestedNames.containsValue(candidate);
« no previous file with comments | « pkg/compiler/lib/src/js_backend/minify_namer.dart ('k') | pkg/compiler/lib/src/js_backend/namer_names.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698