[dart2js] dart format --fix in common/ and native

Purely mechanical except for moving a comment in one typedef.

Change-Id: I460d14aabb6081c92dd37bdfe835f7c3ad59c0f3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212025
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
This commit is contained in:
Stephen Adams 2021-09-02 20:09:45 +00:00 committed by commit-bot@chromium.org
parent ef2784b4a8
commit 6e372971d6
7 changed files with 184 additions and 191 deletions

View file

@ -43,7 +43,7 @@ class CodegenImpact extends WorldImpact {
_CodegenImpact.readFromDataSource;
void writeToDataSink(DataSink sink) {
throw new UnsupportedError('CodegenImpact.writeToDataSink');
throw UnsupportedError('CodegenImpact.writeToDataSink');
}
Iterable<Pair<DartType, DartType>> get typeVariableBoundsSubtypeChecks {
@ -123,7 +123,7 @@ class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact {
?.toSet();
Set<Pair<DartType, DartType>> typeVariableBoundsSubtypeChecks =
source.readList(() {
return new Pair(source.readDartType(), source.readDartType());
return Pair(source.readDartType(), source.readDartType());
}, emptyAsNull: true)?.toSet();
Set<String> constSymbols = source.readStrings(emptyAsNull: true)?.toSet();
List<Set<ClassEntity>> specializedGetInterceptors = source.readList(() {
@ -131,9 +131,8 @@ class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact {
}, emptyAsNull: true);
bool usesInterceptor = source.readBool();
int asyncMarkersValue = source.readIntOrNull();
EnumSet<AsyncMarker> asyncMarkers = asyncMarkersValue != null
? new EnumSet.fromValue(asyncMarkersValue)
: null;
EnumSet<AsyncMarker> asyncMarkers =
asyncMarkersValue != null ? EnumSet.fromValue(asyncMarkersValue) : null;
Set<GenericInstantiation> genericInstantiations = source
.readList(() => GenericInstantiation.readFromDataSource(source),
emptyAsNull: true)
@ -147,7 +146,7 @@ class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact {
.readList(() => Selector.readFromDataSource(source), emptyAsNull: true)
?.toSet();
source.end(tag);
return new _CodegenImpact.internal(
return _CodegenImpact.internal(
member,
dynamicUses,
staticUses,
@ -214,7 +213,7 @@ class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact {
DartType subtype, DartType supertype) {
_typeVariableBoundsSubtypeChecks ??= {};
_typeVariableBoundsSubtypeChecks
.add(new Pair<DartType, DartType>(subtype, supertype));
.add(Pair<DartType, DartType>(subtype, supertype));
}
@override
@ -254,7 +253,7 @@ class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact {
bool get usesInterceptor => _usesInterceptor;
void registerAsyncMarker(AsyncMarker asyncMarker) {
_asyncMarkers ??= new EnumSet<AsyncMarker>();
_asyncMarkers ??= EnumSet<AsyncMarker>();
_asyncMarkers.add(asyncMarker);
}
@ -307,7 +306,7 @@ class _CodegenImpact extends WorldImpactBuilderImpl implements CodegenImpact {
@override
String toString() {
StringBuffer sb = new StringBuffer();
StringBuffer sb = StringBuffer();
sb.write('CodegenImpact:');
WorldImpact.printOn(sb, this);
@ -344,7 +343,7 @@ class CodegenRegistry {
List<ModularExpression> _expressions;
CodegenRegistry(this._elementEnvironment, this._currentElement)
: this._worldImpact = new _CodegenImpact(_currentElement);
: this._worldImpact = _CodegenImpact(_currentElement);
@override
String toString() => 'CodegenRegistry for $_currentElement';
@ -376,7 +375,7 @@ class CodegenRegistry {
}
void registerInstantiatedClosure(FunctionEntity element) {
_worldImpact.registerStaticUse(new StaticUse.callMethod(element));
_worldImpact.registerStaticUse(StaticUse.callMethod(element));
}
void registerConstSymbol(String name) {
@ -396,7 +395,7 @@ class CodegenRegistry {
}
void registerInstantiation(InterfaceType type) {
registerTypeUse(new TypeUse.instantiation(type));
registerTypeUse(TypeUse.instantiation(type));
}
void registerAsyncMarker(AsyncMarker asyncMarker) {
@ -426,7 +425,7 @@ class CodegenRegistry {
}
CodegenResult close(js.Fun code) {
return new CodegenResult(
return CodegenResult(
code, _worldImpact, _names ?? const [], _expressions ?? const []);
}
}
@ -598,7 +597,7 @@ class CodegenResult {
@override
String toString() {
StringBuffer sb = new StringBuffer();
StringBuffer sb = StringBuffer();
sb.write('CodegenResult(code=');
sb.write(code != null ? js.DebugPrint(code) : '<null>,');
sb.write('impact=$impact,');
@ -678,7 +677,7 @@ class ModularName extends js.Name implements js.AstContainer {
break;
}
source.end(tag);
return new ModularName(kind, data: data, set: set);
return ModularName(kind, data: data, set: set);
}
void writeToDataSink(DataSink sink) {
@ -805,7 +804,7 @@ class ModularExpression extends js.DeferredExpression
break;
}
source.end(tag);
return new ModularExpression(kind, data);
return ModularExpression(kind, data);
}
void writeToDataSink(DataSink sink) {
@ -857,7 +856,7 @@ class ModularExpression extends js.DeferredExpression
@override
String toString() {
StringBuffer sb = new StringBuffer();
StringBuffer sb = StringBuffer();
sb.write('ModularExpression(kind=$kind,data=');
if (data is ConstantValue) {
sb.write((data as ConstantValue).toStructuredText(null));
@ -1009,12 +1008,12 @@ class JsNodeSerializer implements js.NodeVisitor<void> {
static void writeToDataSink(DataSink sink, js.Node node) {
sink.begin(JsNodeTags.tag);
JsNodeSerializer serializer = new JsNodeSerializer._(sink);
JsNodeSerializer serializer = JsNodeSerializer._(sink);
serializer.visit(node);
sink.end(JsNodeTags.tag);
}
void visit(js.Node node, {bool allowNull: false}) {
void visit(js.Node node, {bool allowNull = false}) {
if (allowNull) {
sink.writeBool(node != null);
if (node != null) {
@ -1038,32 +1037,32 @@ class JsNodeSerializer implements js.NodeVisitor<void> {
@override
void visitInterpolatedDeclaration(js.InterpolatedDeclaration node) {
throw new UnsupportedError('JsNodeSerializer.visitInterpolatedDeclaration');
throw UnsupportedError('JsNodeSerializer.visitInterpolatedDeclaration');
}
@override
void visitInterpolatedStatement(js.InterpolatedStatement node) {
throw new UnsupportedError('JsNodeSerializer.visitInterpolatedStatement');
throw UnsupportedError('JsNodeSerializer.visitInterpolatedStatement');
}
@override
void visitInterpolatedSelector(js.InterpolatedSelector node) {
throw new UnsupportedError('JsNodeSerializer.visitInterpolatedDeclaration');
throw UnsupportedError('JsNodeSerializer.visitInterpolatedDeclaration');
}
@override
void visitInterpolatedParameter(js.InterpolatedParameter node) {
throw new UnsupportedError('JsNodeSerializer.visitInterpolatedParameter');
throw UnsupportedError('JsNodeSerializer.visitInterpolatedParameter');
}
@override
void visitInterpolatedLiteral(js.InterpolatedLiteral node) {
throw new UnsupportedError('JsNodeSerializer.visitInterpolatedLiteral');
throw UnsupportedError('JsNodeSerializer.visitInterpolatedLiteral');
}
@override
void visitInterpolatedExpression(js.InterpolatedExpression node) {
throw new UnsupportedError('JsNodeSerializer.visitInterpolatedExpression');
throw UnsupportedError('JsNodeSerializer.visitInterpolatedExpression');
}
@override
@ -1171,7 +1170,7 @@ class JsNodeSerializer implements js.NodeVisitor<void> {
sink.end(JsNodeTags.stringBackedName);
_writeInfo(node);
} else {
throw new UnsupportedError(
throw UnsupportedError(
'Unexpected deferred expression: ${node.runtimeType}.');
}
}
@ -1229,17 +1228,17 @@ class JsNodeSerializer implements js.NodeVisitor<void> {
@override
void visitDeferredString(js.DeferredString node) {
throw new UnsupportedError('JsNodeSerializer.visitDeferredString');
throw UnsupportedError('JsNodeSerializer.visitDeferredString');
}
@override
void visitDeferredStatement(js.DeferredStatement node) {
throw new UnsupportedError('JsNodeSerializer.visitDeferredStatement');
throw UnsupportedError('JsNodeSerializer.visitDeferredStatement');
}
@override
void visitDeferredNumber(js.DeferredNumber node) {
throw new UnsupportedError('JsNodeSerializer.visitDeferredNumber');
throw UnsupportedError('JsNodeSerializer.visitDeferredNumber');
}
@override
@ -1269,7 +1268,7 @@ class JsNodeSerializer implements js.NodeVisitor<void> {
sink.end(JsNodeTags.deferredHolderExpression);
_writeInfo(node);
} else {
throw new UnsupportedError(
throw UnsupportedError(
'Unexpected deferred expression: ${node.runtimeType}.');
}
}
@ -1686,13 +1685,13 @@ class JsNodeDeserializer {
List<ModularExpression> modularExpressions) {
source.begin(JsNodeTags.tag);
JsNodeDeserializer deserializer =
new JsNodeDeserializer._(source, modularNames, modularExpressions);
JsNodeDeserializer._(source, modularNames, modularExpressions);
js.Node node = deserializer.read();
source.end(JsNodeTags.tag);
return node;
}
T read<T extends js.Node>({bool allowNull: false}) {
T read<T extends js.Node>({bool allowNull = false}) {
if (allowNull) {
bool hasValue = source.readBool();
if (!hasValue) return null;
@ -1702,54 +1701,54 @@ class JsNodeDeserializer {
switch (kind) {
case JsNodeKind.comment:
source.begin(JsNodeTags.comment);
node = new js.Comment(source.readString());
node = js.Comment(source.readString());
source.end(JsNodeTags.comment);
break;
case JsNodeKind.await:
source.begin(JsNodeTags.await);
node = new js.Await(read());
node = js.Await(read());
source.end(JsNodeTags.await);
break;
case JsNodeKind.regExpLiteral:
source.begin(JsNodeTags.regExpLiteral);
node = new js.RegExpLiteral(source.readString());
node = js.RegExpLiteral(source.readString());
source.end(JsNodeTags.regExpLiteral);
break;
case JsNodeKind.property:
source.begin(JsNodeTags.property);
js.Expression name = read();
js.Expression value = read();
node = new js.Property(name, value);
node = js.Property(name, value);
source.end(JsNodeTags.property);
break;
case JsNodeKind.methodDefinition:
source.begin(JsNodeTags.methodDefinition);
js.Expression name = read();
js.Expression function = read();
node = new js.MethodDefinition(name, function);
node = js.MethodDefinition(name, function);
source.end(JsNodeTags.methodDefinition);
break;
case JsNodeKind.objectInitializer:
source.begin(JsNodeTags.objectInitializer);
List<js.Property> properties = readList();
bool isOneLiner = source.readBool();
node = new js.ObjectInitializer(properties, isOneLiner: isOneLiner);
node = js.ObjectInitializer(properties, isOneLiner: isOneLiner);
source.end(JsNodeTags.objectInitializer);
break;
case JsNodeKind.arrayHole:
source.begin(JsNodeTags.arrayHole);
node = new js.ArrayHole();
node = js.ArrayHole();
source.end(JsNodeTags.arrayHole);
break;
case JsNodeKind.arrayInitializer:
source.begin(JsNodeTags.arrayInitializer);
List<js.Expression> elements = readList();
node = new js.ArrayInitializer(elements);
node = js.ArrayInitializer(elements);
source.end(JsNodeTags.arrayInitializer);
break;
case JsNodeKind.parentheses:
source.begin(JsNodeTags.parentheses);
node = new js.Parentheses(read());
node = js.Parentheses(read());
source.end(JsNodeTags.parentheses);
break;
case JsNodeKind.modularName:
@ -1763,44 +1762,44 @@ class JsNodeDeserializer {
source.begin(JsNodeTags.asyncName);
js.Name prefix = read();
js.Name base = read();
node = new AsyncName(prefix, base);
node = AsyncName(prefix, base);
source.end(JsNodeTags.asyncName);
break;
case JsNodeKind.stringBackedName:
source.begin(JsNodeTags.stringBackedName);
node = new StringBackedName(source.readString());
node = StringBackedName(source.readString());
source.end(JsNodeTags.stringBackedName);
break;
case JsNodeKind.stringConcatenation:
source.begin(JsNodeTags.stringConcatenation);
List<js.Literal> parts = readList();
node = new js.StringConcatenation(parts);
node = js.StringConcatenation(parts);
source.end(JsNodeTags.stringConcatenation);
break;
case JsNodeKind.literalNull:
source.begin(JsNodeTags.literalNull);
node = new js.LiteralNull();
node = js.LiteralNull();
source.end(JsNodeTags.literalNull);
break;
case JsNodeKind.literalNumber:
source.begin(JsNodeTags.literalNumber);
node = new js.LiteralNumber(source.readString());
node = js.LiteralNumber(source.readString());
source.end(JsNodeTags.literalNumber);
break;
case JsNodeKind.literalString:
source.begin(JsNodeTags.literalString);
node = new js.LiteralString(source.readString());
node = js.LiteralString(source.readString());
source.end(JsNodeTags.literalString);
break;
case JsNodeKind.literalStringFromName:
source.begin(JsNodeTags.literalStringFromName);
js.Name name = read();
node = new js.LiteralStringFromName(name);
node = js.LiteralStringFromName(name);
source.end(JsNodeTags.literalStringFromName);
break;
case JsNodeKind.literalBool:
source.begin(JsNodeTags.literalBool);
node = new js.LiteralBool(source.readBool());
node = js.LiteralBool(source.readBool());
source.end(JsNodeTags.literalBool);
break;
case JsNodeKind.modularExpression:
@ -1817,7 +1816,7 @@ class JsNodeDeserializer {
js.Block body = read();
js.AsyncModifier asyncModifier =
source.readEnum(js.AsyncModifier.values);
node = new js.Fun(params, body, asyncModifier: asyncModifier);
node = js.Fun(params, body, asyncModifier: asyncModifier);
source.end(JsNodeTags.function);
break;
case JsNodeKind.arrowFunction:
@ -1826,57 +1825,57 @@ class JsNodeDeserializer {
js.Block body = read();
js.AsyncModifier asyncModifier =
source.readEnum(js.AsyncModifier.values);
node = new js.ArrowFunction(params, body, asyncModifier: asyncModifier);
node = js.ArrowFunction(params, body, asyncModifier: asyncModifier);
source.end(JsNodeTags.arrowFunction);
break;
case JsNodeKind.namedFunction:
source.begin(JsNodeTags.namedFunction);
js.Declaration name = read();
js.Fun function = read();
node = new js.NamedFunction(name, function);
node = js.NamedFunction(name, function);
source.end(JsNodeTags.namedFunction);
break;
case JsNodeKind.access:
source.begin(JsNodeTags.access);
js.Expression receiver = read();
js.Expression selector = read();
node = new js.PropertyAccess(receiver, selector);
node = js.PropertyAccess(receiver, selector);
source.end(JsNodeTags.access);
break;
case JsNodeKind.parameter:
source.begin(JsNodeTags.parameter);
node = new js.Parameter(source.readString());
node = js.Parameter(source.readString());
source.end(JsNodeTags.parameter);
break;
case JsNodeKind.variableDeclaration:
source.begin(JsNodeTags.variableDeclaration);
String name = source.readString();
bool allowRename = source.readBool();
node = new js.VariableDeclaration(name, allowRename: allowRename);
node = js.VariableDeclaration(name, allowRename: allowRename);
source.end(JsNodeTags.variableDeclaration);
break;
case JsNodeKind.thisExpression:
source.begin(JsNodeTags.thisExpression);
node = new js.This();
node = js.This();
source.end(JsNodeTags.thisExpression);
break;
case JsNodeKind.variableUse:
source.begin(JsNodeTags.variableUse);
node = new js.VariableUse(source.readString());
node = js.VariableUse(source.readString());
source.end(JsNodeTags.variableUse);
break;
case JsNodeKind.postfix:
source.begin(JsNodeTags.postfix);
String op = source.readString();
js.Expression argument = read();
node = new js.Postfix(op, argument);
node = js.Postfix(op, argument);
source.end(JsNodeTags.postfix);
break;
case JsNodeKind.prefix:
source.begin(JsNodeTags.prefix);
String op = source.readString();
js.Expression argument = read();
node = new js.Prefix(op, argument);
node = js.Prefix(op, argument);
source.end(JsNodeTags.prefix);
break;
case JsNodeKind.binary:
@ -1884,21 +1883,21 @@ class JsNodeDeserializer {
String op = source.readString();
js.Expression left = read();
js.Expression right = read();
node = new js.Binary(op, left, right);
node = js.Binary(op, left, right);
source.end(JsNodeTags.binary);
break;
case JsNodeKind.callExpression:
source.begin(JsNodeTags.callExpression);
js.Expression target = read();
List<js.Expression> arguments = readList();
node = new js.Call(target, arguments);
node = js.Call(target, arguments);
source.end(JsNodeTags.callExpression);
break;
case JsNodeKind.newExpression:
source.begin(JsNodeTags.newExpression);
js.Expression cls = read();
List<js.Expression> arguments = readList();
node = new js.New(cls, arguments);
node = js.New(cls, arguments);
source.end(JsNodeTags.newExpression);
break;
case JsNodeKind.conditional:
@ -1906,14 +1905,14 @@ class JsNodeDeserializer {
js.Expression condition = read();
js.Expression then = read();
js.Expression otherwise = read();
node = new js.Conditional(condition, then, otherwise);
node = js.Conditional(condition, then, otherwise);
source.end(JsNodeTags.conditional);
break;
case JsNodeKind.variableInitialization:
source.begin(JsNodeTags.variableInitialization);
js.Declaration declaration = read();
js.Expression value = source.readValueOrNull(read);
node = new js.VariableInitialization(declaration, value);
node = js.VariableInitialization(declaration, value);
source.end(JsNodeTags.variableInitialization);
break;
case JsNodeKind.assignment:
@ -1921,73 +1920,73 @@ class JsNodeDeserializer {
js.Expression leftHandSide = read();
String op = source.readStringOrNull();
js.Expression value = read();
node = new js.Assignment.compound(leftHandSide, op, value);
node = js.Assignment.compound(leftHandSide, op, value);
source.end(JsNodeTags.assignment);
break;
case JsNodeKind.variableDeclarationList:
source.begin(JsNodeTags.variableDeclarationList);
List<js.VariableInitialization> declarations = readList();
bool indentSplits = source.readBool();
node = new js.VariableDeclarationList(declarations,
node = js.VariableDeclarationList(declarations,
indentSplits: indentSplits);
source.end(JsNodeTags.variableDeclarationList);
break;
case JsNodeKind.literalExpression:
source.begin(JsNodeTags.literalExpression);
node = new js.LiteralExpression(source.readString());
node = js.LiteralExpression(source.readString());
source.end(JsNodeTags.literalExpression);
break;
case JsNodeKind.dartYield:
source.begin(JsNodeTags.dartYield);
js.Expression expression = read();
bool hasStar = source.readBool();
node = new js.DartYield(expression, hasStar);
node = js.DartYield(expression, hasStar);
source.end(JsNodeTags.dartYield);
break;
case JsNodeKind.literalStatement:
source.begin(JsNodeTags.literalStatement);
node = new js.LiteralStatement(source.readString());
node = js.LiteralStatement(source.readString());
source.end(JsNodeTags.literalStatement);
break;
case JsNodeKind.labeledStatement:
source.begin(JsNodeTags.labeledStatement);
String label = source.readString();
js.Statement body = read();
node = new js.LabeledStatement(label, body);
node = js.LabeledStatement(label, body);
source.end(JsNodeTags.labeledStatement);
break;
case JsNodeKind.functionDeclaration:
source.begin(JsNodeTags.functionDeclaration);
js.Declaration name = read();
js.Fun function = read();
node = new js.FunctionDeclaration(name, function);
node = js.FunctionDeclaration(name, function);
source.end(JsNodeTags.functionDeclaration);
break;
case JsNodeKind.switchDefault:
source.begin(JsNodeTags.switchDefault);
js.Block body = read();
node = new js.Default(body);
node = js.Default(body);
source.end(JsNodeTags.switchDefault);
break;
case JsNodeKind.switchCase:
source.begin(JsNodeTags.switchCase);
js.Expression expression = read();
js.Block body = read();
node = new js.Case(expression, body);
node = js.Case(expression, body);
source.end(JsNodeTags.switchCase);
break;
case JsNodeKind.switchStatement:
source.begin(JsNodeTags.switchStatement);
js.Expression key = read();
List<js.SwitchClause> cases = readList();
node = new js.Switch(key, cases);
node = js.Switch(key, cases);
source.end(JsNodeTags.switchStatement);
break;
case JsNodeKind.catchClause:
source.begin(JsNodeTags.catchClause);
js.Declaration declaration = read();
js.Block body = read();
node = new js.Catch(declaration, body);
node = js.Catch(declaration, body);
source.end(JsNodeTags.catchClause);
break;
case JsNodeKind.tryStatement:
@ -1995,45 +1994,45 @@ class JsNodeDeserializer {
js.Block body = read();
js.Catch catchPart = source.readValueOrNull(read);
js.Block finallyPart = source.readValueOrNull(read);
node = new js.Try(body, catchPart, finallyPart);
node = js.Try(body, catchPart, finallyPart);
source.end(JsNodeTags.tryStatement);
break;
case JsNodeKind.throwStatement:
source.begin(JsNodeTags.throwStatement);
js.Expression expression = read();
node = new js.Throw(expression);
node = js.Throw(expression);
source.end(JsNodeTags.throwStatement);
break;
case JsNodeKind.returnStatement:
source.begin(JsNodeTags.returnStatement);
js.Expression value = source.readValueOrNull(read);
node = new js.Return(value);
node = js.Return(value);
source.end(JsNodeTags.returnStatement);
break;
case JsNodeKind.breakStatement:
source.begin(JsNodeTags.breakStatement);
String targetLabel = source.readStringOrNull();
node = new js.Break(targetLabel);
node = js.Break(targetLabel);
source.end(JsNodeTags.breakStatement);
break;
case JsNodeKind.continueStatement:
source.begin(JsNodeTags.continueStatement);
String targetLabel = source.readStringOrNull();
node = new js.Continue(targetLabel);
node = js.Continue(targetLabel);
source.end(JsNodeTags.continueStatement);
break;
case JsNodeKind.doStatement:
source.begin(JsNodeTags.doStatement);
js.Statement body = read();
js.Expression condition = read();
node = new js.Do(body, condition);
node = js.Do(body, condition);
source.end(JsNodeTags.doStatement);
break;
case JsNodeKind.whileStatement:
source.begin(JsNodeTags.whileStatement);
js.Expression condition = read();
js.Statement body = read();
node = new js.While(condition, body);
node = js.While(condition, body);
source.end(JsNodeTags.whileStatement);
break;
case JsNodeKind.forInStatement:
@ -2041,7 +2040,7 @@ class JsNodeDeserializer {
js.Expression leftHandSide = read();
js.Expression object = read();
js.Statement body = read();
node = new js.ForIn(leftHandSide, object, body);
node = js.ForIn(leftHandSide, object, body);
source.end(JsNodeTags.forInStatement);
break;
case JsNodeKind.forStatement:
@ -2050,7 +2049,7 @@ class JsNodeDeserializer {
js.Expression condition = read(allowNull: true);
js.Expression update = read(allowNull: true);
js.Statement body = read();
node = new js.For(init, condition, update, body);
node = js.For(init, condition, update, body);
source.end(JsNodeTags.forStatement);
break;
case JsNodeKind.ifStatement:
@ -2058,29 +2057,29 @@ class JsNodeDeserializer {
js.Expression condition = read();
js.Statement then = read();
js.Statement otherwise = read();
node = new js.If(condition, then, otherwise);
node = js.If(condition, then, otherwise);
source.end(JsNodeTags.ifStatement);
break;
case JsNodeKind.emptyStatement:
source.begin(JsNodeTags.emptyStatement);
node = new js.EmptyStatement();
node = js.EmptyStatement();
source.end(JsNodeTags.emptyStatement);
break;
case JsNodeKind.expressionStatement:
source.begin(JsNodeTags.expressionStatement);
node = new js.ExpressionStatement(read());
node = js.ExpressionStatement(read());
source.end(JsNodeTags.expressionStatement);
break;
case JsNodeKind.block:
source.begin(JsNodeTags.block);
List<js.Statement> statements = readList();
node = new js.Block(statements);
node = js.Block(statements);
source.end(JsNodeTags.block);
break;
case JsNodeKind.program:
source.begin(JsNodeTags.program);
List<js.Statement> body = readList();
node = new js.Program(body);
node = js.Program(body);
source.end(JsNodeTags.program);
break;
case JsNodeKind.stringReference:
@ -2109,7 +2108,7 @@ class JsNodeDeserializer {
return node;
}
List<T> readList<T extends js.Node>({bool emptyAsNull: false}) {
List<T> readList<T extends js.Node>({bool emptyAsNull = false}) {
return source.readList(read, emptyAsNull: emptyAsNull);
}
}

View file

@ -69,89 +69,89 @@ class Identifiers {
/// [Name]s commonly used.
class Names {
/// The name of the call operator.
static const Name call = const PublicName(Identifiers.call);
static const Name call = PublicName(Identifiers.call);
/// The name of the current element property used on iterators in for-each
/// loops.
static const Name current = const PublicName(Identifiers.current);
static const Name current = PublicName(Identifiers.current);
/// The name of the dynamic type.
static const Name dynamic_ = const PublicName('dynamic');
static const Name dynamic_ = PublicName('dynamic');
/// The name of the iterator property used in for-each loops.
static const Name iterator = const PublicName(Identifiers.iterator);
static const Name iterator = PublicName(Identifiers.iterator);
/// The name of the move next method used on iterators in for-each loops.
static const Name moveNext = const PublicName('moveNext');
static const Name moveNext = PublicName('moveNext');
/// The name of the no such method handler on 'Object'.
static const Name noSuchMethod_ = const PublicName(Identifiers.noSuchMethod_);
static const Name noSuchMethod_ = PublicName(Identifiers.noSuchMethod_);
/// The name of the to-string method on 'Object'.
static const Name toString_ = const PublicName('toString');
static const Name toString_ = PublicName('toString');
static const Name INDEX_NAME = const PublicName("[]");
static const Name INDEX_SET_NAME = const PublicName("[]=");
static const Name INDEX_NAME = PublicName("[]");
static const Name INDEX_SET_NAME = PublicName("[]=");
static const Name CALL_NAME = Names.call;
static const Name length = const PublicName(Identifiers.length);
static const Name length = PublicName(Identifiers.length);
static const Name runtimeType_ = const PublicName(Identifiers.runtimeType_);
static const Name runtimeType_ = PublicName(Identifiers.runtimeType_);
static const Name genericInstantiation = const PublicName('instantiate');
static const Name genericInstantiation = PublicName('instantiate');
/// The name of the signature function in closure classes.
static const Name signature = const PublicName(Identifiers.signature);
static const Name signature = PublicName(Identifiers.signature);
}
/// [Selector]s commonly used.
class Selectors {
/// The selector for calling the cancel method on 'StreamIterator'.
static final Selector cancel =
new Selector.call(const PublicName('cancel'), CallStructure.NO_ARGS);
Selector.call(const PublicName('cancel'), CallStructure.NO_ARGS);
/// The selector for getting the current element property used in for-each
/// loops.
static final Selector current = new Selector.getter(Names.current);
static final Selector current = Selector.getter(Names.current);
/// The selector for getting the iterator property used in for-each loops.
static final Selector iterator = new Selector.getter(Names.iterator);
static final Selector iterator = Selector.getter(Names.iterator);
/// The selector for calling the move next method used in for-each loops.
static final Selector moveNext =
new Selector.call(Names.moveNext, CallStructure.NO_ARGS);
Selector.call(Names.moveNext, CallStructure.NO_ARGS);
/// The selector for calling the no such method handler on 'Object'.
static final Selector noSuchMethod_ =
new Selector.call(Names.noSuchMethod_, CallStructure.ONE_ARG);
Selector.call(Names.noSuchMethod_, CallStructure.ONE_ARG);
/// The selector for tearing off noSuchMethod.
static final Selector noSuchMethodGetter =
new Selector.getter(Names.noSuchMethod_);
Selector.getter(Names.noSuchMethod_);
/// The selector for calling the to-string method on 'Object'.
static final Selector toString_ =
new Selector.call(Names.toString_, CallStructure.NO_ARGS);
Selector.call(Names.toString_, CallStructure.NO_ARGS);
/// The selector for tearing off toString.
static final Selector toStringGetter = new Selector.getter(Names.toString_);
static final Selector toStringGetter = Selector.getter(Names.toString_);
static final Selector hashCode_ =
new Selector.getter(const PublicName('hashCode'));
Selector.getter(const PublicName('hashCode'));
static final Selector compareTo =
new Selector.call(const PublicName("compareTo"), CallStructure.ONE_ARG);
Selector.call(const PublicName("compareTo"), CallStructure.ONE_ARG);
static final Selector equals = new Selector.binaryOperator('==');
static final Selector equals = Selector.binaryOperator('==');
static final Selector length = new Selector.getter(Names.length);
static final Selector length = Selector.getter(Names.length);
static final Selector codeUnitAt =
new Selector.call(const PublicName('codeUnitAt'), CallStructure.ONE_ARG);
Selector.call(const PublicName('codeUnitAt'), CallStructure.ONE_ARG);
static final Selector index = new Selector.index();
static final Selector index = Selector.index();
static final Selector runtimeType_ = new Selector.getter(Names.runtimeType_);
static final Selector runtimeType_ = Selector.getter(Names.runtimeType_);
/// List of all the selectors held in static fields.
///
@ -179,89 +179,84 @@ class Selectors {
/// [Uri]s commonly used.
class Uris {
/// The URI for 'dart:async'.
static final Uri dart_async = new Uri(scheme: 'dart', path: 'async');
static final Uri dart_async = Uri(scheme: 'dart', path: 'async');
/// The URI for 'dart:collection'.
static final Uri dart_collection =
new Uri(scheme: 'dart', path: 'collection');
static final Uri dart_collection = Uri(scheme: 'dart', path: 'collection');
/// The URI for 'dart:core'.
static final Uri dart_core = new Uri(scheme: 'dart', path: 'core');
static final Uri dart_core = Uri(scheme: 'dart', path: 'core');
/// The URI for 'dart:html'.
static final Uri dart_html = new Uri(scheme: 'dart', path: 'html');
static final Uri dart_html = Uri(scheme: 'dart', path: 'html');
/// The URI for 'dart:html_common'.
static final Uri dart_html_common =
new Uri(scheme: 'dart', path: 'html_common');
static final Uri dart_html_common = Uri(scheme: 'dart', path: 'html_common');
/// The URI for 'dart:indexed_db'.
static final Uri dart_indexed_db =
new Uri(scheme: 'dart', path: 'indexed_db');
static final Uri dart_indexed_db = Uri(scheme: 'dart', path: 'indexed_db');
/// The URI for 'dart:isolate'.
static final Uri dart_isolate = new Uri(scheme: 'dart', path: 'isolate');
static final Uri dart_isolate = Uri(scheme: 'dart', path: 'isolate');
/// The URI for 'dart:math'.
static final Uri dart_math = new Uri(scheme: 'dart', path: 'math');
static final Uri dart_math = Uri(scheme: 'dart', path: 'math');
/// The URI for 'dart:mirrors'.
static final Uri dart_mirrors = new Uri(scheme: 'dart', path: 'mirrors');
static final Uri dart_mirrors = Uri(scheme: 'dart', path: 'mirrors');
/// The URI for 'dart:_internal'.
static final Uri dart__internal = new Uri(scheme: 'dart', path: '_internal');
static final Uri dart__internal = Uri(scheme: 'dart', path: '_internal');
/// The URI for 'dart:_native_typed_data'.
static final Uri dart__native_typed_data =
new Uri(scheme: 'dart', path: '_native_typed_data');
Uri(scheme: 'dart', path: '_native_typed_data');
/// The URI for 'dart:typed_data'.
static final Uri dart_typed_data =
new Uri(scheme: 'dart', path: 'typed_data');
static final Uri dart_typed_data = Uri(scheme: 'dart', path: 'typed_data');
/// The URI for 'dart:svg'.
static final Uri dart_svg = new Uri(scheme: 'dart', path: 'svg');
static final Uri dart_svg = Uri(scheme: 'dart', path: 'svg');
/// The URI for 'dart:web_audio'.
static final Uri dart_web_audio = new Uri(scheme: 'dart', path: 'web_audio');
static final Uri dart_web_audio = Uri(scheme: 'dart', path: 'web_audio');
/// The URI for 'dart:web_gl'.
static final Uri dart_web_gl = new Uri(scheme: 'dart', path: 'web_gl');
static final Uri dart_web_gl = Uri(scheme: 'dart', path: 'web_gl');
/// The URI for 'dart:web_sql'.
static final Uri dart_web_sql = new Uri(scheme: 'dart', path: 'web_sql');
static final Uri dart_web_sql = Uri(scheme: 'dart', path: 'web_sql');
/// The URI for 'dart:_js_helper'.
static final Uri dart__js_helper =
new Uri(scheme: 'dart', path: '_js_helper');
static final Uri dart__js_helper = Uri(scheme: 'dart', path: '_js_helper');
/// The URI for 'dart:_late_helper'.
static final Uri dart__late_helper =
Uri(scheme: 'dart', path: '_late_helper');
/// The URI for 'dart:_rti'.
static final Uri dart__rti = new Uri(scheme: 'dart', path: '_rti');
static final Uri dart__rti = Uri(scheme: 'dart', path: '_rti');
/// The URI for 'dart:_interceptors'.
static final Uri dart__interceptors =
new Uri(scheme: 'dart', path: '_interceptors');
Uri(scheme: 'dart', path: '_interceptors');
/// The URI for 'dart:_foreign_helper'.
static final Uri dart__foreign_helper =
new Uri(scheme: 'dart', path: '_foreign_helper');
Uri(scheme: 'dart', path: '_foreign_helper');
/// The URI for 'dart:_js_names'.
static final Uri dart__js_names = new Uri(scheme: 'dart', path: '_js_names');
static final Uri dart__js_names = Uri(scheme: 'dart', path: '_js_names');
/// The URI for 'dart:_js_embedded_names'.
static final Uri dart__js_embedded_names =
new Uri(scheme: 'dart', path: '_js_embedded_names');
Uri(scheme: 'dart', path: '_js_embedded_names');
/// The URI for 'dart:js'.
static final Uri dart_js = Uri(scheme: 'dart', path: 'js');
/// The URI for 'package:js'.
static final Uri package_js = new Uri(scheme: 'package', path: 'js/js.dart');
static final Uri package_js = Uri(scheme: 'package', path: 'js/js.dart');
/// The URI for 'dart:_js_annotations'.
static final Uri dart__js_annotations =
@ -269,5 +264,5 @@ class Uris {
/// The URI for 'package:meta/dart2js.dart'.
static final Uri package_meta_dart2js =
new Uri(scheme: 'package', path: 'meta/dart2js.dart');
Uri(scheme: 'package', path: 'meta/dart2js.dart');
}

View file

@ -28,7 +28,7 @@ abstract class CompilerTask {
Map _zoneValues;
CompilerTask(this._measurer)
: _watch = _measurer.enableTaskMeasurements ? new Stopwatch() : null;
: _watch = _measurer.enableTaskMeasurements ? Stopwatch() : null;
/// Whether measurement is disabled. The functions [measure] and [measureIo]
/// only measure time if measurements are enabled.
@ -107,7 +107,7 @@ abstract class CompilerTask {
return runZoned(action,
zoneValues: _zoneValues ??= {_measurer: this},
zoneSpecification: _zoneSpecification ??= new ZoneSpecification(
zoneSpecification: _zoneSpecification ??= ZoneSpecification(
run: _run, runUnary: _runUnary, runBinary: _runBinary));
}
@ -183,7 +183,7 @@ abstract class CompilerTask {
// Use a nested CompilerTask for the measurement to ensure nested [measure]
// calls work correctly. The subtasks will never themselves have nested
// subtasks because they are not accessible outside.
GenericTask subtask = _subtasks[name] ??= new GenericTask(name, _measurer);
GenericTask subtask = _subtasks[name] ??= GenericTask(name, _measurer);
return subtask.measure(action);
}
@ -200,7 +200,7 @@ abstract class CompilerTask {
// Use a nested CompilerTask for the measurement to ensure nested [measure]
// calls work correctly. The subtasks will never themselves have nested
// subtasks because they are not accessible outside.
GenericTask subtask = _subtasks[name] ??= new GenericTask(name, _measurer);
GenericTask subtask = _subtasks[name] ??= GenericTask(name, _measurer);
return subtask.measureIo(action);
}
@ -225,12 +225,12 @@ class Measurer {
///
/// Note: MUST be the first field of this class to ensure [wallclock] is
/// started before other computations.
final Stopwatch _wallClock = new Stopwatch()..start();
final Stopwatch _wallClock = Stopwatch()..start();
Duration get elapsedWallClock => _wallClock.elapsed;
/// Measures gaps between zoned closures due to asynchronicity.
final Stopwatch _asyncWallClock = new Stopwatch();
final Stopwatch _asyncWallClock = Stopwatch();
Duration get elapsedAsyncWallClock => _asyncWallClock.elapsed;
@ -241,7 +241,7 @@ class Measurer {
@override
final int hashCode = _hashCodeGenerator++;
Measurer({this.enableTaskMeasurements: false});
Measurer({this.enableTaskMeasurements = false});
/// The currently running task, that is, the task whose [Stopwatch] is
/// currently running.

View file

@ -14,8 +14,8 @@ import '../serialization/serialization.dart';
import '../universe/side_effects.dart' show SideEffects;
import 'js.dart';
typedef dynamic /*DartType|SpecialType*/ TypeLookup(String typeString,
{bool required});
typedef TypeLookup = dynamic /*DartType|SpecialType*/
Function(String typeString, {bool required});
/// This class is a temporary work-around until we get a more powerful DartType.
class SpecialType {
@ -23,7 +23,7 @@ class SpecialType {
const SpecialType._(this.name);
/// The type Object, but no subtypes:
static const JsObject = const SpecialType._('=Object');
static const JsObject = SpecialType._('=Object');
@override
int get hashCode => name.hashCode;
@ -35,7 +35,7 @@ class SpecialType {
if (name == '=Object') {
return JsObject;
} else {
throw new UnsupportedError("Unknown SpecialType '$name'.");
throw UnsupportedError("Unknown SpecialType '$name'.");
}
}
}
@ -189,7 +189,7 @@ class NativeBehavior {
static NativeBehavior get CHANGES_OTHER => NativeBehavior._makeChangesOther();
static NativeBehavior get DEPENDS_OTHER => NativeBehavior._makeDependsOther();
NativeBehavior() : sideEffects = new SideEffects.empty();
NativeBehavior() : sideEffects = SideEffects.empty();
NativeBehavior.internal(this.sideEffects);
@ -211,13 +211,13 @@ class NativeBehavior {
List typesReturned = readTypes();
List typesInstantiated = readTypes();
String codeTemplateText = source.readStringOrNull();
SideEffects sideEffects = new SideEffects.readFromDataSource(source);
SideEffects sideEffects = SideEffects.readFromDataSource(source);
int throwBehavior = source.readInt();
bool isAllocation = source.readBool();
bool useGvn = source.readBool();
source.end(tag);
NativeBehavior behavior = new NativeBehavior.internal(sideEffects);
NativeBehavior behavior = NativeBehavior.internal(sideEffects);
behavior.typesReturned.addAll(typesReturned);
behavior.typesInstantiated.addAll(typesInstantiated);
if (codeTemplateText != null) {
@ -274,8 +274,8 @@ class NativeBehavior {
')';
}
static NativeBehavior _makePure({bool isAllocation: false}) {
NativeBehavior behavior = new NativeBehavior();
static NativeBehavior _makePure({bool isAllocation = false}) {
NativeBehavior behavior = NativeBehavior();
behavior.sideEffects.clearAllDependencies();
behavior.sideEffects.clearAllSideEffects();
behavior.throwBehavior = NativeThrowBehavior.NEVER;
@ -384,7 +384,7 @@ class NativeBehavior {
spannable, MessageKind.GENERIC, {'text': message});
}
const List<String> knownTags = const [
const List<String> knownTags = [
'creates',
'returns',
'depends',
@ -538,7 +538,7 @@ class NativeBehavior {
return null;
}
SideEffects sideEffects = new SideEffects();
SideEffects sideEffects = SideEffects();
if (effects == "none") {
sideEffects.clearAllSideEffects();
} else if (effects == "all") {
@ -609,7 +609,7 @@ class NativeBehavior {
// 'Type1|Type2'. A union type.
// '=Object'. A JavaScript Object, no subtype.
NativeBehavior behavior = new NativeBehavior();
NativeBehavior behavior = NativeBehavior();
behavior.codeTemplateText = codeString;
behavior.codeTemplate = js.js.parseForeignJS(behavior.codeTemplateText);
@ -647,12 +647,11 @@ class NativeBehavior {
nullType: commonElements.nullType);
if (!sideEffectsAreEncodedInSpecString) {
new SideEffectsVisitor(behavior.sideEffects)
.visit(behavior.codeTemplate.ast);
SideEffectsVisitor(behavior.sideEffects).visit(behavior.codeTemplate.ast);
}
if (!throwBehaviorFromSpecString) {
behavior.throwBehavior =
new ThrowBehaviorVisitor().analyze(behavior.codeTemplate.ast);
ThrowBehaviorVisitor().analyze(behavior.codeTemplate.ast);
}
return behavior;
@ -686,8 +685,8 @@ class NativeBehavior {
Spannable spannable,
DiagnosticReporter reporter,
CommonElements commonElements) {
NativeBehavior behavior = new NativeBehavior();
behavior.sideEffects.setTo(new SideEffects());
NativeBehavior behavior = NativeBehavior();
behavior.sideEffects.setTo(SideEffects());
_fillNativeBehaviorOfBuiltinOrEmbeddedGlobal(
behavior, spannable, specString, lookupType, reporter, commonElements);
return behavior;
@ -699,11 +698,11 @@ class NativeBehavior {
Spannable spannable,
DiagnosticReporter reporter,
CommonElements commonElements) {
NativeBehavior behavior = new NativeBehavior();
NativeBehavior behavior = NativeBehavior();
// TODO(sra): Allow the use site to override these defaults.
// Embedded globals are usually pre-computed data structures or JavaScript
// functions that never change.
behavior.sideEffects.setTo(new SideEffects.empty());
behavior.sideEffects.setTo(SideEffects.empty());
behavior.throwBehavior = NativeThrowBehavior.NEVER;
_fillNativeBehaviorOfBuiltinOrEmbeddedGlobal(
behavior, spannable, specString, lookupType, reporter, commonElements,
@ -857,7 +856,7 @@ abstract class BehaviorBuilder {
Iterable<String> returnsAnnotations,
TypeLookup lookupType,
{bool isJsInterop}) {
_behavior = new NativeBehavior();
_behavior = NativeBehavior();
// TODO(sigmund,sra): consider doing something better for numeric types.
_addReturnType(!isJsInterop ? type : commonElements.dynamicType);
_capture(type, isJsInterop);
@ -868,7 +867,7 @@ abstract class BehaviorBuilder {
}
NativeBehavior buildFieldStoreBehavior(DartType type) {
_behavior = new NativeBehavior();
_behavior = NativeBehavior();
_escape(type, false);
// We don't override the default behaviour - the annotations apply to
// loading the field.
@ -882,7 +881,7 @@ abstract class BehaviorBuilder {
Iterable<String> returnsAnnotations,
TypeLookup lookupType,
{bool isJsInterop}) {
_behavior = new NativeBehavior();
_behavior = NativeBehavior();
DartType returnType = type.returnType;
// Note: For dart:html and other internal libraries we maintain, we can
// trust the return type and use it to limit what we enqueue. We have to

View file

@ -37,8 +37,8 @@ class NativeEnqueuer {
}
abstract class NativeEnqueuerBase implements NativeEnqueuer {
final Set<ClassEntity> _registeredClasses = new Set<ClassEntity>();
final Set<ClassEntity> _unusedClasses = new Set<ClassEntity>();
final Set<ClassEntity> _registeredClasses = Set<ClassEntity>();
final Set<ClassEntity> _unusedClasses = Set<ClassEntity>();
@override
bool get hasInstantiatedNativeClasses => !_registeredClasses.isEmpty;
@ -75,7 +75,7 @@ abstract class NativeEnqueuerBase implements NativeEnqueuer {
continue;
}
impactBuilder.registerTypeUse(
new TypeUse.nativeInstantiation(_elementEnvironment.getRawType(cls)));
TypeUse.nativeInstantiation(_elementEnvironment.getRawType(cls)));
}
}
@ -88,11 +88,11 @@ abstract class NativeEnqueuerBase implements NativeEnqueuer {
void _processNativeBehavior(
WorldImpactBuilder impactBuilder, NativeBehavior behavior, cause) {
void registerInstantiation(InterfaceType type) {
impactBuilder.registerTypeUse(new TypeUse.nativeInstantiation(type));
impactBuilder.registerTypeUse(TypeUse.nativeInstantiation(type));
}
int unusedBefore = _unusedClasses.length;
Set<ClassEntity> matchingClasses = new Set<ClassEntity>();
Set<ClassEntity> matchingClasses = Set<ClassEntity>();
for (var type in behavior.typesInstantiated) {
if (type is SpecialType) {
if (type == SpecialType.JsObject) {
@ -182,7 +182,7 @@ class NativeResolutionEnqueuer extends NativeEnqueuerBase {
/// The set of all native classes. Each native class is in [nativeClasses]
/// and exactly one of [unusedClasses] and [registeredClasses].
final Set<ClassEntity> _nativeClasses = new Set<ClassEntity>();
final Set<ClassEntity> _nativeClasses = Set<ClassEntity>();
NativeResolutionEnqueuer(
CompilerOptions options,
@ -200,7 +200,7 @@ class NativeResolutionEnqueuer extends NativeEnqueuerBase {
@override
WorldImpact processNativeClasses(Iterable<Uri> libraries) {
WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl();
WorldImpactBuilderImpl impactBuilder = WorldImpactBuilderImpl();
Iterable<ClassEntity> nativeClasses =
_nativeClassFinder.computeNativeClasses(libraries);
_nativeClasses.addAll(nativeClasses);
@ -224,7 +224,7 @@ class NativeCodegenEnqueuer extends NativeEnqueuerBase {
final Iterable<ClassEntity> _nativeClasses;
final NativeData _nativeData;
final Set<ClassEntity> _doneAddSubtypes = new Set<ClassEntity>();
final Set<ClassEntity> _doneAddSubtypes = Set<ClassEntity>();
NativeCodegenEnqueuer(
CompilerOptions options,
@ -238,7 +238,7 @@ class NativeCodegenEnqueuer extends NativeEnqueuerBase {
@override
WorldImpact processNativeClasses(Iterable<Uri> libraries) {
WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl();
WorldImpactBuilderImpl impactBuilder = WorldImpactBuilderImpl();
_unusedClasses.addAll(_nativeClasses);
if (!enableLiveTypeAnalysis) {
@ -246,7 +246,7 @@ class NativeCodegenEnqueuer extends NativeEnqueuerBase {
}
// HACK HACK - add all the resolved classes.
Set<ClassEntity> matchingClasses = new Set<ClassEntity>();
Set<ClassEntity> matchingClasses = Set<ClassEntity>();
for (ClassEntity classElement in _nativeClasses) {
if (_unusedClasses.contains(classElement)) {
matchingClasses.add(classElement);

View file

@ -10,7 +10,7 @@ class HasCapturedPlaceholders extends js.BaseVisitor {
HasCapturedPlaceholders._();
static bool check(js.Node node) {
HasCapturedPlaceholders visitor = new HasCapturedPlaceholders._();
HasCapturedPlaceholders visitor = HasCapturedPlaceholders._();
node.accept(visitor);
return visitor.found;
}

View file

@ -28,13 +28,13 @@ class BaseNativeClassFinder implements NativeClassFinder {
final KElementEnvironment _elementEnvironment;
final NativeBasicData _nativeBasicData;
Map<String, ClassEntity> _tagOwner = new Map<String, ClassEntity>();
Map<String, ClassEntity> _tagOwner = Map<String, ClassEntity>();
BaseNativeClassFinder(this._elementEnvironment, this._nativeBasicData);
@override
Iterable<ClassEntity> computeNativeClasses(Iterable<Uri> libraries) {
Set<ClassEntity> nativeClasses = new Set<ClassEntity>();
Set<ClassEntity> nativeClasses = Set<ClassEntity>();
libraries.forEach((uri) => _processNativeClassesInLibrary(
_elementEnvironment.lookupLibrary(uri), nativeClasses));
_processSubclassesOfNativeClasses(libraries, nativeClasses);
@ -84,7 +84,7 @@ class BaseNativeClassFinder implements NativeClassFinder {
/// [nativeClasses].
void _processSubclassesOfNativeClasses(
Iterable<Uri> libraries, Set<ClassEntity> nativeClasses) {
Set<ClassEntity> nativeClassesAndSubclasses = new Set<ClassEntity>();
Set<ClassEntity> nativeClassesAndSubclasses = Set<ClassEntity>();
// Collect potential subclasses, e.g.
//
// class B extends foo.A {}
@ -100,7 +100,7 @@ class BaseNativeClassFinder implements NativeClassFinder {
String extendsName = _findExtendsNameOfClass(cls);
if (extendsName != null) {
Set<ClassEntity> potentialSubclasses = potentialExtends.putIfAbsent(
extendsName, () => new Set<ClassEntity>());
extendsName, () => Set<ClassEntity>());
potentialSubclasses.add(cls);
}
});