[dart2js] Enable always_declare_return_types in pkg/compiler

Change-Id: Ia61e5d221ed74474b81e8f7188f4b947d17d9050
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/354421
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
This commit is contained in:
Mayank Patke 2024-02-26 23:37:28 +00:00 committed by Commit Queue
parent 8887700df7
commit b0556ba6cb
32 changed files with 276 additions and 266 deletions

View file

@ -14,6 +14,7 @@ analyzer:
linter:
rules:
- always_declare_return_types
- annotate_overrides
- avoid_dynamic_calls
- prefer_final_fields

View file

@ -236,7 +236,7 @@ Future<api.CompilationResult> compile(List<String> argv,
}
}
setStrip(String argument) {
Never setStrip(String argument) {
_helpAndFail("Option '--force-strip' is not in use now that"
"--output-type=dart is no longer supported.");
}

View file

@ -446,7 +446,7 @@ class DeferredLoadTask extends CompilerTask {
return _buildResult();
}
work() {
void work() {
algorithmState = AlgorithmState.create(
main, compiler, _elementMap, closedWorld, importSets!);
}

View file

@ -1886,7 +1886,7 @@ class TreeShakingInfoVisitor extends InfoVisitor<void> {
}
@override
visitAll(AllInfo info) {
void visitAll(AllInfo info) {
info.libraries = filterDeadInfo<LibraryInfo>(info.libraries);
info.constants = filterDeadInfo<ConstantInfo>(info.constants);
@ -1895,10 +1895,10 @@ class TreeShakingInfoVisitor extends InfoVisitor<void> {
}
@override
visitProgram(ProgramInfo info) {}
void visitProgram(ProgramInfo info) {}
@override
visitLibrary(LibraryInfo info) {
void visitLibrary(LibraryInfo info) {
info.topLevelFunctions =
filterDeadInfo<FunctionInfo>(info.topLevelFunctions);
info.topLevelVariables = filterDeadInfo<FieldInfo>(info.topLevelVariables);
@ -1914,7 +1914,7 @@ class TreeShakingInfoVisitor extends InfoVisitor<void> {
}
@override
visitClass(ClassInfo info) {
void visitClass(ClassInfo info) {
info.functions = filterDeadInfo<FunctionInfo>(info.functions);
info.fields = filterDeadInfo<FieldInfo>(info.fields);
info.supers = filterDeadInfo<ClassInfo>(info.supers);
@ -1925,31 +1925,31 @@ class TreeShakingInfoVisitor extends InfoVisitor<void> {
}
@override
visitClassType(ClassTypeInfo info) {}
void visitClassType(ClassTypeInfo info) {}
@override
visitField(FieldInfo info) {
void visitField(FieldInfo info) {
info.closures = filterDeadInfo<ClosureInfo>(info.closures);
info.closures.forEach(visitClosure);
}
@override
visitConstant(ConstantInfo info) {}
void visitConstant(ConstantInfo info) {}
@override
visitFunction(FunctionInfo info) {
void visitFunction(FunctionInfo info) {
info.closures = filterDeadInfo<ClosureInfo>(info.closures);
info.closures.forEach(visitClosure);
}
@override
visitTypedef(TypedefInfo info) {}
void visitTypedef(TypedefInfo info) {}
@override
visitOutput(OutputUnitInfo info) {}
void visitOutput(OutputUnitInfo info) {}
@override
visitClosure(ClosureInfo info) {
void visitClosure(ClosureInfo info) {
visitFunction(info.function);
}
}

View file

@ -335,7 +335,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitFieldInitializer(ir.FieldInitializer node) {
Null visitFieldInitializer(ir.FieldInitializer node) {
final rhsType = visit(node.value)!;
FieldEntity field = _elementMap.getField(node.field);
_state.updateField(field, rhsType);
@ -344,7 +344,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitSuperInitializer(ir.SuperInitializer node) {
Null visitSuperInitializer(ir.SuperInitializer node) {
ConstructorEntity constructor = _elementMap.getConstructor(node.target);
ArgumentsTypes arguments = analyzeArguments(node.arguments);
Selector selector = Selector(SelectorKind.CALL, constructor.memberName,
@ -360,7 +360,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitRedirectingInitializer(ir.RedirectingInitializer node) {
Null visitRedirectingInitializer(ir.RedirectingInitializer node) {
ConstructorEntity constructor = _elementMap.getConstructor(node.target);
ArgumentsTypes arguments = analyzeArguments(node.arguments);
Selector selector = Selector(SelectorKind.CALL, constructor.memberName,
@ -376,7 +376,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitLocalInitializer(ir.LocalInitializer node) {
Null visitLocalInitializer(ir.LocalInitializer node) {
visit(node.variable);
return null;
}
@ -461,7 +461,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
defaultStatement(ir.Statement node) {
Never defaultStatement(ir.Statement node) {
throw UnimplementedError(
'Unhandled statement: ${node} (${node.runtimeType})');
}
@ -476,7 +476,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitBlock(ir.Block block) {
Null visitBlock(ir.Block block) {
for (ir.Statement statement in block.statements) {
visit(statement);
if (_state.aborts) break;
@ -485,13 +485,13 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitExpressionStatement(ir.ExpressionStatement node) {
Null visitExpressionStatement(ir.ExpressionStatement node) {
visit(node.expression);
return null;
}
@override
visitEmptyStatement(ir.EmptyStatement node) {
Null visitEmptyStatement(ir.EmptyStatement node) {
// Nothing to do.
return null;
}
@ -516,19 +516,19 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitAssertInitializer(ir.AssertInitializer node) {
Null visitAssertInitializer(ir.AssertInitializer node) {
_handleAssertStatement(node.statement);
return null;
}
@override
visitAssertStatement(ir.AssertStatement node) {
Null visitAssertStatement(ir.AssertStatement node) {
_handleAssertStatement(node);
return null;
}
@override
visitBreakStatement(ir.BreakStatement node) {
Null visitBreakStatement(ir.BreakStatement node) {
JumpTarget target = _localsMap.getJumpTargetForBreak(node);
_state.seenBreakOrContinue = true;
// Do a deep-copy of the locals, because the code following the
@ -542,7 +542,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitLabeledStatement(ir.LabeledStatement node) {
Null visitLabeledStatement(ir.LabeledStatement node) {
ir.Statement body = node.body;
if (JumpVisitor.canBeBreakTarget(body)) {
// Loops and switches handle their own labels.
@ -561,7 +561,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitSwitchStatement(ir.SwitchStatement node) {
Null visitSwitchStatement(ir.SwitchStatement node) {
visit(node.expression);
final jumpTarget = _localsMap.getJumpTargetForSwitch(node);
@ -628,13 +628,13 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitSwitchCase(ir.SwitchCase node) {
Null visitSwitchCase(ir.SwitchCase node) {
visit(node.body);
return null;
}
@override
visitContinueSwitchStatement(ir.ContinueSwitchStatement node) {
Null visitContinueSwitchStatement(ir.ContinueSwitchStatement node) {
JumpTarget target = _localsMap.getJumpTargetForContinueSwitch(node);
_state.seenBreakOrContinue = true;
// Do a deep-copy of the locals, because the code following the
@ -1251,7 +1251,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
return list..addAll(_continuesFor[target]!);
}
TypeInformation? handleLoop(ir.Node node, JumpTarget? target, void logic()) {
Null handleLoop(ir.Node node, JumpTarget? target, void logic()) {
_loopLevel++;
bool changed = false;
final stateBefore = _state;
@ -1980,7 +1980,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitWhileStatement(ir.WhileStatement node) {
Null visitWhileStatement(ir.WhileStatement node) {
return handleLoop(node, _localsMap.getJumpTargetForWhile(node), () {
handleCondition(node.condition);
_state = LocalState.childPath(_stateAfterWhenTrue);
@ -1989,7 +1989,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitDoStatement(ir.DoStatement node) {
Null visitDoStatement(ir.DoStatement node) {
return handleLoop(node, _localsMap.getJumpTargetForDo(node), () {
visit(node.body);
handleCondition(node.condition);
@ -2002,7 +2002,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitForStatement(ir.ForStatement node) {
Null visitForStatement(ir.ForStatement node) {
for (ir.VariableDeclaration variable in node.variables) {
visit(variable);
}
@ -2017,7 +2017,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitTryCatch(ir.TryCatch node) {
Null visitTryCatch(ir.TryCatch node) {
final stateBefore = _state;
_state = LocalState.tryBlock(stateBefore, node);
_state.markInitializationAsIndefinite();
@ -2061,7 +2061,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitTryFinally(ir.TryFinally node) {
Null visitTryFinally(ir.TryFinally node) {
final stateBefore = _state;
_state = LocalState.tryBlock(stateBefore, node);
_state.markInitializationAsIndefinite();
@ -2096,7 +2096,7 @@ class KernelTypeGraphBuilder extends ir.VisitorDefault<TypeInformation?>
}
@override
visitCatch(ir.Catch node) {
Null visitCatch(ir.Catch node) {
final exception = node.exception;
if (exception != null) {
TypeInformation mask;

View file

@ -67,7 +67,8 @@ class ClosureTracerVisitor extends TracerVisitor {
}
@override
visitClosureCallSiteTypeInformation(ClosureCallSiteTypeInformation info) {
void visitClosureCallSiteTypeInformation(
ClosureCallSiteTypeInformation info) {
super.visitClosureCallSiteTypeInformation(info);
if (info.closure == currentUser) {
_registerCallForLaterAnalysis(info);
@ -77,7 +78,7 @@ class ClosureTracerVisitor extends TracerVisitor {
}
@override
visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
void visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
super.visitStaticCallSiteTypeInformation(info);
MemberEntity called = info.calledElement;
if (inferrer.closedWorld.commonElements.isForeign(called)) {
@ -112,7 +113,8 @@ class ClosureTracerVisitor extends TracerVisitor {
}
@override
visitDynamicCallSiteTypeInformation(DynamicCallSiteTypeInformation info) {
void visitDynamicCallSiteTypeInformation(
DynamicCallSiteTypeInformation info) {
super.visitDynamicCallSiteTypeInformation(info);
final selector = info.selector!;
final user = currentUser;
@ -148,7 +150,7 @@ class StaticTearOffClosureTracerVisitor extends ClosureTracerVisitor {
: super([tracedElement], tracedType, inferrer);
@override
visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
void visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
super.visitStaticCallSiteTypeInformation(info);
final selector = info.selector;

View file

@ -152,12 +152,13 @@ class ListTracerVisitor extends TracerVisitor {
}
@override
visitClosureCallSiteTypeInformation(ClosureCallSiteTypeInformation info) {
void visitClosureCallSiteTypeInformation(
ClosureCallSiteTypeInformation info) {
bailout('Passed to a closure');
}
@override
visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
void visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
super.visitStaticCallSiteTypeInformation(info);
final commonElements = inferrer.closedWorld.commonElements;
MemberEntity called = info.calledElement;
@ -173,7 +174,8 @@ class ListTracerVisitor extends TracerVisitor {
}
@override
visitDynamicCallSiteTypeInformation(DynamicCallSiteTypeInformation info) {
void visitDynamicCallSiteTypeInformation(
DynamicCallSiteTypeInformation info) {
super.visitDynamicCallSiteTypeInformation(info);
final selector = info.selector!;
String selectorName = selector.name;

View file

@ -60,12 +60,13 @@ class MapTracerVisitor extends TracerVisitor {
}
@override
visitClosureCallSiteTypeInformation(ClosureCallSiteTypeInformation info) {
void visitClosureCallSiteTypeInformation(
ClosureCallSiteTypeInformation info) {
bailout('Passed to a closure');
}
@override
visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
void visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
super.visitStaticCallSiteTypeInformation(info);
MemberEntity called = info.calledElement;
if (inferrer.closedWorld.commonElements.isForeign(called) &&
@ -75,7 +76,8 @@ class MapTracerVisitor extends TracerVisitor {
}
@override
visitDynamicCallSiteTypeInformation(DynamicCallSiteTypeInformation info) {
void visitDynamicCallSiteTypeInformation(
DynamicCallSiteTypeInformation info) {
super.visitDynamicCallSiteTypeInformation(info);
final selector = info.selector!;
final selectorName = selector.name;

View file

@ -281,7 +281,7 @@ abstract class TracerVisitor implements TypeInformationVisitor<void> {
ClosureCallSiteTypeInformation info) {}
@override
visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
void visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
MemberEntity called = info.calledElement;
TypeInformation inferred = inferrer.types.getInferredTypeOfMember(called);
if (inferred == currentUser) {

View file

@ -83,12 +83,13 @@ class SetTracerVisitor extends TracerVisitor {
}
@override
visitClosureCallSiteTypeInformation(ClosureCallSiteTypeInformation info) {
void visitClosureCallSiteTypeInformation(
ClosureCallSiteTypeInformation info) {
bailout('Passed to a closure');
}
@override
visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
void visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
super.visitStaticCallSiteTypeInformation(info);
MemberEntity called = info.calledElement;
if (inferrer.closedWorld.commonElements.isForeign(called) &&
@ -98,7 +99,8 @@ class SetTracerVisitor extends TracerVisitor {
}
@override
visitDynamicCallSiteTypeInformation(DynamicCallSiteTypeInformation info) {
void visitDynamicCallSiteTypeInformation(
DynamicCallSiteTypeInformation info) {
super.visitDynamicCallSiteTypeInformation(info);
final selector = info.selector!;
final selectorName = selector.name;

View file

@ -329,7 +329,7 @@ class PlaceholderTypeInformation extends TypeInformation {
}
@override
toString() => "Placeholder [$hashCode]";
String toString() => "Placeholder [$hashCode]";
}
abstract class ParameterInputs implements Iterable<TypeInformation> {
@ -1682,7 +1682,7 @@ class NarrowTypeInformation extends TypeInformation {
}
@override
addInput(TypeInformation info) {
void addInput(TypeInformation info) {
super.addInput(info);
assert(inputs.length == 1);
}
@ -1956,7 +1956,7 @@ class MapTypeInformation extends TypeInformation with TracedTypeInformation {
}
@override
addInput(TypeInformation other) {
Never addInput(TypeInformation other) {
throw "not supported";
}

View file

@ -1077,7 +1077,7 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitNode(js.Node node, _) {}
void visitNode(js.Node node, _) {}
void _handleFunction(_PositionInfoNode node, js.Node body, int start) {
_currentNode.active = _currentNode.active ||
@ -1111,22 +1111,22 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitFunctionDeclaration(js.FunctionDeclaration node, int start) {
void visitFunctionDeclaration(js.FunctionDeclaration node, int start) {
visit(node.function);
}
@override
visitNamedFunction(js.NamedFunction node, int start) {
void visitNamedFunction(js.NamedFunction node, int start) {
visit(node.function);
}
@override
visitFun(js.Fun node, int start) {
void visitFun(js.Fun node, int start) {
_handleFunctionExpression(node, start);
}
@override
visitArrowFunction(js.ArrowFunction node, int start) {
void visitArrowFunction(js.ArrowFunction node, int start) {
_handleFunctionExpression(node, start);
}
@ -1147,14 +1147,14 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitExpressionStatement(js.ExpressionStatement node, int start) {
void visitExpressionStatement(js.ExpressionStatement node, int start) {
visitSubexpression(node, node.expression, StepKind.EXPRESSION_STATEMENT,
statementOffset: start,
offsetPositionMode: OffsetPositionMode.subexpressionParentOffset);
}
@override
visitCall(js.Call node, _) {
void visitCall(js.Call node, _) {
visit(node.target, offsetPositionMode: OffsetPositionMode.invocationTarget);
for (js.Node argument in node.arguments) {
visit(argument, offsetPositionMode: OffsetPositionMode.resetBefore);
@ -1179,7 +1179,7 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitNew(js.New node, _) {
void visitNew(js.New node, _) {
visit(node.target, offsetPositionMode: OffsetPositionMode.invocationTarget);
for (js.Node node in node.arguments) {
visit(node, offsetPositionMode: OffsetPositionMode.resetBefore);
@ -1189,7 +1189,7 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitAccess(js.PropertyAccess node, _) {
void visitAccess(js.PropertyAccess node, _) {
final receiverNode = visit(node.receiver);
// Technically we'd like to use the offset of the `.` in the property
// access, but the js_ast doesn't expose it. Since this is only used to
@ -1202,7 +1202,7 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitIf(js.If node, int start) {
void visitIf(js.If node, int start) {
visitSubexpression(node, node.condition, StepKind.IF_CONDITION,
statementOffset: start,
offsetPositionMode: OffsetPositionMode.subexpressionParentOffset);
@ -1219,7 +1219,7 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitFor(js.For node, int start) {
void visitFor(js.For node, int start) {
final init = node.init;
if (init != null) {
visitSubexpression(node, init, StepKind.FOR_INITIALIZER,
@ -1251,7 +1251,7 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitWhile(js.While node, int start) {
void visitWhile(js.While node, int start) {
visitSubexpression(node, node.condition, StepKind.WHILE_CONDITION,
statementOffset: start,
offsetPositionMode: OffsetPositionMode.subexpressionParentOffset);
@ -1260,7 +1260,7 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitDo(js.Do node, int start) {
void visitDo(js.Do node, int start) {
visit(node.body, statementOffset: start);
final condition = node.condition;
visitSubexpression(node, condition, StepKind.DO_CONDITION,
@ -1269,13 +1269,13 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitReturn(js.Return node, int start) {
void visitReturn(js.Return node, int start) {
visit(node.value, statementOffset: start);
_currentNode.addNotifyStep(StepKind.RETURN);
}
@override
visitThrow(js.Throw node, int start) {
void visitThrow(js.Throw node, int start) {
// Do not use [offsetPosition] for the subexpression.
visit(node.expression,
statementOffset: start,
@ -1284,31 +1284,31 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitContinue(js.Continue node, _) {
void visitContinue(js.Continue node, _) {
_currentNode.addNotifyStep(StepKind.CONTINUE);
}
@override
visitBreak(js.Break node, _) {
void visitBreak(js.Break node, _) {
_currentNode.addNotifyStep(StepKind.BREAK);
}
@override
visitTry(js.Try node, _) {
void visitTry(js.Try node, _) {
visit(node.body);
visit(node.catchPart, branchKind: BranchKind.CATCH);
visit(node.finallyPart, branchKind: BranchKind.FINALLY);
}
@override
visitConditional(js.Conditional node, _) {
void visitConditional(js.Conditional node, _) {
visit(node.condition);
visit(node.then, branchKind: BranchKind.CONDITION, branchToken: 1);
visit(node.otherwise, branchKind: BranchKind.CONDITION, branchToken: 0);
}
@override
visitSwitch(js.Switch node, int start) {
void visitSwitch(js.Switch node, int start) {
visitSubexpression(node, node.key, StepKind.SWITCH_EXPRESSION,
statementOffset: start,
offsetPositionMode: OffsetPositionMode.subexpressionParentOffset);
@ -1318,12 +1318,12 @@ class OnlineJavaScriptTracer extends js.BaseVisitor1Void<int>
}
@override
visitLabeledStatement(js.LabeledStatement node, int start) {
void visitLabeledStatement(js.LabeledStatement node, int start) {
visit(node.body, statementOffset: start);
}
@override
visitDeferredExpression(js.DeferredExpression node, _) {
void visitDeferredExpression(js.DeferredExpression node, _) {
visit(node.value);
}

View file

@ -389,7 +389,7 @@ class TypeVariableTypeWithContext implements ir.Node {
}
@override
visitChildren(ir.Visitor<Object?> v) {
Never visitChildren(ir.Visitor<Object?> v) {
throw UnsupportedError('TypeVariableTypeWithContext.visitChildren');
}

View file

@ -62,12 +62,12 @@ class ConstantReference extends ir.TreeNode {
}
@override
transformChildren(ir.Transformer v) {
Never transformChildren(ir.Transformer v) {
throw UnsupportedError("ConstantReference.transformChildren");
}
@override
transformOrRemoveChildren(ir.RemovingTransformer v) {
Never transformOrRemoveChildren(ir.RemovingTransformer v) {
throw UnsupportedError("ConstantReference.transformOrRemoveChildren");
}

View file

@ -1202,32 +1202,32 @@ abstract class AsyncRewriterBase extends js.NodeVisitor<Object?> {
}
@override
visitInterpolatedExpression(js.InterpolatedExpression node) {
Never visitInterpolatedExpression(js.InterpolatedExpression node) {
unsupported(node);
}
@override
visitInterpolatedDeclaration(js.InterpolatedDeclaration node) {
Never visitInterpolatedDeclaration(js.InterpolatedDeclaration node) {
unsupported(node);
}
@override
visitInterpolatedLiteral(js.InterpolatedLiteral node) {
Never visitInterpolatedLiteral(js.InterpolatedLiteral node) {
unsupported(node);
}
@override
visitInterpolatedParameter(js.InterpolatedParameter node) {
Never visitInterpolatedParameter(js.InterpolatedParameter node) {
unsupported(node);
}
@override
visitInterpolatedSelector(js.InterpolatedSelector node) {
Never visitInterpolatedSelector(js.InterpolatedSelector node) {
unsupported(node);
}
@override
visitInterpolatedStatement(js.InterpolatedStatement node) {
Never visitInterpolatedStatement(js.InterpolatedStatement node) {
unsupported(node);
}
@ -1254,7 +1254,7 @@ abstract class AsyncRewriterBase extends js.NodeVisitor<Object?> {
js.Expression visitLiteralBool(js.LiteralBool node) => node;
@override
visitLiteralExpression(js.LiteralExpression node) => unsupported(node);
Never visitLiteralExpression(js.LiteralExpression node) => unsupported(node);
@override
js.Expression visitLiteralNull(js.LiteralNull node) => node;
@ -1263,7 +1263,7 @@ abstract class AsyncRewriterBase extends js.NodeVisitor<Object?> {
js.Expression visitLiteralNumber(js.LiteralNumber node) => node;
@override
visitLiteralStatement(js.LiteralStatement node) => unsupported(node);
Never visitLiteralStatement(js.LiteralStatement node) => unsupported(node);
@override
js.Expression visitLiteralString(js.LiteralString node) => node;
@ -1280,7 +1280,7 @@ abstract class AsyncRewriterBase extends js.NodeVisitor<Object?> {
}
@override
visitNamedFunction(js.NamedFunction node) {
Never visitNamedFunction(js.NamedFunction node) {
unsupported(node);
}
@ -1288,7 +1288,7 @@ abstract class AsyncRewriterBase extends js.NodeVisitor<Object?> {
js.Expression visitDeferredExpression(js.DeferredExpression node) => node;
@override
visitDeferredStatement(js.DeferredStatement node) => unsupported(node);
Never visitDeferredStatement(js.DeferredStatement node) => unsupported(node);
@override
js.Expression visitDeferredNumber(js.DeferredNumber node) => node;
@ -1323,7 +1323,7 @@ abstract class AsyncRewriterBase extends js.NodeVisitor<Object?> {
}
@override
visitParameter(js.Parameter node) => unreachable(node);
Never visitParameter(js.Parameter node) => unreachable(node);
@override
js.Expression visitPostfix(js.Postfix node) {
@ -1368,7 +1368,7 @@ abstract class AsyncRewriterBase extends js.NodeVisitor<Object?> {
}
@override
visitProgram(js.Program node) => unsupported(node);
Never visitProgram(js.Program node) => unsupported(node);
@override
js.Property visitProperty(js.Property node) {
@ -1667,7 +1667,7 @@ abstract class AsyncRewriterBase extends js.NodeVisitor<Object?> {
}
@override
visitVariableDeclaration(js.VariableDeclaration node) {
Never visitVariableDeclaration(js.VariableDeclaration node) {
unreachable(node);
}

View file

@ -406,7 +406,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitFunctionDeclaration(FunctionDeclaration declaration) {
void visitFunctionDeclaration(FunctionDeclaration declaration) {
VarCollector vars = VarCollector();
vars.visitFunctionDeclaration(declaration);
functionOut(declaration.function, declaration.name, vars);
@ -440,7 +440,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitVariableDeclarationList(VariableDeclarationList list) {
void visitVariableDeclarationList(VariableDeclarationList list) {
out('var '); // 'var '
final nodes = list.declarations;
if (inForInit) {
@ -472,7 +472,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitAssignment(Assignment assignment) {
void visitAssignment(Assignment assignment) {
/// To print assignments like `a = a + 1` and `a = a + b` compactly as
/// `++a` and `a += b` in the face of [DeferredExpression]s we detect the
/// pattern of the undeferred assignment.
@ -529,7 +529,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitVariableInitialization(VariableInitialization initialization) {
void visitVariableInitialization(VariableInitialization initialization) {
visitNestedExpression(initialization.declaration, Precedence.call,
newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
if (initialization.value != null) {
@ -540,7 +540,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitConditional(Conditional cond) {
void visitConditional(Conditional cond) {
visitNestedExpression(cond.condition, Precedence.logicalOr,
newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
out('?'); // '?'
@ -553,7 +553,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitNew(New node) {
void visitNew(New node) {
out('new'); // 'new'
visitNestedExpression(node.target, Precedence.leftHandSide,
newInForInit: inForInit, newAtStatementBegin: false);
@ -564,7 +564,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitCall(Call call) {
void visitCall(Call call) {
visitNestedExpression(call.target, Precedence.call,
newInForInit: inForInit, newAtStatementBegin: atStatementBegin);
out('('); // '('
@ -844,7 +844,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitDeferredExpression(DeferredExpression node) {
void visitDeferredExpression(DeferredExpression node) {
if (node.isFinalized) {
// Continue printing with the expression value.
assert(node.precedenceLevel == node.value.precedenceLevel);
@ -855,7 +855,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitDeferredStatement(DeferredStatement node) {
void visitDeferredStatement(DeferredStatement node) {
if (node.isFinalized) {
// Continue printing with the statement value.
node.statement.accept(this);
@ -875,7 +875,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitDeferredNumber(DeferredNumber node) {
void visitDeferredNumber(DeferredNumber node) {
if (node.isFinalized) {
outputNumberWithRequiredWhitespace("${node.value}");
} else {
@ -884,7 +884,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitDeferredString(DeferredString node) {
void visitDeferredString(DeferredString node) {
if (node.isFinalized) {
out(node.value);
} else {
@ -893,7 +893,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitLiteralBool(LiteralBool node) {
void visitLiteralBool(LiteralBool node) {
out(node.value ? '!0' : '!1');
}
@ -905,18 +905,18 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitStringConcatenation(StringConcatenation node) {
void visitStringConcatenation(StringConcatenation node) {
node.visitChildren(this);
}
@override
visitName(Name node) {
void visitName(Name node) {
// For simplicity and stability we use a constant name size estimate.
out(sizeEstimate(node));
}
@override
visitParentheses(Parentheses node) {
void visitParentheses(Parentheses node) {
out('('); // '('
visitNestedExpression(node.enclosed, Precedence.expression,
newInForInit: false, newAtStatementBegin: false);
@ -924,7 +924,7 @@ class SizeEstimator implements NodeVisitor<void> {
}
@override
visitLiteralNumber(LiteralNumber node) {
void visitLiteralNumber(LiteralNumber node) {
outputNumberWithRequiredWhitespace(node.value);
}

View file

@ -59,7 +59,7 @@ class StringBackedName extends _NamerName {
String get key => name;
@override
operator ==(Object other) {
bool operator ==(Object other) {
if (other is _NameReference) return this == other._target;
if (identical(this, other)) return true;
return other is StringBackedName && name == other.name;

View file

@ -929,7 +929,8 @@ class _TypeVisitor extends DartTypeVisitor<void, TypeVisitorState> {
}
@override
visitFunctionTypeVariable(FunctionTypeVariable type, TypeVisitorState state) {
void visitFunctionTypeVariable(
FunctionTypeVariable type, TypeVisitorState state) {
if (_visitedFunctionTypeVariables.add(type)) {
visitType(type.bound, state);
}

View file

@ -217,7 +217,7 @@ class Collector {
}
void computeNeededStaticNonFinalFields() {
addToOutputUnit(FieldEntity element) {
void addToOutputUnit(FieldEntity element) {
List<FieldEntity> list = outputStaticNonFinalFieldLists.putIfAbsent(
_outputUnitData.outputUnitForMember(element), () => []);
list.add(element);

View file

@ -311,7 +311,7 @@ class JumpVisitor extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
defaultNode(ir.Node node) => node.visitChildren(this);
void defaultNode(ir.Node node) => node.visitChildren(this);
static bool canBeBreakTarget(ir.TreeNode node) {
return node is ir.ForStatement ||
@ -350,7 +350,7 @@ class JumpVisitor extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitBreakStatement(ir.BreakStatement node) {
void visitBreakStatement(ir.BreakStatement node) {
JJumpTarget target;
ir.TreeNode body = node.target.body;
ir.TreeNode parent = node.target.parent!;
@ -442,7 +442,7 @@ class JumpVisitor extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitContinueSwitchStatement(ir.ContinueSwitchStatement node) {
void visitContinueSwitchStatement(ir.ContinueSwitchStatement node) {
JJumpTarget target = _getJumpTarget(node.target);
target.isContinueTarget = true;
jumpTargetMap[node] = target;
@ -452,7 +452,7 @@ class JumpVisitor extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitSwitchStatement(ir.SwitchStatement node) {
void visitSwitchStatement(ir.SwitchStatement node) {
node.expression.accept(this);
if (node.cases.isNotEmpty) {
// Ensure that [node] has a corresponding target. We generate a break if:

View file

@ -297,7 +297,7 @@ class ListGenerateLoopBodyInliner extends CloneVisitorNotMembers {
}
@override
visitReturnStatement(ReturnStatement node) {
TreeNode visitReturnStatement(ReturnStatement node) {
// Do the default for return statements in nested functions.
if (functionNestingLevel > 0) return super.visitReturnStatement(node);
@ -342,7 +342,7 @@ class ListGenerateLoopBodyInliner extends CloneVisitorNotMembers {
/// Nested functions.
@override
visitFunctionNode(FunctionNode node) {
TreeNode visitFunctionNode(FunctionNode node) {
functionNestingLevel++;
final cloned = super.visitFunctionNode(node);
functionNestingLevel--;

View file

@ -361,7 +361,7 @@ Output _createOutput(
// that is reachable from `main`. Note that all internal libraries that
// the compiler relies on are reachable from `dart:core`.
var seen = Set<Library>();
search(ir.Library current) {
void search(ir.Library current) {
if (!seen.add(current)) return;
for (ir.LibraryDependency dep in current.dependencies) {
search(dep.targetLibrary);

View file

@ -307,7 +307,7 @@ class _CompilationErrorError {
final String message;
_CompilationErrorError(this.message);
@override
toString() => 'Aborted due to --throw-on-error: $message';
String toString() => 'Aborted due to --throw-on-error: $message';
}
typedef OnInfo = void Function(String message);

View file

@ -7558,14 +7558,14 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
defaultNode(ir.Node node) {
void defaultNode(ir.Node node) {
registerRegularNode();
registerReductiveNode();
node.visitChildren(this);
}
@override
visitConstantExpression(ir.ConstantExpression node) {
void visitConstantExpression(ir.ConstantExpression node) {
registerRegularNode();
registerReductiveNode();
ir.Constant constant = node.constant;
@ -7576,14 +7576,14 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitReturnStatement(ir.ReturnStatement node) {
void visitReturnStatement(ir.ReturnStatement node) {
registerRegularNode();
node.visitChildren(this);
seenReturn = true;
}
@override
visitThrow(ir.Throw node) {
void visitThrow(ir.Throw node) {
registerRegularNode();
data.hasThrow = true;
node.visitChildren(this);
@ -7598,49 +7598,49 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitForStatement(ir.ForStatement node) {
void visitForStatement(ir.ForStatement node) {
_handleLoop(node);
}
@override
visitForInStatement(ir.ForInStatement node) {
void visitForInStatement(ir.ForInStatement node) {
_handleLoop(node);
}
@override
visitWhileStatement(ir.WhileStatement node) {
void visitWhileStatement(ir.WhileStatement node) {
_handleLoop(node);
}
@override
visitDoStatement(ir.DoStatement node) {
void visitDoStatement(ir.DoStatement node) {
_handleLoop(node);
}
@override
visitTryCatch(ir.TryCatch node) {
void visitTryCatch(ir.TryCatch node) {
data.hasTry = true;
}
@override
visitTryFinally(ir.TryFinally node) {
void visitTryFinally(ir.TryFinally node) {
data.hasTry = true;
}
@override
visitFunctionExpression(ir.FunctionExpression node) {
void visitFunctionExpression(ir.FunctionExpression node) {
registerRegularNode();
data.hasClosure = true;
}
@override
visitFunctionDeclaration(ir.FunctionDeclaration node) {
void visitFunctionDeclaration(ir.FunctionDeclaration node) {
registerRegularNode();
data.hasClosure = true;
}
@override
visitFunctionNode(ir.FunctionNode node) {
void visitFunctionNode(ir.FunctionNode node) {
if (node.asyncMarker != ir.AsyncMarker.Sync) {
data.hasAsyncAwait = true;
}
@ -7655,7 +7655,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitConditionalExpression(ir.ConditionalExpression node) {
void visitConditionalExpression(ir.ConditionalExpression node) {
// Heuristic: In "parameter ? A : B" there is a high probability that
// parameter is a constant. Assuming the parameter is constant, we can
// compute a count that is bounded by the largest arm rather than the sum of
@ -7684,13 +7684,13 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitAssertInitializer(ir.AssertInitializer node) {
void visitAssertInitializer(ir.AssertInitializer node) {
if (!enableUserAssertions) return;
node.visitChildren(this);
}
@override
visitAssertStatement(ir.AssertStatement node) {
void visitAssertStatement(ir.AssertStatement node) {
if (!enableUserAssertions) return;
defaultNode(node);
}
@ -7700,25 +7700,25 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitEmptyStatement(ir.EmptyStatement node) {
void visitEmptyStatement(ir.EmptyStatement node) {
registerRegularNode();
}
@override
visitExpressionStatement(ir.ExpressionStatement node) {
void visitExpressionStatement(ir.ExpressionStatement node) {
registerRegularNode();
node.visitChildren(this);
}
@override
visitLabeledStatement(ir.LabeledStatement node) {
void visitLabeledStatement(ir.LabeledStatement node) {
registerRegularNode();
data.hasLabel = true;
node.visitChildren(this);
}
@override
visitSwitchStatement(ir.SwitchStatement node) {
void visitSwitchStatement(ir.SwitchStatement node) {
registerRegularNode();
registerReductiveNode();
// Don't visit 'SwitchStatement.expressionType'.
@ -7727,7 +7727,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitBlock(ir.Block node) {
void visitBlock(ir.Block node) {
registerRegularNode();
node.visitChildren(this);
}
@ -7737,7 +7737,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
bool isLongString(String value) => value.length > 14;
@override
visitStringLiteral(ir.StringLiteral node) {
void visitStringLiteral(ir.StringLiteral node) {
registerRegularNode();
registerReductiveNode();
// Avoid copying long strings into call site.
@ -7747,7 +7747,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitInstanceGet(ir.InstanceGet node) {
void visitInstanceGet(ir.InstanceGet node) {
registerCall();
registerRegularNode();
registerReductiveNode();
@ -7756,7 +7756,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitInstanceTearOff(ir.InstanceTearOff node) {
void visitInstanceTearOff(ir.InstanceTearOff node) {
registerCall();
registerRegularNode();
registerReductiveNode();
@ -7765,7 +7765,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitDynamicGet(ir.DynamicGet node) {
void visitDynamicGet(ir.DynamicGet node) {
registerCall();
registerRegularNode();
registerReductiveNode();
@ -7774,7 +7774,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitInstanceSet(ir.InstanceSet node) {
void visitInstanceSet(ir.InstanceSet node) {
registerCall();
registerRegularNode();
registerReductiveNode();
@ -7784,7 +7784,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitDynamicSet(ir.DynamicSet node) {
void visitDynamicSet(ir.DynamicSet node) {
registerCall();
registerRegularNode();
registerReductiveNode();
@ -7794,7 +7794,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitVariableGet(ir.VariableGet node) {
void visitVariableGet(ir.VariableGet node) {
if (discountParameters && node.variable.parent is ir.FunctionNode) return;
registerRegularNode();
registerReductiveNode();
@ -7802,13 +7802,13 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitThisExpression(ir.ThisExpression node) {
void visitThisExpression(ir.ThisExpression node) {
registerRegularNode();
registerReductiveNode();
}
@override
visitStaticGet(ir.StaticGet node) {
void visitStaticGet(ir.StaticGet node) {
// Assume lazy-init static, loaded via a call: `$.$get$foo()`.
registerCall();
registerRegularNode();
@ -7816,7 +7816,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitConstructorInvocation(ir.ConstructorInvocation node) {
void visitConstructorInvocation(ir.ConstructorInvocation node) {
registerRegularNode();
registerReductiveNode();
if (node.isConst) {
@ -7829,7 +7829,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitStaticInvocation(ir.StaticInvocation node) {
void visitStaticInvocation(ir.StaticInvocation node) {
registerRegularNode();
if (node.isConst) {
data.hasExternalConstantConstructorCall = true;
@ -7842,7 +7842,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitInstanceInvocation(ir.InstanceInvocation node) {
void visitInstanceInvocation(ir.InstanceInvocation node) {
registerRegularNode();
registerReductiveNode();
registerCall();
@ -7852,7 +7852,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitInstanceGetterInvocation(ir.InstanceGetterInvocation node) {
void visitInstanceGetterInvocation(ir.InstanceGetterInvocation node) {
registerRegularNode();
registerReductiveNode();
registerCall();
@ -7862,7 +7862,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitDynamicInvocation(ir.DynamicInvocation node) {
void visitDynamicInvocation(ir.DynamicInvocation node) {
registerRegularNode();
registerReductiveNode();
registerCall();
@ -7872,7 +7872,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitFunctionInvocation(ir.FunctionInvocation node) {
void visitFunctionInvocation(ir.FunctionInvocation node) {
registerRegularNode();
registerReductiveNode();
registerCall();
@ -7882,7 +7882,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitLocalFunctionInvocation(ir.LocalFunctionInvocation node) {
void visitLocalFunctionInvocation(ir.LocalFunctionInvocation node) {
registerRegularNode();
registerReductiveNode();
registerCall();
@ -7893,14 +7893,14 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitEqualsNull(ir.EqualsNull node) {
void visitEqualsNull(ir.EqualsNull node) {
registerRegularNode();
registerReductiveNode();
visit(node.expression);
}
@override
visitEqualsCall(ir.EqualsCall node) {
void visitEqualsCall(ir.EqualsCall node) {
registerRegularNode();
registerReductiveNode();
registerCall();
@ -7934,7 +7934,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitAsExpression(ir.AsExpression node) {
void visitAsExpression(ir.AsExpression node) {
registerRegularNode();
visit(node.operand);
skipReductiveNodes(() => visit(node.type));
@ -7944,7 +7944,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitVariableDeclaration(ir.VariableDeclaration node) {
void visitVariableDeclaration(ir.VariableDeclaration node) {
registerRegularNode();
skipReductiveNodes(() {
visitList(node.annotations);
@ -7959,7 +7959,7 @@ class InlineWeeder extends ir.VisitorDefault<void> with ir.VisitorVoidMixin {
}
@override
visitIfStatement(ir.IfStatement node) {
void visitIfStatement(ir.IfStatement node) {
registerRegularNode();
node.visitChildren(this);
data.hasIf = true;
@ -8112,7 +8112,7 @@ class InlineWeederBodyClosure extends ir.VisitorDefault<void>
InlineWeederBodyClosure();
@override
defaultNode(ir.Node node) {
void defaultNode(ir.Node node) {
if (tooDifficult) return;
node.visitChildren(this);
}

View file

@ -1436,7 +1436,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitLateValue(HLateValue node) {
void visitLateValue(HLateValue node) {
use(node.target);
}
@ -1495,38 +1495,38 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitIdentity(HIdentity node) {
void visitIdentity(HIdentity node) {
emitIdentityComparison(node, node.sourceInformation, inverse: false);
}
@override
visitAdd(HAdd node) => visitInvokeBinary(node, '+');
void visitAdd(HAdd node) => visitInvokeBinary(node, '+');
@override
visitDivide(HDivide node) => visitInvokeBinary(node, '/');
void visitDivide(HDivide node) => visitInvokeBinary(node, '/');
@override
visitMultiply(HMultiply node) => visitInvokeBinary(node, '*');
void visitMultiply(HMultiply node) => visitInvokeBinary(node, '*');
@override
visitSubtract(HSubtract node) => visitInvokeBinary(node, '-');
void visitSubtract(HSubtract node) => visitInvokeBinary(node, '-');
@override
visitBitAnd(HBitAnd node) => visitBitInvokeBinary(node, '&');
void visitBitAnd(HBitAnd node) => visitBitInvokeBinary(node, '&');
@override
visitBitOr(HBitOr node) => visitBitInvokeBinary(node, '|');
void visitBitOr(HBitOr node) => visitBitInvokeBinary(node, '|');
@override
visitBitXor(HBitXor node) => visitBitInvokeBinary(node, '^');
void visitBitXor(HBitXor node) => visitBitInvokeBinary(node, '^');
@override
visitShiftLeft(HShiftLeft node) => visitBitInvokeBinary(node, '<<');
void visitShiftLeft(HShiftLeft node) => visitBitInvokeBinary(node, '<<');
@override
visitShiftRight(HShiftRight node) => visitBitInvokeBinary(node, '>>>');
void visitShiftRight(HShiftRight node) => visitBitInvokeBinary(node, '>>>');
@override
visitBitNot(HBitNot node) {
void visitBitNot(HBitNot node) {
visitInvokeUnary(node, '~');
if (node.requiresUintConversion) convertBitOpResultToUnsigned(node);
}
@override
visitTruncatingDivide(HTruncatingDivide node) {
void visitTruncatingDivide(HTruncatingDivide node) {
assert(node.isUInt31(_abstractValueDomain).isDefinitelyTrue);
// TODO(karlklose): Enable this assertion again when type propagation is
// fixed. Issue 23555.
@ -1542,15 +1542,15 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitRemainder(HRemainder node) {
void visitRemainder(HRemainder node) {
return visitInvokeBinary(node, '%');
}
@override
visitNegate(HNegate node) => visitInvokeUnary(node, '-');
void visitNegate(HNegate node) => visitInvokeUnary(node, '-');
@override
visitAbs(HAbs node) {
void visitAbs(HAbs node) {
use(node.operand);
push(js
.js('Math.abs(#)', pop())
@ -1558,21 +1558,21 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitLess(HLess node) => visitRelational(node, '<');
void visitLess(HLess node) => visitRelational(node, '<');
@override
visitLessEqual(HLessEqual node) => visitRelational(node, '<=');
void visitLessEqual(HLessEqual node) => visitRelational(node, '<=');
@override
visitGreater(HGreater node) => visitRelational(node, '>');
void visitGreater(HGreater node) => visitRelational(node, '>');
@override
visitGreaterEqual(HGreaterEqual node) => visitRelational(node, '>=');
void visitGreaterEqual(HGreaterEqual node) => visitRelational(node, '>=');
@override
visitExit(HExit node) {
void visitExit(HExit node) {
// Don't do anything.
}
@override
visitGoto(HGoto node) {
void visitGoto(HGoto node) {
HBasicBlock block = node.block!;
assert(block.successors.length == 1);
List<HBasicBlock> dominated = block.dominatedBlocks;
@ -1593,7 +1593,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitLoopBranch(HLoopBranch node) {
void visitLoopBranch(HLoopBranch node) {
assert(node.block == subGraph!.end);
// We are generating code for a loop condition.
// If we are generating the subgraph as an expression, the
@ -1606,7 +1606,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitBreak(HBreak node) {
void visitBreak(HBreak node) {
assert(node.block!.successors.length == 1);
if (node.label != null) {
LabelDefinition label = node.label!;
@ -1633,7 +1633,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitContinue(HContinue node) {
void visitContinue(HContinue node) {
assert(node.block!.successors.length == 1);
if (node.label != null) {
LabelDefinition label = node.label!;
@ -1661,7 +1661,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitExitTry(HExitTry node) {
void visitExitTry(HExitTry node) {
// An [HExitTry] is used to represent the control flow graph of a
// try/catch block, ie the try body is always a predecessor
// of the catch and finally. Here, we continue visiting the try
@ -1671,7 +1671,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitTry(HTry node) {
void visitTry(HTry node) {
// We should never get here. Try/catch/finally is always handled using block
// information in [visitTryInfo].
failedAt(node, 'visitTry should not be called.');
@ -1770,7 +1770,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitIf(HIf node) {
void visitIf(HIf node) {
_metrics.countHIf++;
HInstruction condition = node.inputs[0];
if (condition is HConstant) _metrics.countHIfConstant++;
@ -1835,7 +1835,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitInvokeDynamicMethod(HInvokeDynamicMethod node) {
void visitInvokeDynamicMethod(HInvokeDynamicMethod node) {
_updateInvokeMetrics(node);
use(node.receiver);
js.Expression object = pop();
@ -2037,7 +2037,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitInvokeDynamicSetter(HInvokeDynamicSetter node) {
void visitInvokeDynamicSetter(HInvokeDynamicSetter node) {
_updateInvokeMetrics(node);
use(node.receiver);
js.Name name = _namer.invocationName(node.selector);
@ -2048,7 +2048,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitInvokeDynamicGetter(HInvokeDynamicGetter node) {
void visitInvokeDynamicGetter(HInvokeDynamicGetter node) {
_updateInvokeMetrics(node);
use(node.receiver);
js.Name name = _namer.invocationName(node.selector);
@ -2059,7 +2059,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitInvokeClosure(HInvokeClosure node) {
void visitInvokeClosure(HInvokeClosure node) {
Selector call = Selector.callClosureFrom(node.selector);
use(node.receiver);
push(js
@ -2073,7 +2073,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitInvokeStatic(HInvokeStatic node) {
void visitInvokeStatic(HInvokeStatic node) {
// TODO(48820): Refactor HInvokeStatic so that the element has static type
// FunctionEntity (`element` can be a FieldEntity in subclass HInvokeSuper,
// so possibly make HInvokeSuper and HInvokeStatic extend a common
@ -2190,7 +2190,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitInvokeSuper(HInvokeSuper node) {
void visitInvokeSuper(HInvokeSuper node) {
MemberEntity superElement = node.element;
Selector selector = node.selector;
bool useAliasedSuper = canUseAliasedSuperMember(superElement, selector);
@ -2280,14 +2280,14 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitFieldGet(HFieldGet node) {
void visitFieldGet(HFieldGet node) {
_metrics.countHFieldGet++;
use(node.receiver);
push(_loadField(pop(), node.element, node.sourceInformation));
}
@override
visitFieldSet(HFieldSet node) {
void visitFieldSet(HFieldSet node) {
FieldEntity element = node.element;
_registry.registerStaticUse(StaticUse.fieldSet(element));
js.Name name = _namer.instanceFieldPropertyName(element);
@ -2302,7 +2302,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitGetLength(HGetLength node) {
void visitGetLength(HGetLength node) {
_metrics.countHGetLength++;
use(node.receiver);
push(js.PropertyAccess.field(pop(), 'length')
@ -2310,7 +2310,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitReadModifyWrite(HReadModifyWrite node) {
void visitReadModifyWrite(HReadModifyWrite node) {
FieldEntity element = node.element;
_registry.registerStaticUse(StaticUse.fieldGet(element));
_registry.registerStaticUse(StaticUse.fieldSet(element));
@ -2332,26 +2332,26 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitFunctionReference(HFunctionReference node) {
void visitFunctionReference(HFunctionReference node) {
FunctionEntity element = node.element;
_registry.registerStaticUse(StaticUse.implicitInvoke(element));
push(_emitter.staticFunctionAccess(element));
}
@override
visitLocalGet(HLocalGet node) {
void visitLocalGet(HLocalGet node) {
use(node.receiver);
}
@override
visitLocalSet(HLocalSet node) {
void visitLocalSet(HLocalSet node) {
use(node.value);
assignVariable(
variableNames.getName(node.receiver)!, pop(), node.sourceInformation);
}
@override
visitInvokeExternal(HInvokeExternal node) {
void visitInvokeExternal(HInvokeExternal node) {
FunctionEntity target = node.element;
List<HInstruction> inputs = node.inputs;
@ -2441,7 +2441,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitForeignCode(HForeignCode node) {
void visitForeignCode(HForeignCode node) {
List<HInstruction> inputs = node.inputs;
if (node.isJsStatement()) {
List<js.Expression> interpolatedExpressions = [];
@ -2468,7 +2468,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitCreate(HCreate node) {
void visitCreate(HCreate node) {
js.Expression jsClassReference = _emitter.constructorAccess(node.element);
List<js.Expression> arguments = visitArguments(node.inputs, start: 0);
push(js.New(jsClassReference, arguments)
@ -2495,7 +2495,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitCreateBox(HCreateBox node) {
void visitCreateBox(HCreateBox node) {
push(js.ObjectInitializer([]));
}
@ -2521,7 +2521,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitConstant(HConstant node) {
void visitConstant(HConstant node) {
assert(isGenerateAtUseSite(node));
generateConstant(node.constant, node.sourceInformation);
@ -2534,7 +2534,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitNot(HNot node) {
void visitNot(HNot node) {
assert(node.inputs.length == 1);
generateNot(node.inputs[0], node.sourceInformation);
}
@ -2595,7 +2595,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitParameterValue(HParameterValue node) {
void visitParameterValue(HParameterValue node) {
assert(!isGenerateAtUseSite(node));
String name = variableNames.getName(node)!;
parameters.add(js.Parameter(name));
@ -2603,14 +2603,14 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitLocalValue(HLocalValue node) {
void visitLocalValue(HLocalValue node) {
assert(!isGenerateAtUseSite(node));
String name = variableNames.getName(node)!;
collectedVariableDeclarations.add(name);
}
@override
visitPhi(HPhi node) {
void visitPhi(HPhi node) {
// This method is only called for phis that are generated at use
// site. A phi can be generated at use site only if it is the
// result of a control flow operation.
@ -2642,7 +2642,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitReturn(HReturn node) {
void visitReturn(HReturn node) {
if (node.inputs.isEmpty) {
pushStatement(js.Return().withSourceInformation(node.sourceInformation));
} else {
@ -2653,12 +2653,12 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitThis(HThis node) {
void visitThis(HThis node) {
push(js.This());
}
@override
visitThrow(HThrow node) {
void visitThrow(HThrow node) {
SourceInformation? sourceInformation = node.sourceInformation;
if (node.isRethrow) {
use(node.inputs[0]);
@ -2672,27 +2672,27 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitAwait(HAwait node) {
void visitAwait(HAwait node) {
use(node.inputs[0]);
push(js.Await(pop()).withSourceInformation(node.sourceInformation));
}
@override
visitYield(HYield node) {
void visitYield(HYield node) {
use(node.inputs[0]);
pushStatement(js.DartYield(pop(), node.hasStar)
.withSourceInformation(node.sourceInformation));
}
@override
visitRangeConversion(HRangeConversion node) {
void visitRangeConversion(HRangeConversion node) {
// Range conversion instructions are removed by the value range
// analyzer.
assert(false);
}
@override
visitBoundsCheck(HBoundsCheck node) {
void visitBoundsCheck(HBoundsCheck node) {
// TODO(ngeoffray): Separate the two checks of the bounds check, so,
// e.g., the zero checks can be shared if possible.
@ -2829,7 +2829,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitThrowExpression(HThrowExpression node) {
void visitThrowExpression(HThrowExpression node) {
use(node.inputs[0]);
_pushCallStatic(
_commonElements.throwExpressionHelper, [pop()], node.sourceInformation);
@ -3159,7 +3159,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitIsTest(HIsTest node) {
void visitIsTest(HIsTest node) {
_metrics.countHIsTest++;
_registry.registerTypeUse(TypeUse.isCheck(node.dartType));
@ -3176,7 +3176,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitIsTestSimple(HIsTestSimple node) {
void visitIsTestSimple(HIsTestSimple node) {
_metrics.countHIsTestSimple++;
_emitIsTestSimple(node);
}
@ -3237,7 +3237,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitAsCheck(HAsCheck node) {
void visitAsCheck(HAsCheck node) {
use(node.typeInput);
js.Expression first = pop();
use(node.checkedInput);
@ -3253,7 +3253,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitAsCheckSimple(HAsCheckSimple node) {
void visitAsCheckSimple(HAsCheckSimple node) {
use(node.checkedInput);
FunctionEntity method = node.method;
_registry.registerStaticUse(
@ -3264,12 +3264,12 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitSubtypeCheck(HSubtypeCheck node) {
Never visitSubtypeCheck(HSubtypeCheck node) {
throw UnimplementedError('SsaCodeGenerator.visitSubtypeCheck $node');
}
@override
visitLoadType(HLoadType node) {
void visitLoadType(HLoadType node) {
// 'findType' will be called somewhere to initialize the type reference.
_registry.registerStaticUse(StaticUse.staticInvoke(
_commonElements.findType, CallStructure.ONE_ARG));
@ -3279,7 +3279,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitInstanceEnvironment(HInstanceEnvironment node) {
void visitInstanceEnvironment(HInstanceEnvironment node) {
HInstruction input = node.inputs.single;
use(input);
js.Expression receiver = pop();
@ -3340,7 +3340,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitTypeEval(HTypeEval node) {
void visitTypeEval(HTypeEval node) {
// Call `env._eval("recipe")`.
use(node.inputs[0]);
js.Expression environment = pop();
@ -3404,7 +3404,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitTypeBind(HTypeBind node) {
void visitTypeBind(HTypeBind node) {
// Call `env1._bind(env2)`.
assert(node.inputs.length == 2);
use(node.inputs[0]);
@ -3437,7 +3437,7 @@ class SsaCodeGenerator implements HVisitor<void>, HBlockInformationVisitor {
}
@override
visitIsLateSentinel(HIsLateSentinel node) {
void visitIsLateSentinel(HIsLateSentinel node) {
_metrics.countHIsLateSentinel++;
_emitIsLateSentinel(node.inputs.single, node.sourceInformation);
}

View file

@ -228,20 +228,20 @@ class SsaInstructionSelection extends HBaseVisitor<HInstruction?>
.isPotentiallyTrue;
@override
visitBinaryBitOp(HBinaryBitOp node) {
HBinaryBitOp visitBinaryBitOp(HBinaryBitOp node) {
node.requiresUintConversion = _requiresUintConversion(node);
return node;
}
@override
visitShiftRight(HShiftRight node) {
HShiftRight visitShiftRight(HShiftRight node) {
// HShiftRight is JavaScript's `>>>` operation so result is always unsigned.
node.requiresUintConversion = false;
return node;
}
@override
visitBitNot(HBitNot node) {
HBitNot visitBitNot(HBitNot node) {
node.requiresUintConversion = _requiresUintConversion(node);
return node;
}
@ -450,7 +450,7 @@ class SsaInstructionSelection extends HBaseVisitor<HInstruction?>
}
@override
visitIf(HIf node) {
HIf visitIf(HIf node) {
if (!_options.experimentToBoolean) return node;
HInstruction condition = node.inputs.single;
// if (x != null) --> if (x)

View file

@ -370,7 +370,7 @@ class SsaSimplifyInterceptors extends HBaseVisitor<bool>
// print(x.length); //
// }
finishInvoke(HInvoke invoke, Selector selector) {
void finishInvoke(HInvoke invoke, Selector selector) {
HInstruction callReceiver = invoke.getDartReceiver(_closedWorld)!;
if (receiver.nonCheck() == callReceiver.nonCheck()) {
Set<ClassEntity> interceptedClasses = _interceptorData

View file

@ -709,5 +709,5 @@ class SyntheticLocal extends Local {
SyntheticLocal(this.name, this.executableContext, this.memberContext);
@override
toString() => 'SyntheticLocal($name)';
String toString() => 'SyntheticLocal($name)';
}

View file

@ -418,7 +418,7 @@ class HGraph {
}
@override
toString() => 'HGraph($element)';
String toString() => 'HGraph($element)';
}
class HBaseVisitor<R> extends HGraphVisitor implements HVisitor<R> {
@ -1051,7 +1051,7 @@ class HBasicBlock extends HInstructionList {
}
@override
toString() => 'HBasicBlock($id)';
String toString() => 'HBasicBlock($id)';
}
enum _GvnType {
@ -2027,7 +2027,7 @@ class HInvokeSuper extends HInvokeStatic {
}
@override
toString() => 'invoke super: $element';
String toString() => 'invoke super: $element';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitInvokeSuper(this);
@ -2816,7 +2816,7 @@ class HBitNot extends HInvokeUnary {
class HExit extends HControlFlow {
HExit() : super(const []);
@override
toString() => 'exit';
String toString() => 'exit';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitExit(this);
}
@ -2824,7 +2824,7 @@ class HExit extends HControlFlow {
class HGoto extends HControlFlow {
HGoto() : super(const []);
@override
toString() => 'goto';
String toString() => 'goto';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitGoto(this);
}
@ -2887,7 +2887,7 @@ class HTry extends HControlFlow {
HBasicBlock? finallyBlock;
HTry() : super(const []);
@override
toString() => 'try';
String toString() => 'try';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitTry(this);
HBasicBlock get joinBlock => this.block!.successors.last;
@ -2901,7 +2901,7 @@ class HTry extends HControlFlow {
class HExitTry extends HControlFlow {
HExitTry() : super(const []);
@override
toString() => 'exit try';
String toString() => 'exit try';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitExitTry(this);
HBasicBlock get bodyTrySuccessor => block!.successors[0];
@ -2911,7 +2911,7 @@ class HIf extends HConditionalBranch {
HBlockFlow? blockInformation = null;
HIf(HInstruction condition) : super([condition]);
@override
toString() => 'if';
String toString() => 'if';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitIf(this);
@ -2931,7 +2931,7 @@ class HIf extends HConditionalBranch {
class HLoopBranch extends HConditionalBranch {
HLoopBranch(HInstruction condition) : super([condition]);
@override
toString() => 'loop-branch';
String toString() => 'loop-branch';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitLoopBranch(this);
}
@ -2942,7 +2942,7 @@ class HConstant extends HInstruction {
: super([], constantType);
@override
toString() => 'literal: ${constant.toStructuredText(null)}';
String toString() => 'literal: ${constant.toStructuredText(null)}';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitConstant(this);
@ -3003,7 +3003,7 @@ class HLocalValue extends HInstruction {
}
@override
toString() => 'local ${sourceElement!.name}';
String toString() => 'local ${sourceElement!.name}';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitLocalValue(this);
}
@ -3036,7 +3036,7 @@ class HParameterValue extends HLocalValue {
}
@override
toString() => 'parameter ${sourceElement!.name}';
String toString() => 'parameter ${sourceElement!.name}';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitParameterValue(this);
}
@ -3095,7 +3095,7 @@ class HPhi extends HInstruction {
}
@override
toString() => 'phi $id';
String toString() => 'phi $id';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitPhi(this);
}
@ -3196,7 +3196,7 @@ class HReturn extends HControlFlow {
this.sourceInformation = sourceInformation;
}
@override
toString() => 'return';
String toString() => 'return';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitReturn(this);
}
@ -3208,7 +3208,7 @@ class HThrowExpression extends HInstruction {
this.sourceInformation = sourceInformation;
}
@override
toString() => 'throw expression';
String toString() => 'throw expression';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitThrowExpression(this);
@override
@ -3218,7 +3218,7 @@ class HThrowExpression extends HInstruction {
class HAwait extends HInstruction {
HAwait(HInstruction value, AbstractValue type) : super([value], type);
@override
toString() => 'await';
String toString() => 'await';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitAwait(this);
// An await will throw if its argument is not a real future.
@ -3236,7 +3236,7 @@ class HYield extends HInstruction {
}
bool hasStar;
@override
toString() => 'yield';
String toString() => 'yield';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitYield(this);
@override
@ -3253,7 +3253,7 @@ class HThrow extends HControlFlow {
this.sourceInformation = sourceInformation;
}
@override
toString() => 'throw';
String toString() => 'throw';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitThrow(this);
}
@ -3276,7 +3276,7 @@ class HStatic extends HInstruction {
this.sourceInformation = sourceInformation;
}
@override
toString() => 'static ${element.name}';
String toString() => 'static ${element.name}';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitStatic(this);
@ -3390,7 +3390,7 @@ class HLazyStatic extends HInstruction {
}
@override
toString() => 'lazy static ${element.name}';
String toString() => 'lazy static ${element.name}';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitLazyStatic(this);
@ -3411,7 +3411,7 @@ class HStaticStore extends HInstruction {
sideEffects.setChangesStaticProperty();
}
@override
toString() => 'static store ${element.name}';
String toString() => 'static store ${element.name}';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitStaticStore(this);
@ -3431,7 +3431,7 @@ class HLiteralList extends HInstruction {
HLiteralList(List<HInstruction> inputs, AbstractValue type)
: super(inputs, type);
@override
toString() => 'literal list';
String toString() => 'literal list';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitLiteralList(this);
@ -3561,7 +3561,7 @@ class HLateValue extends HLateInstruction {
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitLateValue(this);
@override
toString() => 'HLateValue($target)';
String toString() => 'HLateValue($target)';
}
enum PrimitiveCheckKind {
@ -3676,7 +3676,7 @@ class HBoolConversion extends HCheck {
}
@override
toString() => 'HBoolConversion($checkedInput)';
String toString() => 'HBoolConversion($checkedInput)';
}
/// A check that the input is not null. This corresponds to the postfix
@ -3720,7 +3720,7 @@ class HNullCheck extends HCheck {
}
@override
toString() {
String toString() {
String fieldString = field == null ? '' : ', $field';
String selectorString = selector == null ? '' : ', $selector';
return 'HNullCheck($checkedInput$fieldString$selectorString)';
@ -3868,7 +3868,7 @@ class HTypeKnown extends HCheck {
super([input, witness], knownType);
@override
toString() => 'TypeKnown $knownType';
String toString() => 'TypeKnown $knownType';
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitTypeKnown(this);
@ -3933,7 +3933,7 @@ class HStringConcat extends HInstruction {
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitStringConcat(this);
@override
toString() => "string concat";
String toString() => "string concat";
@override
_GvnType get _gvnType => _GvnType.stringConcat;
@ -3966,7 +3966,7 @@ class HStringify extends HInstruction {
@override
R accept<R>(HVisitor<R> visitor) => visitor.visitStringify(this);
@override
toString() => "stringify";
String toString() => "stringify";
@override
_GvnType get _gvnType => _GvnType.stringify;

View file

@ -3719,7 +3719,7 @@ class SsaLoadElimination extends HBaseVisitor<void>
}
@override
visitTry(HTry instruction) {
void visitTry(HTry instruction) {
final impreciseBlocks = _blocksWithImprecisePredecessors ??= {};
if (instruction.catchBlock != null) {
impreciseBlocks[instruction.catchBlock!] = instruction;

View file

@ -265,7 +265,7 @@ class Setlet<E> extends SetBase<E> {
}
@override
clear() {
void clear() {
_contents = _MARKER;
_extra = null;
}
@ -300,7 +300,7 @@ class Setlet<E> extends SetBase<E> {
class _SetletMarker {
const _SetletMarker();
@override
toString() => "-";
String toString() => "-";
}
class _SetletSingleIterator<E> implements Iterator<E> {

View file

@ -27,7 +27,7 @@ class C extends B {
C();
@override
getValue() {
String getValue() {
return "Value";
}
}