[cfe] Add always_declare_return_types lint

Change-Id: I206a7a8132b5ea79dc019acf5c2e0cd800307bcf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212161
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
Johnni Winther 2021-09-02 08:07:23 +00:00 committed by commit-bot@chromium.org
parent b9c4b68f23
commit a6cc772b67
205 changed files with 556 additions and 533 deletions

View file

@ -11,7 +11,7 @@
"constraint, update this by running tools/generate_package_config.dart." "constraint, update this by running tools/generate_package_config.dart."
], ],
"configVersion": 2, "configVersion": 2,
"generated": "2021-08-23T16:52:51.727804", "generated": "2021-09-01T12:41:37.776425",
"generator": "tools/generate_package_config.dart", "generator": "tools/generate_package_config.dart",
"packages": [ "packages": [
{ {
@ -316,7 +316,7 @@
"name": "front_end", "name": "front_end",
"rootUri": "../pkg/front_end", "rootUri": "../pkg/front_end",
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.12" "languageVersion": "2.13"
}, },
{ {
"name": "front_end_testcases", "name": "front_end_testcases",

View file

@ -19,4 +19,5 @@ linter:
- lines_longer_than_80_chars - lines_longer_than_80_chars
- unrelated_type_equality_checks - unrelated_type_equality_checks
- annotate_overrides - annotate_overrides
- always_declare_return_types
# - always_specify_types # - always_specify_types

View file

@ -6,4 +6,4 @@
import 'package:compiler/src/dart2js.dart' as dart2js; import 'package:compiler/src/dart2js.dart' as dart2js;
main(args) => dart2js.main(args); void main(args) => dart2js.main(args);

View file

@ -2,4 +2,4 @@
// for details. All rights reserved. Use of this source code is governed by a // for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file. // BSD-style license that can be found in the LICENSE file.
main() => print('hello world'); void main() => print('hello world');

View file

@ -137,20 +137,19 @@ class LibrariesSpecification {
if (targetName.startsWith("comment:")) return null; if (targetName.startsWith("comment:")) return null;
Map<String, LibraryInfo> libraries = <String, LibraryInfo>{}; Map<String, LibraryInfo> libraries = <String, LibraryInfo>{};
if (targetData is! Map) { if (targetData is! Map) {
return _reportError( _reportError("target specification for '$targetName' is not a map");
"target specification for '$targetName' is not a map");
} }
if (!targetData.containsKey("libraries")) { if (!targetData.containsKey("libraries")) {
return _reportError("target specification " _reportError("target specification "
"for '$targetName' doesn't have a libraries entry"); "for '$targetName' doesn't have a libraries entry");
} }
dynamic librariesData = targetData["libraries"]; dynamic librariesData = targetData["libraries"];
if (librariesData is! Map<String, dynamic>) { if (librariesData is! Map<String, dynamic>) {
return _reportError("libraries entry for '$targetName' is not a map"); _reportError("libraries entry for '$targetName' is not a map");
} }
librariesData.forEach((String name, data) { librariesData.forEach((String name, data) {
if (data is! Map<String, dynamic>) { if (data is! Map<String, dynamic>) {
return _reportError( _reportError(
"library data for '$name' in target '$targetName' is not a map"); "library data for '$name' in target '$targetName' is not a map");
} }
Uri checkAndResolve(uriString) { Uri checkAndResolve(uriString) {
@ -175,13 +174,12 @@ class LibrariesSpecification {
} else if (data['patches'] == null) { } else if (data['patches'] == null) {
patches = const []; patches = const [];
} else { } else {
return _reportError( _reportError("patches entry for '$name' is not a list or a string");
"patches entry for '$name' is not a list or a string");
} }
dynamic supported = data['supported'] ?? true; dynamic supported = data['supported'] ?? true;
if (supported is! bool) { if (supported is! bool) {
return _reportError("\"supported\" entry: expected a 'bool' but " _reportError("\"supported\" entry: expected a 'bool' but "
"got a '${supported.runtimeType}' ('$supported')"); "got a '${supported.runtimeType}' ('$supported')");
} }
libraries[name] = libraries[name] =
@ -193,7 +191,7 @@ class LibrariesSpecification {
return new LibrariesSpecification(targets); return new LibrariesSpecification(targets);
} }
static _reportError(String error) => static Never _reportError(String error) =>
throw new LibrariesSpecificationException(error); throw new LibrariesSpecificationException(error);
/// Serialize this specification to json. /// Serialize this specification to json.

View file

@ -793,7 +793,7 @@ class ProcessedOptions {
String debugString() { String debugString() {
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
writeList(String name, List elements) { void writeList(String name, List elements) {
if (elements.isEmpty) { if (elements.isEmpty) {
sb.writeln('$name: <empty>'); sb.writeln('$name: <empty>');
return; return;

View file

@ -50,7 +50,7 @@ void resetCrashReporting() {
Future<T> reportCrash<T>(error, StackTrace trace, Future<T> reportCrash<T>(error, StackTrace trace,
[Uri? uri, int? charOffset]) async { [Uri? uri, int? charOffset]) async {
note(String note) async { Future<void> note(String note) async {
stderr.write(note); stderr.write(note);
await stderr.flush(); await stderr.flush();
} }

View file

@ -2097,7 +2097,7 @@ class IncrementalCompiler implements IncrementalKernelGenerator {
return false; return false;
} }
addBuilderAndInvalidateUris(Uri uri, LibraryBuilder libraryBuilder) { void addBuilderAndInvalidateUris(Uri uri, LibraryBuilder libraryBuilder) {
if (uri.scheme == "dart" && !libraryBuilder.isSynthetic) { if (uri.scheme == "dart" && !libraryBuilder.isSynthetic) {
if (seenUris.add(libraryBuilder.importUri)) { if (seenUris.add(libraryBuilder.importUri)) {
reusedLibraries.add(libraryBuilder); reusedLibraries.add(libraryBuilder);

View file

@ -256,7 +256,7 @@ class IncrementalSerializer {
/// Add the group but not its dependencies to the output if they weren't added /// Add the group but not its dependencies to the output if they weren't added
/// already. /// already.
addDataButNotDependentData(SerializationGroup group, void addDataButNotDependentData(SerializationGroup group,
Set<SerializationGroup> cachedPackagesInOutput, Sink<List<int>> sink) { Set<SerializationGroup> cachedPackagesInOutput, Sink<List<int>> sink) {
if (cachedPackagesInOutput.add(group)) { if (cachedPackagesInOutput.add(group)) {
sink.add(group.serializedData); sink.add(group.serializedData);
@ -265,7 +265,7 @@ class IncrementalSerializer {
/// Add the group and its dependencies to the output if they weren't added /// Add the group and its dependencies to the output if they weren't added
/// already. /// already.
addDataAndDependentData(SerializationGroup group, void addDataAndDependentData(SerializationGroup group,
Set<SerializationGroup> cachedPackagesInOutput, Sink<List<int>> sink) { Set<SerializationGroup> cachedPackagesInOutput, Sink<List<int>> sink) {
if (cachedPackagesInOutput.add(group)) { if (cachedPackagesInOutput.add(group)) {
sink.add(group.serializedData); sink.add(group.serializedData);

View file

@ -1859,7 +1859,7 @@ class BodyBuilder extends ScopeListener<JumpTarget>
} }
@override @override
/* Expression | Generator | Initializer */ finishSend(Object receiver, Expression_Generator_Initializer finishSend(Object receiver,
List<UnresolvedType>? typeArguments, Arguments arguments, int charOffset, List<UnresolvedType>? typeArguments, Arguments arguments, int charOffset,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
if (receiver is Generator) { if (receiver is Generator) {
@ -2445,7 +2445,7 @@ class BodyBuilder extends ScopeListener<JumpTarget>
/// implies that it shouldn't be turned into a [ThisPropertyAccessGenerator] /// implies that it shouldn't be turned into a [ThisPropertyAccessGenerator]
/// if the name doesn't resolve in the scope). /// if the name doesn't resolve in the scope).
@override @override
/*Generator|Expression|Builder*/ scopeLookup( Expression_Generator_Builder scopeLookup(
Scope scope, String name, Token token, Scope scope, String name, Token token,
{bool isQualified: false, PrefixBuilder? prefix}) { {bool isQualified: false, PrefixBuilder? prefix}) {
int charOffset = offsetForToken(token); int charOffset = offsetForToken(token);
@ -7444,7 +7444,7 @@ class _BodyBuilderCloner extends CloneVisitorNotMembers {
_BodyBuilderCloner(this.bodyBuilder); _BodyBuilderCloner(this.bodyBuilder);
@override @override
visitStaticInvocation(StaticInvocation node) { TreeNode visitStaticInvocation(StaticInvocation node) {
if (node is FactoryConstructorInvocation) { if (node is FactoryConstructorInvocation) {
FactoryConstructorInvocation result = new FactoryConstructorInvocation( FactoryConstructorInvocation result = new FactoryConstructorInvocation(
node.target, clone(node.arguments), node.target, clone(node.arguments),
@ -7464,7 +7464,7 @@ class _BodyBuilderCloner extends CloneVisitorNotMembers {
} }
@override @override
visitConstructorInvocation(ConstructorInvocation node) { TreeNode visitConstructorInvocation(ConstructorInvocation node) {
if (node is TypeAliasedConstructorInvocation) { if (node is TypeAliasedConstructorInvocation) {
TypeAliasedConstructorInvocation result = TypeAliasedConstructorInvocation result =
new TypeAliasedConstructorInvocation( new TypeAliasedConstructorInvocation(
@ -7478,7 +7478,7 @@ class _BodyBuilderCloner extends CloneVisitorNotMembers {
} }
@override @override
visitArguments(Arguments node) { TreeNode visitArguments(Arguments node) {
if (node is ArgumentsImpl) { if (node is ArgumentsImpl) {
return ArgumentsImpl.clone(node, node.positional.map(clone).toList(), return ArgumentsImpl.clone(node, node.positional.map(clone).toList(),
node.named.map(clone).toList(), node.types.map(visitType).toList()); node.named.map(clone).toList(), node.types.map(visitType).toList());

View file

@ -215,11 +215,11 @@ abstract class Generator {
/// ///
/// If the invocation has explicit type arguments /// If the invocation has explicit type arguments
/// [buildTypeWithResolvedArguments] called instead. /// [buildTypeWithResolvedArguments] called instead.
/* Expression | Generator | Initializer */ doInvocation( Expression_Generator_Initializer doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}); {bool isTypeArgumentsInForest = false});
/* Expression | Generator */ buildSelectorAccess( Expression_Generator buildSelectorAccess(
Selector send, int operatorOffset, bool isNullAware) { Selector send, int operatorOffset, bool isNullAware) {
if (send is InvocationSelector) { if (send is InvocationSelector) {
return _helper.buildMethodInvocation(buildSimpleRead(), send.name, return _helper.buildMethodInvocation(buildSimpleRead(), send.name,
@ -237,7 +237,7 @@ abstract class Generator {
} }
} }
/*Expression | Generator*/ buildEqualsOperation(Token token, Expression right, Expression_Generator buildEqualsOperation(Token token, Expression right,
{required bool isNot}) { {required bool isNot}) {
// ignore: unnecessary_null_comparison // ignore: unnecessary_null_comparison
assert(isNot != null); assert(isNot != null);
@ -245,18 +245,18 @@ abstract class Generator {
isNot: isNot); isNot: isNot);
} }
/*Expression | Generator*/ buildBinaryOperation( Expression_Generator buildBinaryOperation(
Token token, Name binaryName, Expression right) { Token token, Name binaryName, Expression right) {
return _forest.createBinary( return _forest.createBinary(
offsetForToken(token), buildSimpleRead(), binaryName, right); offsetForToken(token), buildSimpleRead(), binaryName, right);
} }
/*Expression | Generator*/ buildUnaryOperation(Token token, Name unaryName) { Expression_Generator buildUnaryOperation(Token token, Name unaryName) {
return _forest.createUnary( return _forest.createUnary(
offsetForToken(token), unaryName, buildSimpleRead()); offsetForToken(token), unaryName, buildSimpleRead());
} }
/*Expression|Generator*/ applyTypeArguments( Expression_Generator applyTypeArguments(
int fileOffset, List<UnresolvedType>? typeArguments) { int fileOffset, List<UnresolvedType>? typeArguments) {
return new Instantiation( return new Instantiation(
buildSimpleRead(), _helper.buildDartTypeArguments(typeArguments)) buildSimpleRead(), _helper.buildDartTypeArguments(typeArguments))
@ -2625,8 +2625,9 @@ class ExplicitExtensionAccessGenerator extends Generator {
isNullAware: isNullAware); isNullAware: isNullAware);
} }
/* Expression | Generator */ @override @override
buildSelectorAccess(Selector send, int operatorOffset, bool isNullAware) { Expression_Generator buildSelectorAccess(
Selector send, int operatorOffset, bool isNullAware) {
if (_helper.constantContext != ConstantContext.none) { if (_helper.constantContext != ConstantContext.none) {
_helper.addProblem( _helper.addProblem(
messageNotAConstantExpression, fileOffset, token.length); messageNotAConstantExpression, fileOffset, token.length);
@ -2643,7 +2644,8 @@ class ExplicitExtensionAccessGenerator extends Generator {
} }
@override @override
buildBinaryOperation(Token token, Name binaryName, Expression right) { Expression_Generator buildBinaryOperation(
Token token, Name binaryName, Expression right) {
int fileOffset = offsetForToken(token); int fileOffset = offsetForToken(token);
Generator generator = _createInstanceAccess(token, binaryName); Generator generator = _createInstanceAccess(token, binaryName);
return generator.doInvocation(fileOffset, null, return generator.doInvocation(fileOffset, null,
@ -2651,7 +2653,7 @@ class ExplicitExtensionAccessGenerator extends Generator {
} }
@override @override
buildUnaryOperation(Token token, Name unaryName) { Expression_Generator buildUnaryOperation(Token token, Name unaryName) {
int fileOffset = offsetForToken(token); int fileOffset = offsetForToken(token);
Generator generator = _createInstanceAccess(token, unaryName); Generator generator = _createInstanceAccess(token, unaryName);
return generator.doInvocation( return generator.doInvocation(
@ -2659,7 +2661,7 @@ class ExplicitExtensionAccessGenerator extends Generator {
} }
@override @override
doInvocation( Expression_Generator_Initializer doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
Generator generator = _createInstanceAccess(token, callName); Generator generator = _createInstanceAccess(token, callName);
@ -2860,7 +2862,8 @@ class DeferredAccessGenerator extends Generator {
} }
@override @override
buildSelectorAccess(Selector send, int operatorOffset, bool isNullAware) { Expression_Generator buildSelectorAccess(
Selector send, int operatorOffset, bool isNullAware) {
Object propertyAccess = Object propertyAccess =
suffixGenerator.buildSelectorAccess(send, operatorOffset, isNullAware); suffixGenerator.buildSelectorAccess(send, operatorOffset, isNullAware);
if (propertyAccess is Generator) { if (propertyAccess is Generator) {
@ -2914,7 +2917,7 @@ class DeferredAccessGenerator extends Generator {
} }
@override @override
doInvocation( Expression_Generator_Initializer doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
Object suffix = suffixGenerator.doInvocation( Object suffix = suffixGenerator.doInvocation(
@ -3098,7 +3101,8 @@ class TypeUseGenerator extends AbstractReadOnlyAccessGenerator {
} }
@override @override
buildSelectorAccess(Selector send, int operatorOffset, bool isNullAware) { Expression_Generator buildSelectorAccess(
Selector send, int operatorOffset, bool isNullAware) {
int nameOffset = offsetForToken(send.token); int nameOffset = offsetForToken(send.token);
Name name = send.name; Name name = send.name;
Arguments? arguments = send.arguments; Arguments? arguments = send.arguments;
@ -3326,7 +3330,7 @@ class TypeUseGenerator extends AbstractReadOnlyAccessGenerator {
} }
@override @override
doInvocation( Expression_Generator_Builder doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
if (declaration.isExtension) { if (declaration.isExtension) {
@ -3363,7 +3367,8 @@ class TypeUseGenerator extends AbstractReadOnlyAccessGenerator {
} }
@override @override
applyTypeArguments(int fileOffset, List<UnresolvedType>? typeArguments) { Expression_Generator applyTypeArguments(
int fileOffset, List<UnresolvedType>? typeArguments) {
return new TypeUseGenerator(_helper, token, declaration, targetName) return new TypeUseGenerator(_helper, token, declaration, targetName)
..typeArguments = typeArguments; ..typeArguments = typeArguments;
} }
@ -3509,7 +3514,7 @@ abstract class AbstractReadOnlyAccessGenerator extends Generator {
} }
@override @override
doInvocation( Expression_Generator_Initializer doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
return _helper.forest.createExpressionInvocation( return _helper.forest.createExpressionInvocation(
@ -3564,7 +3569,7 @@ abstract class ErroneousExpressionGenerator extends Generator {
} }
@override @override
doInvocation( Expression_Generator_Initializer doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
return buildError(arguments, return buildError(arguments,
@ -3572,7 +3577,8 @@ abstract class ErroneousExpressionGenerator extends Generator {
} }
@override @override
buildSelectorAccess(Selector send, int operatorOffset, bool isNullAware) { Expression_Generator buildSelectorAccess(
Selector send, int operatorOffset, bool isNullAware) {
return send.withReceiver(buildSimpleRead(), operatorOffset, return send.withReceiver(buildSimpleRead(), operatorOffset,
isNullAware: isNullAware); isNullAware: isNullAware);
} }
@ -3765,7 +3771,7 @@ abstract class ContextAwareGenerator extends Generator {
} }
@override @override
Expression doInvocation( Never doInvocation(
int charOffset, List<UnresolvedType>? typeArguments, Arguments arguments, int charOffset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
return unhandled("${runtimeType}", "doInvocation", charOffset, _uri); return unhandled("${runtimeType}", "doInvocation", charOffset, _uri);
@ -3804,7 +3810,7 @@ abstract class ContextAwareGenerator extends Generator {
} }
@override @override
_makeInvalidRead([UnresolvedKind? unresolvedKind]) { Never _makeInvalidRead([UnresolvedKind? unresolvedKind]) {
return unsupported("makeInvalidRead", token.charOffset, _helper.uri); return unsupported("makeInvalidRead", token.charOffset, _helper.uri);
} }
@ -4011,7 +4017,7 @@ class PrefixUseGenerator extends Generator {
} }
@override @override
/* Expression | Generator | Initializer */ doInvocation( Expression doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
return _helper.wrapInLocatedProblem( return _helper.wrapInLocatedProblem(
@ -4022,7 +4028,7 @@ class PrefixUseGenerator extends Generator {
} }
@override @override
/* Expression | Generator */ buildSelectorAccess( Expression_Generator buildSelectorAccess(
Selector send, int operatorOffset, bool isNullAware) { Selector send, int operatorOffset, bool isNullAware) {
assert(send.name.text == send.token.lexeme, assert(send.name.text == send.token.lexeme,
"'${send.name.text}' != ${send.token.lexeme}"); "'${send.name.text}' != ${send.token.lexeme}");
@ -4400,7 +4406,8 @@ class ThisAccessGenerator extends Generator {
} }
@override @override
buildSelectorAccess(Selector send, int operatorOffset, bool isNullAware) { Expression_Generator buildSelectorAccess(
Selector send, int operatorOffset, bool isNullAware) {
Name name = send.name; Name name = send.name;
Arguments? arguments = send.arguments; Arguments? arguments = send.arguments;
int offset = offsetForToken(send.token); int offset = offsetForToken(send.token);
@ -4451,7 +4458,7 @@ class ThisAccessGenerator extends Generator {
} }
@override @override
doInvocation( Expression_Generator_Initializer doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) { {bool isTypeArgumentsInForest = false}) {
if (isInitializer) { if (isInitializer) {
@ -4465,7 +4472,8 @@ class ThisAccessGenerator extends Generator {
} }
@override @override
buildEqualsOperation(Token token, Expression right, {required bool isNot}) { Expression_Generator buildEqualsOperation(Token token, Expression right,
{required bool isNot}) {
// ignore: unnecessary_null_comparison // ignore: unnecessary_null_comparison
assert(isNot != null); assert(isNot != null);
if (isSuper) { if (isSuper) {
@ -4485,7 +4493,8 @@ class ThisAccessGenerator extends Generator {
} }
@override @override
buildBinaryOperation(Token token, Name binaryName, Expression right) { Expression_Generator buildBinaryOperation(
Token token, Name binaryName, Expression right) {
if (isSuper) { if (isSuper) {
int offset = offsetForToken(token); int offset = offsetForToken(token);
return _helper.buildMethodInvocation( return _helper.buildMethodInvocation(
@ -4499,7 +4508,7 @@ class ThisAccessGenerator extends Generator {
} }
@override @override
buildUnaryOperation(Token token, Name unaryName) { Expression_Generator buildUnaryOperation(Token token, Name unaryName) {
if (isSuper) { if (isSuper) {
int offset = offsetForToken(token); int offset = offsetForToken(token);
return _helper.buildMethodInvocation( return _helper.buildMethodInvocation(
@ -4650,7 +4659,7 @@ class IncompleteErrorGenerator extends ErroneousExpressionGenerator {
} }
@override @override
doInvocation( Generator doInvocation(
int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments,
{bool isTypeArgumentsInForest = false}) => {bool isTypeArgumentsInForest = false}) =>
this; this;
@ -4705,8 +4714,9 @@ class ParenthesizedExpressionGenerator extends AbstractReadOnlyAccessGenerator {
@override @override
String get _debugName => "ParenthesizedExpressionGenerator"; String get _debugName => "ParenthesizedExpressionGenerator";
/* Expression | Generator */ @override @override
buildSelectorAccess(Selector send, int operatorOffset, bool isNullAware) { Expression_Generator buildSelectorAccess(
Selector send, int operatorOffset, bool isNullAware) {
if (send is InvocationSelector) { if (send is InvocationSelector) {
return _helper.buildMethodInvocation( return _helper.buildMethodInvocation(
_createRead(), send.name, send.arguments, offsetForToken(send.token), _createRead(), send.name, send.arguments, offsetForToken(send.token),
@ -4763,8 +4773,7 @@ abstract class Selector {
Name get name; Name get name;
/// Applies this selector to [receiver]. /// Applies this selector to [receiver].
/* Expression | Generator */ withReceiver( Expression_Generator withReceiver(Object? receiver, int operatorOffset,
Object? receiver, int operatorOffset,
{bool isNullAware: false}); {bool isNullAware: false});
List<UnresolvedType>? get typeArguments => null; List<UnresolvedType>? get typeArguments => null;
@ -4826,7 +4835,7 @@ class InvocationSelector extends Selector {
String get _debugName => 'InvocationSelector'; String get _debugName => 'InvocationSelector';
@override @override
withReceiver(Object? receiver, int operatorOffset, Expression_Generator withReceiver(Object? receiver, int operatorOffset,
{bool isNullAware: false}) { {bool isNullAware: false}) {
if (receiver is Generator) { if (receiver is Generator) {
return receiver.buildSelectorAccess(this, operatorOffset, isNullAware); return receiver.buildSelectorAccess(this, operatorOffset, isNullAware);
@ -4868,7 +4877,7 @@ class PropertySelector extends Selector {
String get _debugName => 'PropertySelector'; String get _debugName => 'PropertySelector';
@override @override
withReceiver(Object? receiver, int operatorOffset, Expression_Generator withReceiver(Object? receiver, int operatorOffset,
{bool isNullAware: false}) { {bool isNullAware: false}) {
if (receiver is Generator) { if (receiver is Generator) {
return receiver.buildSelectorAccess(this, operatorOffset, isNullAware); return receiver.buildSelectorAccess(this, operatorOffset, isNullAware);

View file

@ -44,6 +44,15 @@ import 'kernel_ast_api.dart'
Typedef, Typedef,
VariableDeclaration; VariableDeclaration;
/// Alias for Expression | Generator
typedef Expression_Generator = dynamic;
/// Alias for Expression | Generator | Builder
typedef Expression_Generator_Builder = dynamic;
/// Alias for Expression | Generator | Initializer
typedef Expression_Generator_Initializer = dynamic;
abstract class ExpressionGeneratorHelper implements InferenceHelper { abstract class ExpressionGeneratorHelper implements InferenceHelper {
SourceLibraryBuilder get libraryBuilder; SourceLibraryBuilder get libraryBuilder;
@ -66,11 +75,11 @@ abstract class ExpressionGeneratorHelper implements InferenceHelper {
bool get enableConstructorTearOffsInLibrary; bool get enableConstructorTearOffsInLibrary;
/* Generator | Expression | Builder */ scopeLookup( Expression_Generator_Builder scopeLookup(
Scope scope, String name, Token token, Scope scope, String name, Token token,
{bool isQualified: false, PrefixBuilder? prefix}); {bool isQualified: false, PrefixBuilder? prefix});
/* Expression | Generator | Initializer */ finishSend(Object receiver, Expression_Generator_Initializer finishSend(Object receiver,
List<UnresolvedType>? typeArguments, Arguments arguments, int offset, List<UnresolvedType>? typeArguments, Arguments arguments, int offset,
{bool isTypeArgumentsInForest = false}); {bool isTypeArgumentsInForest = false});

View file

@ -885,17 +885,17 @@ class _VariablesDeclaration extends Statement {
} }
@override @override
visitChildren(v) { Never visitChildren(v) {
throw unsupported("visitChildren", fileOffset, uri); throw unsupported("visitChildren", fileOffset, uri);
} }
@override @override
transformChildren(v) { Never transformChildren(v) {
throw unsupported("transformChildren", fileOffset, uri); throw unsupported("transformChildren", fileOffset, uri);
} }
@override @override
transformOrRemoveChildren(v) { Never transformOrRemoveChildren(v) {
throw unsupported("transformOrRemoveChildren", fileOffset, uri); throw unsupported("transformOrRemoveChildren", fileOffset, uri);
} }

View file

@ -48,7 +48,7 @@ abstract class ImplicitFieldType extends DartType {
} }
@override @override
visitChildren(Visitor<dynamic> v) { Never visitChildren(Visitor<dynamic> v) {
unsupported("visitChildren", fieldBuilder.charOffset, fieldBuilder.fileUri); unsupported("visitChildren", fieldBuilder.charOffset, fieldBuilder.fileUri);
} }

View file

@ -37,7 +37,7 @@ class ImplicitTypeArgument extends DartType {
} }
@override @override
visitChildren(Visitor v) { Never visitChildren(Visitor v) {
unhandled("$runtimeType", "${v.runtimeType}", -1, null); unhandled("$runtimeType", "${v.runtimeType}", -1, null);
} }

View file

@ -179,7 +179,7 @@ class FastaVerifyingVisitor extends VerifyingVisitor {
} }
@override @override
problem(TreeNode? node, String details, void problem(TreeNode? node, String details,
{TreeNode? context, TreeNode? origin}) { {TreeNode? context, TreeNode? origin}) {
node ??= (context ?? currentClassOrExtensionOrMember); node ??= (context ?? currentClassOrExtensionOrMember);
int offset = node?.fileOffset ?? -1; int offset = node?.fileOffset ?? -1;
@ -446,7 +446,7 @@ class FastaVerifyGetStaticType extends VerifyGetStaticType {
FastaVerifyGetStaticType(TypeEnvironment env, this.skipPlatform) : super(env); FastaVerifyGetStaticType(TypeEnvironment env, this.skipPlatform) : super(env);
@override @override
visitLibrary(Library node) { void visitLibrary(Library node) {
// 'dart:test' is used in the unit tests and isn't an actual part of the // 'dart:test' is used in the unit tests and isn't an actual part of the
// platform. // platform.
if (skipPlatform && if (skipPlatform &&

View file

@ -89,7 +89,7 @@ class Modifier {
} }
@override @override
toString() => "modifier(${'$kind'.substring('ModifierEnum.'.length)})"; String toString() => "modifier(${'$kind'.substring('ModifierEnum.'.length)})";
static int toMask(List<Modifier>? modifiers) { static int toMask(List<Modifier>? modifiers) {
int result = 0; int result = 0;

View file

@ -35,7 +35,7 @@ class DebugAbort {
.withoutLocation(); .withoutLocation();
@override @override
toString() => "DebugAbort: ${message.message}"; String toString() => "DebugAbort: ${message.message}";
} }
/// Used to report an internal error. /// Used to report an internal error.

View file

@ -686,8 +686,6 @@ abstract class ProblemBuilder extends BuilderImpl {
ProblemBuilder(this.name, this.builder, this.charOffset, this.fileUri); ProblemBuilder(this.name, this.builder, this.charOffset, this.fileUri);
get target => null;
@override @override
bool get hasProblem => true; bool get hasProblem => true;

View file

@ -37,7 +37,7 @@ class DirectiveListener extends Listener {
DirectiveListener(); DirectiveListener();
@override @override
beginExport(Token export) { void beginExport(Token export) {
_combinators = <NamespaceCombinator>[]; _combinators = <NamespaceCombinator>[];
} }
@ -47,7 +47,7 @@ class DirectiveListener extends Listener {
} }
@override @override
beginImport(Token import) { void beginImport(Token import) {
_combinators = <NamespaceCombinator>[]; _combinators = <NamespaceCombinator>[];
} }
@ -59,7 +59,7 @@ class DirectiveListener extends Listener {
} }
@override @override
beginPart(Token part) { void beginPart(Token part) {
_inPart = true; _inPart = true;
} }
@ -69,7 +69,7 @@ class DirectiveListener extends Listener {
} }
@override @override
endExport(Token export, Token semicolon) { void endExport(Token export, Token semicolon) {
exports.add(new NamespaceDirective.export(_uri, _combinators)); exports.add(new NamespaceDirective.export(_uri, _combinators));
_uri = null; _uri = null;
_combinators = null; _combinators = null;
@ -82,14 +82,14 @@ class DirectiveListener extends Listener {
} }
@override @override
endImport(Token? import, Token? semicolon) { void endImport(Token? import, Token? semicolon) {
imports.add(new NamespaceDirective.import(_uri, _combinators)); imports.add(new NamespaceDirective.import(_uri, _combinators));
_uri = null; _uri = null;
_combinators = null; _combinators = null;
} }
@override @override
endPart(Token part, Token semicolon) { void endPart(Token part, Token semicolon) {
parts.add(_uri); parts.add(_uri);
_uri = null; _uri = null;
_inPart = false; _inPart = false;

View file

@ -63,7 +63,7 @@ abstract class StackListenerImpl extends StackListener {
/// Used to report an internal error encountered in the stack listener. /// Used to report an internal error encountered in the stack listener.
@override @override
internalProblem(Message message, int charOffset, Uri uri) { Never internalProblem(Message message, int charOffset, Uri uri) {
return problems.internalProblem(message, charOffset, uri); return problems.internalProblem(message, charOffset, uri);
} }

View file

@ -47,7 +47,7 @@ class TypeSchemaPrinter extends Printer {
annotator: annotator); annotator: annotator);
@override @override
defaultDartType(covariant UnknownType node) { void defaultDartType(covariant UnknownType node) {
writeWord('?'); writeWord('?');
} }
} }

View file

@ -1152,7 +1152,7 @@ extension InitializerExtension on DirectParserASTContentInitializerEnd {
} }
} }
main(List<String> args) { void main(List<String> args) {
File f = new File(args[0]); File f = new File(args[0]);
Uint8List data = f.readAsBytesSync(); Uint8List data = f.readAsBytesSync();
DirectParserASTContent ast = getAST(data); DirectParserASTContent ast = getAST(data);

View file

@ -656,7 +656,7 @@ void outputUnknownChunk(
_currentUnknown.interimEnd = null; _currentUnknown.interimEnd = null;
} }
main(List<String> args) { void main(List<String> args) {
File f = new File(args[0]); File f = new File(args[0]);
Uint8List data = f.readAsBytesSync(); Uint8List data = f.readAsBytesSync();
ScannerConfiguration scannerConfiguration = new ScannerConfiguration(); ScannerConfiguration scannerConfiguration = new ScannerConfiguration();
@ -822,12 +822,12 @@ class TextualOutlineListener extends Listener {
List<String>? _combinatorNames; List<String>? _combinatorNames;
@override @override
beginExport(Token export) { void beginExport(Token export) {
_combinators = <_NamespaceCombinator>[]; _combinators = <_NamespaceCombinator>[];
} }
@override @override
beginImport(Token import) { void beginImport(Token import) {
_combinators = <_NamespaceCombinator>[]; _combinators = <_NamespaceCombinator>[];
} }

View file

@ -167,19 +167,19 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
defaultNode(Node node) { void defaultNode(Node node) {
node.visitChildren(this); node.visitChildren(this);
} }
@override @override
visitProcedure(Procedure node) { void visitProcedure(Procedure node) {
// Avoid visiting annotations. // Avoid visiting annotations.
node.function.accept(this); node.function.accept(this);
computeForMember(node); computeForMember(node);
} }
@override @override
visitConstructor(Constructor node) { void visitConstructor(Constructor node) {
// Avoid visiting annotations. // Avoid visiting annotations.
visitList(node.initializers, this); visitList(node.initializers, this);
node.function.accept(this); node.function.accept(this);
@ -187,13 +187,13 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitField(Field node) { void visitField(Field node) {
// Avoid visiting annotations. // Avoid visiting annotations.
node.initializer?.accept(this); node.initializer?.accept(this);
computeForMember(node); computeForMember(node);
} }
_visitInvocation(Expression node, Name name) { void _visitInvocation(Expression node, Name name) {
if (name.text == '[]') { if (name.text == '[]') {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
} else if (name.text == '[]=') { } else if (name.text == '[]=') {
@ -208,31 +208,31 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitDynamicInvocation(DynamicInvocation node) { void visitDynamicInvocation(DynamicInvocation node) {
_visitInvocation(node, node.name); _visitInvocation(node, node.name);
super.visitDynamicInvocation(node); super.visitDynamicInvocation(node);
} }
@override @override
visitFunctionInvocation(FunctionInvocation node) { void visitFunctionInvocation(FunctionInvocation node) {
_visitInvocation(node, node.name); _visitInvocation(node, node.name);
super.visitFunctionInvocation(node); super.visitFunctionInvocation(node);
} }
@override @override
visitLocalFunctionInvocation(LocalFunctionInvocation node) { void visitLocalFunctionInvocation(LocalFunctionInvocation node) {
computeForNode(node, createInvokeId(node)); computeForNode(node, createInvokeId(node));
super.visitLocalFunctionInvocation(node); super.visitLocalFunctionInvocation(node);
} }
@override @override
visitEqualsCall(EqualsCall node) { void visitEqualsCall(EqualsCall node) {
_visitInvocation(node, Name.equalsName); _visitInvocation(node, Name.equalsName);
super.visitEqualsCall(node); super.visitEqualsCall(node);
} }
@override @override
visitEqualsNull(EqualsNull node) { void visitEqualsNull(EqualsNull node) {
Expression receiver = node.expression; Expression receiver = node.expression;
if (receiver is VariableGet && receiver.variable.name == null) { if (receiver is VariableGet && receiver.variable.name == null) {
// This is a desugared `?.`. // This is a desugared `?.`.
@ -243,48 +243,48 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitInstanceInvocation(InstanceInvocation node) { void visitInstanceInvocation(InstanceInvocation node) {
_visitInvocation(node, node.name); _visitInvocation(node, node.name);
super.visitInstanceInvocation(node); super.visitInstanceInvocation(node);
} }
@override @override
visitInstanceGetterInvocation(InstanceGetterInvocation node) { void visitInstanceGetterInvocation(InstanceGetterInvocation node) {
_visitInvocation(node, node.name); _visitInvocation(node, node.name);
super.visitInstanceGetterInvocation(node); super.visitInstanceGetterInvocation(node);
} }
@override @override
visitLoadLibrary(LoadLibrary node) { void visitLoadLibrary(LoadLibrary node) {
computeForNode(node, createInvokeId(node)); computeForNode(node, createInvokeId(node));
} }
@override @override
visitDynamicGet(DynamicGet node) { void visitDynamicGet(DynamicGet node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitDynamicGet(node); super.visitDynamicGet(node);
} }
@override @override
visitFunctionTearOff(FunctionTearOff node) { void visitFunctionTearOff(FunctionTearOff node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitFunctionTearOff(node); super.visitFunctionTearOff(node);
} }
@override @override
visitInstanceGet(InstanceGet node) { void visitInstanceGet(InstanceGet node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitInstanceGet(node); super.visitInstanceGet(node);
} }
@override @override
visitInstanceTearOff(InstanceTearOff node) { void visitInstanceTearOff(InstanceTearOff node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitInstanceTearOff(node); super.visitInstanceTearOff(node);
} }
@override @override
visitVariableDeclaration(VariableDeclaration node) { void visitVariableDeclaration(VariableDeclaration node) {
if (node.name != null && node.parent is! FunctionDeclaration) { if (node.name != null && node.parent is! FunctionDeclaration) {
// Skip synthetic variables and function declaration variables. // Skip synthetic variables and function declaration variables.
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
@ -294,7 +294,7 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitFunctionDeclaration(FunctionDeclaration node) { void visitFunctionDeclaration(FunctionDeclaration node) {
computeForNode( computeForNode(
node, node,
computeDefaultNodeId(node, computeDefaultNodeId(node,
@ -305,13 +305,13 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitFunctionExpression(FunctionExpression node) { void visitFunctionExpression(FunctionExpression node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitFunctionExpression(node); super.visitFunctionExpression(node);
} }
@override @override
visitVariableGet(VariableGet node) { void visitVariableGet(VariableGet node) {
if (node.variable.name != null && !node.variable.isFieldFormal) { if (node.variable.name != null && !node.variable.isFieldFormal) {
// Skip use of synthetic variables. // Skip use of synthetic variables.
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
@ -320,19 +320,19 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitDynamicSet(DynamicSet node) { void visitDynamicSet(DynamicSet node) {
computeForNode(node, createUpdateId(node)); computeForNode(node, createUpdateId(node));
super.visitDynamicSet(node); super.visitDynamicSet(node);
} }
@override @override
visitInstanceSet(InstanceSet node) { void visitInstanceSet(InstanceSet node) {
computeForNode(node, createUpdateId(node)); computeForNode(node, createUpdateId(node));
super.visitInstanceSet(node); super.visitInstanceSet(node);
} }
@override @override
visitVariableSet(VariableSet node) { void visitVariableSet(VariableSet node) {
if (node.variable.name != null) { if (node.variable.name != null) {
// Skip use of synthetic variables. // Skip use of synthetic variables.
computeForNode(node, createUpdateId(node)); computeForNode(node, createUpdateId(node));
@ -341,43 +341,43 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitExpressionStatement(ExpressionStatement node) { void visitExpressionStatement(ExpressionStatement node) {
computeForNode(node, createExpressionStatementId(node)); computeForNode(node, createExpressionStatementId(node));
return super.visitExpressionStatement(node); return super.visitExpressionStatement(node);
} }
@override @override
visitIfStatement(IfStatement node) { void visitIfStatement(IfStatement node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
return super.visitIfStatement(node); return super.visitIfStatement(node);
} }
@override @override
visitTryCatch(TryCatch node) { void visitTryCatch(TryCatch node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
return super.visitTryCatch(node); return super.visitTryCatch(node);
} }
@override @override
visitTryFinally(TryFinally node) { void visitTryFinally(TryFinally node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
return super.visitTryFinally(node); return super.visitTryFinally(node);
} }
@override @override
visitDoStatement(DoStatement node) { void visitDoStatement(DoStatement node) {
computeForNode(node, createLoopId(node)); computeForNode(node, createLoopId(node));
super.visitDoStatement(node); super.visitDoStatement(node);
} }
@override @override
visitForStatement(ForStatement node) { void visitForStatement(ForStatement node) {
computeForNode(node, createLoopId(node)); computeForNode(node, createLoopId(node));
super.visitForStatement(node); super.visitForStatement(node);
} }
@override @override
visitForInStatement(ForInStatement node) { void visitForInStatement(ForInStatement node) {
computeForNode(node, createLoopId(node)); computeForNode(node, createLoopId(node));
computeForNode(node, createIteratorId(node)); computeForNode(node, createIteratorId(node));
computeForNode(node, createCurrentId(node)); computeForNode(node, createCurrentId(node));
@ -386,32 +386,32 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitWhileStatement(WhileStatement node) { void visitWhileStatement(WhileStatement node) {
computeForNode(node, createLoopId(node)); computeForNode(node, createLoopId(node));
super.visitWhileStatement(node); super.visitWhileStatement(node);
} }
@override @override
visitLabeledStatement(LabeledStatement node) { void visitLabeledStatement(LabeledStatement node) {
// TODO(johnniwinther): Call computeForNode for label statements that are // TODO(johnniwinther): Call computeForNode for label statements that are
// not placeholders for loop and switch targets. // not placeholders for loop and switch targets.
super.visitLabeledStatement(node); super.visitLabeledStatement(node);
} }
@override @override
visitBreakStatement(BreakStatement node) { void visitBreakStatement(BreakStatement node) {
computeForNode(node, createGotoId(node)); computeForNode(node, createGotoId(node));
super.visitBreakStatement(node); super.visitBreakStatement(node);
} }
@override @override
visitSwitchStatement(SwitchStatement node) { void visitSwitchStatement(SwitchStatement node) {
computeForNode(node, createSwitchId(node)); computeForNode(node, createSwitchId(node));
super.visitSwitchStatement(node); super.visitSwitchStatement(node);
} }
@override @override
visitSwitchCase(SwitchCase node) { void visitSwitchCase(SwitchCase node) {
if (node.expressionOffsets.isNotEmpty) { if (node.expressionOffsets.isNotEmpty) {
computeForNode(node, createSwitchCaseId(node)); computeForNode(node, createSwitchCaseId(node));
} }
@ -419,13 +419,13 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitContinueSwitchStatement(ContinueSwitchStatement node) { void visitContinueSwitchStatement(ContinueSwitchStatement node) {
computeForNode(node, createGotoId(node)); computeForNode(node, createGotoId(node));
super.visitContinueSwitchStatement(node); super.visitContinueSwitchStatement(node);
} }
@override @override
visitConstantExpression(ConstantExpression node) { void visitConstantExpression(ConstantExpression node) {
// Implicit constants (for instance omitted field initializers, implicit // Implicit constants (for instance omitted field initializers, implicit
// default values) and synthetic constants (for instance in noSuchMethod // default values) and synthetic constants (for instance in noSuchMethod
// forwarders) have no offset. // forwarders) have no offset.
@ -435,7 +435,7 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitNullLiteral(NullLiteral node) { void visitNullLiteral(NullLiteral node) {
// Synthetic null literals, for instance in locals and fields without // Synthetic null literals, for instance in locals and fields without
// initializers, have no offset. // initializers, have no offset.
computeForNode( computeForNode(
@ -444,13 +444,13 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitBoolLiteral(BoolLiteral node) { void visitBoolLiteral(BoolLiteral node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitBoolLiteral(node); super.visitBoolLiteral(node);
} }
@override @override
visitIntLiteral(IntLiteral node) { void visitIntLiteral(IntLiteral node) {
// Synthetic ints literals, for instance in enum fields, have no offset. // Synthetic ints literals, for instance in enum fields, have no offset.
computeForNode( computeForNode(
node, computeDefaultNodeId(node, skipNodeWithNoOffset: true)); node, computeDefaultNodeId(node, skipNodeWithNoOffset: true));
@ -458,13 +458,13 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitDoubleLiteral(DoubleLiteral node) { void visitDoubleLiteral(DoubleLiteral node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitDoubleLiteral(node); super.visitDoubleLiteral(node);
} }
@override @override
visitStringLiteral(StringLiteral node) { void visitStringLiteral(StringLiteral node) {
// Synthetic string literals, for instance in enum fields, have no offset. // Synthetic string literals, for instance in enum fields, have no offset.
computeForNode( computeForNode(
node, computeDefaultNodeId(node, skipNodeWithNoOffset: true)); node, computeDefaultNodeId(node, skipNodeWithNoOffset: true));
@ -472,7 +472,7 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitListLiteral(ListLiteral node) { void visitListLiteral(ListLiteral node) {
// Synthetic list literals,for instance in noSuchMethod forwarders, have no // Synthetic list literals,for instance in noSuchMethod forwarders, have no
// offset. // offset.
computeForNode( computeForNode(
@ -481,7 +481,7 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitMapLiteral(MapLiteral node) { void visitMapLiteral(MapLiteral node) {
// Synthetic map literals, for instance in noSuchMethod forwarders, have no // Synthetic map literals, for instance in noSuchMethod forwarders, have no
// offset. // offset.
computeForNode( computeForNode(
@ -490,13 +490,13 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitSetLiteral(SetLiteral node) { void visitSetLiteral(SetLiteral node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitSetLiteral(node); super.visitSetLiteral(node);
} }
@override @override
visitThisExpression(ThisExpression node) { void visitThisExpression(ThisExpression node) {
TreeNode parent = node.parent!; TreeNode parent = node.parent!;
if (node.fileOffset == TreeNode.noOffset || if (node.fileOffset == TreeNode.noOffset ||
(parent is InstanceGet || (parent is InstanceGet ||
@ -511,13 +511,13 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitAwaitExpression(AwaitExpression node) { void visitAwaitExpression(AwaitExpression node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitAwaitExpression(node); super.visitAwaitExpression(node);
} }
@override @override
visitConstructorInvocation(ConstructorInvocation node) { void visitConstructorInvocation(ConstructorInvocation node) {
// Skip synthetic constructor invocations like for enum constants. // Skip synthetic constructor invocations like for enum constants.
// TODO(johnniwinther): Can [skipNodeWithNoOffset] be removed when dart2js // TODO(johnniwinther): Can [skipNodeWithNoOffset] be removed when dart2js
// no longer test with cfe constants? // no longer test with cfe constants?
@ -527,43 +527,43 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitStaticGet(StaticGet node) { void visitStaticGet(StaticGet node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitStaticGet(node); super.visitStaticGet(node);
} }
@override @override
visitStaticTearOff(StaticTearOff node) { void visitStaticTearOff(StaticTearOff node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitStaticTearOff(node); super.visitStaticTearOff(node);
} }
@override @override
visitStaticSet(StaticSet node) { void visitStaticSet(StaticSet node) {
computeForNode(node, createUpdateId(node)); computeForNode(node, createUpdateId(node));
super.visitStaticSet(node); super.visitStaticSet(node);
} }
@override @override
visitStaticInvocation(StaticInvocation node) { void visitStaticInvocation(StaticInvocation node) {
computeForNode(node, createInvokeId(node)); computeForNode(node, createInvokeId(node));
super.visitStaticInvocation(node); super.visitStaticInvocation(node);
} }
@override @override
visitThrow(Throw node) { void visitThrow(Throw node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitThrow(node); super.visitThrow(node);
} }
@override @override
visitRethrow(Rethrow node) { void visitRethrow(Rethrow node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
super.visitRethrow(node); super.visitRethrow(node);
} }
@override @override
visitAsExpression(AsExpression node) { void visitAsExpression(AsExpression node) {
if (node.isTypeError) { if (node.isTypeError) {
computeForNode(node, createImplicitAsId(node)); computeForNode(node, createImplicitAsId(node));
} else { } else {
@ -573,33 +573,33 @@ abstract class DataExtractor<T> extends Visitor<void>
} }
@override @override
visitArguments(Arguments node) { void visitArguments(Arguments node) {
computeForNode( computeForNode(
node, computeDefaultNodeId(node, skipNodeWithNoOffset: true)); node, computeDefaultNodeId(node, skipNodeWithNoOffset: true));
return super.visitArguments(node); return super.visitArguments(node);
} }
@override @override
visitBlock(Block node) { void visitBlock(Block node) {
computeForNode( computeForNode(
node, computeDefaultNodeId(node, skipNodeWithNoOffset: true)); node, computeDefaultNodeId(node, skipNodeWithNoOffset: true));
return super.visitBlock(node); return super.visitBlock(node);
} }
@override @override
visitConditionalExpression(ConditionalExpression node) { void visitConditionalExpression(ConditionalExpression node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
return super.visitConditionalExpression(node); return super.visitConditionalExpression(node);
} }
@override @override
visitLogicalExpression(LogicalExpression node) { void visitLogicalExpression(LogicalExpression node) {
computeForNode(node, computeDefaultNodeId(node)); computeForNode(node, computeDefaultNodeId(node));
return super.visitLogicalExpression(node); return super.visitLogicalExpression(node);
} }
@override @override
visitInvalidExpression(InvalidExpression node) { void visitInvalidExpression(InvalidExpression node) {
// Invalid expressions produced in the constant evaluator don't have a // Invalid expressions produced in the constant evaluator don't have a
// file offset. // file offset.
computeForNode( computeForNode(

View file

@ -6,7 +6,7 @@ name: front_end
publish_to: none publish_to: none
environment: environment:
sdk: '>=2.12.0 <3.0.0' sdk: '>=2.13.0 <3.0.0'
dependencies: dependencies:
_fe_analyzer_shared: _fe_analyzer_shared:

View file

@ -10,7 +10,7 @@ import 'package:kernel/class_hierarchy.dart';
import 'incremental_suite.dart' as helper; import 'incremental_suite.dart' as helper;
main(List<String> args) async { void main(List<String> args) async {
exitCode = 1; exitCode = 1;
Map<Uri, List<Class>> classMap = {}; Map<Uri, List<Class>> classMap = {};
Map<Uri, List<Class>> classMapWithOne = {}; Map<Uri, List<Class>> classMapWithOne = {};
@ -24,11 +24,8 @@ main(List<String> args) async {
Uri input = Platform.script.resolve("../tool/_fasta/compile.dart"); Uri input = Platform.script.resolve("../tool/_fasta/compile.dart");
CompilerOptions options = helper.getOptions(); CompilerOptions options = helper.getOptions();
helper.TestIncrementalCompiler compiler = helper.TestIncrementalCompiler compiler =
new helper.TestIncrementalCompiler( new helper.TestIncrementalCompiler(options, input,
options, /*Uri initializeFrom*/ null, /*bool outlineOnly*/ true);
input,
/*Uri initializeFrom*/ null,
/*bool outlineOnly*/ true);
c = await compiler.computeDelta(); c = await compiler.computeDelta();
classHierarchy = compiler.getClassHierarchy()!; classHierarchy = compiler.getClassHierarchy()!;
List<Library> libraries = c.libraries List<Library> libraries = c.libraries

View file

@ -167,7 +167,7 @@ class BinaryMdDillReader {
/// Initial setup of a "class definition" in the binary.md file. /// Initial setup of a "class definition" in the binary.md file.
/// This includes parsing the name, setting up any "extends"-relationship, /// This includes parsing the name, setting up any "extends"-relationship,
/// generics etc. /// generics etc.
_binaryMdHandlePossibleClassStart(String s) { void _binaryMdHandlePossibleClassStart(String s) {
if (s.startsWith("type Byte =")) return; if (s.startsWith("type Byte =")) return;
if (s.startsWith("type UInt32 =")) return; if (s.startsWith("type UInt32 =")) return;

View file

@ -29,7 +29,7 @@ final RegExp tagParser = new RegExp(r"V\((\w*),\s*(\d+)\)");
// Match stuff like "kNullConstant = 0," // Match stuff like "kNullConstant = 0,"
final RegExp constantTagParser = new RegExp(r"k(\w*)\s*=\s*(\d+)"); final RegExp constantTagParser = new RegExp(r"k(\w*)\s*=\s*(\d+)");
main() async { void main() async {
File binaryMd = new File("$repoDir/pkg/kernel/binary.md"); File binaryMd = new File("$repoDir/pkg/kernel/binary.md");
String binaryMdContent = binaryMd.readAsStringSync(); String binaryMdContent = binaryMd.readAsStringSync();

View file

@ -13,7 +13,7 @@ import 'package:front_end/src/fasta/kernel/class_hierarchy_builder.dart';
import 'package:front_end/src/testing/id_extractor.dart'; import 'package:front_end/src/testing/id_extractor.dart';
import 'package:kernel/ast.dart'; import 'package:kernel/ast.dart';
main(List<String> args) async { void main(List<String> args) async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data')); Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
await runTests<Features>(dataDir, await runTests<Features>(dataDir,
args: args, args: args,

View file

@ -22,7 +22,7 @@ import "simple_stats.dart";
final Uri benchmarkHelper = final Uri benchmarkHelper =
Platform.script.resolve("compile_benchmark_helper.dart"); Platform.script.resolve("compile_benchmark_helper.dart");
main(List<String> args) { void main(List<String> args) {
List<String> arguments; List<String> arguments;
bool tryToAnnotate = false; bool tryToAnnotate = false;
bool tryToSlowDown = false; bool tryToSlowDown = false;
@ -363,7 +363,7 @@ class RegisterCallTransformer extends RecursiveVisitor {
List<Procedure> procedures = []; List<Procedure> procedures = [];
@override @override
visitLibrary(Library node) { void visitLibrary(Library node) {
if (node.importUri.scheme == "package" && if (node.importUri.scheme == "package" &&
node.importUri.pathSegments.first == "front_end") { node.importUri.pathSegments.first == "front_end") {
super.visitLibrary(node); super.visitLibrary(node);
@ -371,7 +371,7 @@ class RegisterCallTransformer extends RecursiveVisitor {
} }
@override @override
visitProcedure(Procedure node) { void visitProcedure(Procedure node) {
if (node.function.body == null) return; if (node.function.body == null) return;
int procedureNum = procedures.length; int procedureNum = procedures.length;
procedures.add(node); procedures.add(node);
@ -395,7 +395,7 @@ class RegisterTimeTransformer extends RecursiveVisitor {
List<Procedure> procedures = []; List<Procedure> procedures = [];
@override @override
visitLibrary(Library node) { void visitLibrary(Library node) {
if (node.importUri.scheme == "package" && if (node.importUri.scheme == "package" &&
node.importUri.pathSegments.first == "front_end") { node.importUri.pathSegments.first == "front_end") {
super.visitLibrary(node); super.visitLibrary(node);
@ -403,7 +403,7 @@ class RegisterTimeTransformer extends RecursiveVisitor {
} }
@override @override
visitProcedure(Procedure node) { void visitProcedure(Procedure node) {
if (node.function.body == null) return; if (node.function.body == null) return;
if (node.function.dartAsyncMarker != AsyncMarker.Sync) return; if (node.function.dartAsyncMarker != AsyncMarker.Sync) return;
int procedureNum = procedures.length; int procedureNum = procedures.length;

View file

@ -4,7 +4,7 @@
import '../tool/_fasta/entry_points.dart' show compileEntryPoint; import '../tool/_fasta/entry_points.dart' show compileEntryPoint;
main(List<String> arguments) async { void main(List<String> arguments) async {
await compileEntryPoint(arguments); await compileEntryPoint(arguments);
if (numCalls.isNotEmpty) { if (numCalls.isNotEmpty) {
print("["); print("[");

View file

@ -6,7 +6,7 @@ import 'package:front_end/src/api_prototype/compiler_options.dart';
import 'incremental_suite.dart' show TestIncrementalCompiler, getOptions; import 'incremental_suite.dart' show TestIncrementalCompiler, getOptions;
main() async { void main() async {
final Uri dart2jsUrl = Uri.base.resolve("pkg/compiler/bin/dart2js.dart"); final Uri dart2jsUrl = Uri.base.resolve("pkg/compiler/bin/dart2js.dart");
CompilerOptions options = getOptions(); CompilerOptions options = getOptions();
options.sdkSummary = options.sdkSummary!.resolve("nonexisting.dill"); options.sdkSummary = options.sdkSummary!.resolve("nonexisting.dill");

View file

@ -7,7 +7,7 @@ import 'package:front_end/src/api_prototype/memory_file_system.dart';
import 'incremental_suite.dart' show TestIncrementalCompiler, getOptions; import 'incremental_suite.dart' show TestIncrementalCompiler, getOptions;
main() async { void main() async {
await compile("import 'foo.dart' if (dart.library.bar) 'baz.dart';"); await compile("import 'foo.dart' if (dart.library.bar) 'baz.dart';");
} }

View file

@ -130,7 +130,7 @@ class SilentErrorReporter implements constants.ErrorReporter {
late IncrementalCompiler incrementalCompiler; late IncrementalCompiler incrementalCompiler;
main(List<String> arguments) async { void main(List<String> arguments) async {
Uri? platformUri; Uri? platformUri;
Uri mainUri; Uri mainUri;
bool nnbd = false; bool nnbd = false;

View file

@ -11,7 +11,7 @@ import 'package:front_end/src/testing/id_testing_helper.dart';
import 'package:front_end/src/testing/id_testing_utils.dart'; import 'package:front_end/src/testing/id_testing_utils.dart';
import 'package:kernel/ast.dart'; import 'package:kernel/ast.dart';
main(List<String> args) async { void main(List<String> args) async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data')); Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
await runTests<String>(dataDir, await runTests<String>(dataDir,
args: args, args: args,

View file

@ -19,7 +19,7 @@ import 'crashing_test_case_minimizer_impl.dart';
// TODO(jensj): Add asserts or similar where - after each rewrite - we run the // TODO(jensj): Add asserts or similar where - after each rewrite - we run the
// parser on it and verifies that no syntax errors have been introduced. // parser on it and verifies that no syntax errors have been introduced.
main(List<String> arguments) async { void main(List<String> arguments) async {
String filename; String filename;
Uri loadJson; Uri loadJson;
for (String arg in arguments) { for (String arg in arguments) {

View file

@ -132,7 +132,7 @@ class TestMinimizerSettings {
}; };
} }
initializeFromJson(Map<String, dynamic> json) { void initializeFromJson(Map<String, dynamic> json) {
mainUri = Uri.parse(json["mainUri"]); mainUri = Uri.parse(json["mainUri"]);
platformUri = Uri.parse(json["platformUri"]); platformUri = Uri.parse(json["platformUri"]);
noPlatform = json["noPlatform"]; noPlatform = json["noPlatform"];
@ -2109,7 +2109,7 @@ class _FakeFileSystem extends FileSystem {
return new _FakeFileSystemEntity(this, uri); return new _FakeFileSystemEntity(this, uri);
} }
initializeFromJson(Map<String, dynamic> json) { void initializeFromJson(Map<String, dynamic> json) {
_initialized = true; _initialized = true;
_redirectAndRecord = json['_redirectAndRecord']; _redirectAndRecord = json['_redirectAndRecord'];
data.clear(); data.clear();

View file

@ -9,7 +9,7 @@ import 'package:front_end/src/fasta/hybrid_file_system.dart';
import "../tool/dart_doctest_impl.dart" as impl; import "../tool/dart_doctest_impl.dart" as impl;
main() async { void main() async {
expectCategory = "comment extraction"; expectCategory = "comment extraction";
testCommentExtraction(); testCommentExtraction();

View file

@ -9,7 +9,7 @@ import 'package:testing/testing.dart'
import '../tool/dart_doctest_impl.dart'; import '../tool/dart_doctest_impl.dart';
main([List<String> arguments = const []]) => void main([List<String> arguments = const []]) =>
runMe(arguments, createContext, configurationPath: "../testing.json"); runMe(arguments, createContext, configurationPath: "../testing.json");
Future<Context> createContext( Future<Context> createContext(

View file

@ -23,7 +23,7 @@ import 'package:front_end/src/testing/compiler_common.dart';
import 'package:kernel/ast.dart' as ir; import 'package:kernel/ast.dart' as ir;
import 'package:kernel/binary/ast_from_binary.dart' show BinaryBuilder; import 'package:kernel/binary/ast_from_binary.dart' show BinaryBuilder;
main() async { void main() async {
await asyncTest(() async { await asyncTest(() async {
await testRedirectingFactoryDirect(); await testRedirectingFactoryDirect();
await testRedirectingFactorySerialized(); await testRedirectingFactorySerialized();
@ -32,13 +32,13 @@ main() async {
}); });
} }
testRedirectingFactoryDirect() async { Future<void> testRedirectingFactoryDirect() async {
var component = await compileUnit(['a.dart'], {'a.dart': aSource}); var component = await compileUnit(['a.dart'], {'a.dart': aSource});
checkIsRedirectingFactory(component, 'a.dart', 'A', 'foo'); checkIsRedirectingFactory(component, 'a.dart', 'A', 'foo');
checkIsRedirectingFactory(component, 'core', 'Uri', 'file'); checkIsRedirectingFactory(component, 'core', 'Uri', 'file');
} }
testRedirectingFactorySerialized() async { Future<void> testRedirectingFactorySerialized() async {
var component = await compileUnit(['a.dart'], {'a.dart': aSource}); var component = await compileUnit(['a.dart'], {'a.dart': aSource});
var bytes = serializeComponent(component); var bytes = serializeComponent(component);
component = new ir.Component(); component = new ir.Component();
@ -49,7 +49,7 @@ testRedirectingFactorySerialized() async {
// regression test: redirecting factories from patch files don't have the // regression test: redirecting factories from patch files don't have the
// redirecting-factory flag stored in kernel. // redirecting-factory flag stored in kernel.
testRedirectingFactoryPatchFile() async { Future<void> testRedirectingFactoryPatchFile() async {
var componentUri = var componentUri =
computePlatformBinariesLocation().resolve('dart2js_platform.dill'); computePlatformBinariesLocation().resolve('dart2js_platform.dill');
var component = new ir.Component(); var component = new ir.Component();
@ -81,7 +81,7 @@ class _B implements A {
} }
'''; ''';
testExtensionMemberKind() async { Future<void> testExtensionMemberKind() async {
var component = await compileUnit(['e.dart'], {'e.dart': extensionSource}); var component = await compileUnit(['e.dart'], {'e.dart': extensionSource});
var library = component.libraries var library = component.libraries
.firstWhere((l) => l.importUri.path.endsWith('e.dart')); .firstWhere((l) => l.importUri.path.endsWith('e.dart'));

View file

@ -15,7 +15,7 @@ import 'package:kernel/target/targets.dart' show NoneTarget, TargetFlags;
import 'incremental_suite.dart' import 'incremental_suite.dart'
show checkIsEqual, getOptions, normalCompilePlain; show checkIsEqual, getOptions, normalCompilePlain;
main() async { void main() async {
final Uri dart2jsUrl = Uri.base.resolve("pkg/compiler/bin/dart2js.dart"); final Uri dart2jsUrl = Uri.base.resolve("pkg/compiler/bin/dart2js.dart");
Stopwatch stopwatch = new Stopwatch()..start(); Stopwatch stopwatch = new Stopwatch()..start();
Component compiledComponent = await normalCompilePlain(dart2jsUrl, Component compiledComponent = await normalCompilePlain(dart2jsUrl,

View file

@ -20,7 +20,7 @@ const Version experimentReleaseVersion = const Version(2, 9);
/// The version used in this test as the experiment enabled version. /// The version used in this test as the experiment enabled version.
const Version experimentEnabledVersion = const Version(2, 10); const Version experimentEnabledVersion = const Version(2, 10);
main() async { void main() async {
print('--------------------------------------------------------------------'); print('--------------------------------------------------------------------');
print('Test off-by-default with command-line flag'); print('Test off-by-default with command-line flag');
print('--------------------------------------------------------------------'); print('--------------------------------------------------------------------');
@ -58,7 +58,7 @@ main() async {
versionOptsInAllowed: experimentReleaseVersion); versionOptsInAllowed: experimentReleaseVersion);
} }
test( void test(
{bool enableNonNullableByDefault, {bool enableNonNullableByDefault,
bool enableNonNullableExplicitly, bool enableNonNullableExplicitly,
Version versionImpliesOptIn, Version versionImpliesOptIn,

View file

@ -23,7 +23,7 @@ import 'package:front_end/src/testing/id_testing_helper.dart';
import 'package:front_end/src/testing/id_testing_utils.dart'; import 'package:front_end/src/testing/id_testing_utils.dart';
import 'package:kernel/ast.dart'; import 'package:kernel/ast.dart';
main(List<String> args) async { void main(List<String> args) async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data')); Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
await runTests<Features>(dataDir, await runTests<Features>(dataDir,
args: args, args: args,

View file

@ -20,7 +20,7 @@ import 'package:front_end/src/fasta/dill/dill_target.dart' show DillTarget;
import 'package:kernel/ast.dart' import 'package:kernel/ast.dart'
show Field, Library, Name, Component, StringLiteral; show Field, Library, Name, Component, StringLiteral;
main() async { void main() async {
await asyncTest(() async { await asyncTest(() async {
Uri uri = Uri.parse("org.dartlang.fasta:library"); Uri uri = Uri.parse("org.dartlang.fasta:library");
Library library = new Library(uri, fileUri: uri); Library library = new Library(uri, fileUri: uri);

View file

@ -8,7 +8,7 @@ import 'dart:io' show exitCode;
import "package:testing/src/run_tests.dart" as testing show main; import "package:testing/src/run_tests.dart" as testing show main;
main() async { void main() async {
// This method is async, but keeps a port open to prevent the VM from exiting // This method is async, but keeps a port open to prevent the VM from exiting
// prematurely. // prematurely.
// Note: if you change this file, also change // Note: if you change this file, also change

View file

@ -8,7 +8,7 @@ import 'dart:io' show exitCode;
import "package:testing/src/run_tests.dart" as testing show main; import "package:testing/src/run_tests.dart" as testing show main;
main() async { void main() async {
await testing.main(<String>[ await testing.main(<String>[
"--config=pkg/front_end/testing_with_lints.json", "--config=pkg/front_end/testing_with_lints.json",
"--verbose", "--verbose",

View file

@ -115,7 +115,7 @@ class VerifyingVisitor extends RecursiveVisitor {
VerifyingVisitor(this.test); VerifyingVisitor(this.test);
@override @override
visitProcedure(Procedure node) { void visitProcedure(Procedure node) {
expectedSpan = test.spans[node.name.text]; expectedSpan = test.spans[node.name.text];
if (expectedSpan != null) { if (expectedSpan != null) {
super.visitProcedure(node); super.visitProcedure(node);
@ -125,7 +125,7 @@ class VerifyingVisitor extends RecursiveVisitor {
} }
@override @override
visitAssertStatement(AssertStatement node) { void visitAssertStatement(AssertStatement node) {
Expect.equals(expectedSpan.startOffset, node.conditionStartOffset); Expect.equals(expectedSpan.startOffset, node.conditionStartOffset);
Expect.equals(expectedSpan.endOffset, node.conditionEndOffset); Expect.equals(expectedSpan.endOffset, node.conditionEndOffset);
} }

View file

@ -107,5 +107,5 @@ class ComparisonFailed {
ComparisonFailed(this.a, this.b); ComparisonFailed(this.a, this.b);
@override @override
toString() => "Error: $a is different from $b"; String toString() => "Error: $a is different from $b";
} }

View file

@ -439,5 +439,5 @@ Future<Context> createContext(
return new Context(compilerContext, errors, updateExpectations); return new Context(compilerContext, errors, updateExpectations);
} }
main([List<String> arguments = const []]) => void main([List<String> arguments = const []]) =>
runMe(arguments, createContext, configurationPath: "../../testing.json"); runMe(arguments, createContext, configurationPath: "../../testing.json");

View file

@ -66,7 +66,7 @@ void check(String expected, Object generator) {
Expect.stringEquals(expected, "$generator"); Expect.stringEquals(expected, "$generator");
} }
main() async { void main() async {
await CompilerContext.runWithDefaultOptions((CompilerContext c) async { await CompilerContext.runWithDefaultOptions((CompilerContext c) async {
Token token = scanString(" myToken").tokens; Token token = scanString(" myToken").tokens;
Uri uri = Uri.parse("org-dartlang-test:my_library.dart"); Uri uri = Uri.parse("org-dartlang-test:my_library.dart");

View file

@ -244,5 +244,5 @@ Future<Context> createContext(
return new Context(new CompilerContext(options), errors); return new Context(new CompilerContext(options), errors);
} }
main([List<String> arguments = const []]) => void main([List<String> arguments = const []]) =>
runMe(arguments, createContext, configurationPath: "../../testing.json"); runMe(arguments, createContext, configurationPath: "../../testing.json");

View file

@ -41,7 +41,7 @@ class IncrementalExpectation {
hasCompileTimeError: extractHasCompileTimeError(data)); hasCompileTimeError: extractHasCompileTimeError(data));
} }
toJson() { dynamic toJson() {
if (!commitChangesShouldFail && !hasCompileTimeError) { if (!commitChangesShouldFail && !hasCompileTimeError) {
return messages.length == 1 ? messages.first : messages; return messages.length == 1 ? messages.first : messages;
} }

View file

@ -34,7 +34,7 @@ void diagnosticMessageHandler(DiagnosticMessage message) {
throw "Unexpected message: ${message.plainTextFormatted.join('\n')}"; throw "Unexpected message: ${message.plainTextFormatted.join('\n')}";
} }
test({bool sdkFromSource}) async { Future<void> test({bool sdkFromSource}) async {
final CompilerOptions optionBuilder = new CompilerOptions() final CompilerOptions optionBuilder = new CompilerOptions()
..packagesFileUri = Uri.base.resolve(".packages") ..packagesFileUri = Uri.base.resolve(".packages")
..target = new VmTarget(new TargetFlags()) ..target = new VmTarget(new TargetFlags())

View file

@ -8,12 +8,14 @@ import 'package:_fe_analyzer_shared/src/util/link.dart' show Link, LinkBuilder;
import 'package:expect/expect.dart' show Expect; import 'package:expect/expect.dart' show Expect;
main() { void main() {
Link<String> strings = const Link<String>().prepend("B").prepend("A"); Link<String> strings = const Link<String>().prepend("B").prepend("A");
Expect.stringEquals("[ A, B ]", "${strings}"); Expect.stringEquals("[ A, B ]", "${strings}");
Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}"); Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}");
strings = (new LinkBuilder<String>()..addLast("A")..addLast("B")) strings = (new LinkBuilder<String>()
..addLast("A")
..addLast("B"))
.toLink(const Link<String>()); .toLink(const Link<String>());
Expect.stringEquals("[ A, B ]", "${strings}"); Expect.stringEquals("[ A, B ]", "${strings}");
@ -34,7 +36,9 @@ main() {
Expect.stringEquals("[ A, B ]", "${strings}"); Expect.stringEquals("[ A, B ]", "${strings}");
Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}"); Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}");
strings = (new LinkBuilder<String>()..addLast("A")..addLast("B")) strings = (new LinkBuilder<String>()
..addLast("A")
..addLast("B"))
.toLink(const Link<String>()); .toLink(const Link<String>());
Expect.stringEquals("[ A, B ]", "${strings}"); Expect.stringEquals("[ A, B ]", "${strings}");

View file

@ -876,5 +876,5 @@ class Script {
} }
} }
main([List<String> arguments = const []]) => void main([List<String> arguments = const []]) =>
runMe(arguments, createContext, configurationPath: "../../testing.json"); runMe(arguments, createContext, configurationPath: "../../testing.json");

View file

@ -75,12 +75,12 @@ Future<List<DiagnosticMessage>> outline(String objectHeader) async {
return messages; return messages;
} }
test() async { Future<void> test() async {
Set<String> normalErrors = (await outline("class Object {")) Set<String> normalErrors = (await outline("class Object {"))
.map((DiagnosticMessage message) => getMessageCodeObject(message).name) .map((DiagnosticMessage message) => getMessageCodeObject(message).name)
.toSet(); .toSet();
check(String objectHeader, List<Code> expectedCodes) async { void check(String objectHeader, List<Code> expectedCodes) async {
List<DiagnosticMessage> messages = (await outline(objectHeader)) List<DiagnosticMessage> messages = (await outline(objectHeader))
.where((DiagnosticMessage message) => .where((DiagnosticMessage message) =>
!normalErrors.contains(getMessageCodeObject(message).name)) !normalErrors.contains(getMessageCodeObject(message).name))
@ -100,6 +100,6 @@ test() async {
<Code>[codeObjectExtends, codeObjectMixesIn]); <Code>[codeObjectExtends, codeObjectMixesIn]);
} }
main() { void main() {
asyncTest(test); asyncTest(test);
} }

View file

@ -13,5 +13,5 @@ Future<FastaContext> createContext(
return FastaContext.create(suite, environment); return FastaContext.create(suite, environment);
} }
main([List<String> arguments = const []]) => void main([List<String> arguments = const []]) =>
runMe(arguments, createContext, configurationPath: "../../testing.json"); runMe(arguments, createContext, configurationPath: "../../testing.json");

View file

@ -12,7 +12,7 @@ import 'package:front_end/src/fasta/source/diet_parser.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(CollectionElementTest); defineReflectiveTests(CollectionElementTest);
defineReflectiveTests(MapElementTest); defineReflectiveTests(MapElementTest);
@ -21,7 +21,7 @@ main() {
@reflectiveTest @reflectiveTest
class CollectionElementTest { class CollectionElementTest {
test_closingBrace() { void test_closingBrace() {
parseEntry( parseEntry(
'[ }', '[ }',
[ [
@ -36,7 +36,7 @@ class CollectionElementTest {
); );
} }
test_comma() { void test_comma() {
parseEntry( parseEntry(
'[ ,', '[ ,',
[ [
@ -50,7 +50,7 @@ class CollectionElementTest {
); );
} }
test_expression() { void test_expression() {
parseEntry( parseEntry(
'[ x', '[ x',
[ [
@ -63,7 +63,7 @@ class CollectionElementTest {
); );
} }
test_for() { void test_for() {
parseEntry( parseEntry(
'[ for (var i = 0; i < 10; ++i) 2', '[ for (var i = 0; i < 10; ++i) 2',
[ [
@ -101,7 +101,7 @@ class CollectionElementTest {
); );
} }
test_forForFor() { void test_forForFor() {
parseEntry( parseEntry(
'[ for (var i = 0; i < 10; ++i) for (x in y) for (var a in [6]) 2', '[ for (var i = 0; i < 10; ++i) for (x in y) for (var a in [6]) 2',
[ [
@ -178,7 +178,7 @@ class CollectionElementTest {
); );
} }
test_forIfForElse() { void test_forIfForElse() {
parseEntry( parseEntry(
'[ await for (var x in y) if (a) for (b in c) 2 else 7', '[ await for (var x in y) if (a) for (b in c) 2 else 7',
[ [
@ -241,7 +241,7 @@ class CollectionElementTest {
); );
} }
test_forIn() { void test_forIn() {
parseEntry( parseEntry(
'[ await for (var x in y) 2', '[ await for (var x in y) 2',
[ [
@ -271,7 +271,7 @@ class CollectionElementTest {
); );
} }
test_forInSpread() { void test_forInSpread() {
parseEntry( parseEntry(
'[ for (var x in y) ...[2]', '[ for (var x in y) ...[2]',
[ [
@ -303,7 +303,7 @@ class CollectionElementTest {
); );
} }
test_forSpreadQ() { void test_forSpreadQ() {
parseEntry( parseEntry(
'[ for (i = 0; i < 10; ++i) ...[2]', '[ for (i = 0; i < 10; ++i) ...[2]',
[ [
@ -339,7 +339,7 @@ class CollectionElementTest {
); );
} }
test_if() { void test_if() {
parseEntry( parseEntry(
'[ if (true) 2', '[ if (true) 2',
[ [
@ -354,7 +354,7 @@ class CollectionElementTest {
); );
} }
test_ifElse() { void test_ifElse() {
parseEntry( parseEntry(
'[ if (true) 2 else 5', '[ if (true) 2 else 5',
[ [
@ -371,7 +371,7 @@ class CollectionElementTest {
); );
} }
test_ifFor() { void test_ifFor() {
parseEntry( parseEntry(
'[ if (true) for (x in y) 2', '[ if (true) for (x in y) 2',
[ [
@ -405,7 +405,7 @@ class CollectionElementTest {
); );
} }
test_ifForElseIfFor() { void test_ifForElseIfFor() {
parseEntry( parseEntry(
'[ if (true) for (a in b) 2 else if (c) for (d in e) 5', '[ if (true) for (a in b) 2 else if (c) for (d in e) 5',
[ [
@ -469,7 +469,7 @@ class CollectionElementTest {
); );
} }
test_ifSpreadQ() { void test_ifSpreadQ() {
parseEntry( parseEntry(
'[ if (true) ...?[2]', '[ if (true) ...?[2]',
[ [
@ -487,7 +487,7 @@ class CollectionElementTest {
); );
} }
test_ifElseSpreadQ() { void test_ifElseSpreadQ() {
parseEntry( parseEntry(
'[ if (true) ...?[2] else ... const {5}', '[ if (true) ...?[2] else ... const {5}',
[ [
@ -512,14 +512,14 @@ class CollectionElementTest {
); );
} }
test_intLiteral() { void test_intLiteral() {
parseEntry('[ 1', [ parseEntry('[ 1', [
'handleLiteralInt 1', 'handleLiteralInt 1',
'handleLiteralList 1, [, null, ]', 'handleLiteralList 1, [, null, ]',
]); ]);
} }
test_spread() { void test_spread() {
parseEntry('[ ...[1]', [ parseEntry('[ ...[1]', [
'handleNoTypeArguments [', 'handleNoTypeArguments [',
'handleLiteralInt 1', 'handleLiteralInt 1',
@ -529,7 +529,7 @@ class CollectionElementTest {
]); ]);
} }
test_spreadQ() { void test_spreadQ() {
parseEntry('[ ...?[1]', [ parseEntry('[ ...?[1]', [
'handleNoTypeArguments [', 'handleNoTypeArguments [',
'handleLiteralInt 1', 'handleLiteralInt 1',
@ -565,7 +565,7 @@ class CollectionElementTest {
@reflectiveTest @reflectiveTest
class MapElementTest { class MapElementTest {
test_closingBrace() { void test_closingBrace() {
parseEntry( parseEntry(
'before }', 'before }',
[ [
@ -588,7 +588,7 @@ class MapElementTest {
); );
} }
test_comma() { void test_comma() {
parseEntry( parseEntry(
'before ,', 'before ,',
[ [
@ -611,7 +611,7 @@ class MapElementTest {
); );
} }
test_expression() { void test_expression() {
parseEntry( parseEntry(
'before x:y', 'before x:y',
[ [
@ -628,7 +628,7 @@ class MapElementTest {
); );
} }
test_for() { void test_for() {
parseEntry( parseEntry(
'before for (var i = 0; i < 10; ++i) 2:3', 'before for (var i = 0; i < 10; ++i) 2:3',
[ [
@ -667,7 +667,7 @@ class MapElementTest {
); );
} }
test_forIn() { void test_forIn() {
parseEntry( parseEntry(
'before await for (var x in y) 2:3', 'before await for (var x in y) 2:3',
[ [
@ -698,7 +698,7 @@ class MapElementTest {
); );
} }
test_forInSpread() { void test_forInSpread() {
parseEntry( parseEntry(
'before for (var x in y) ...{2:3}', 'before for (var x in y) ...{2:3}',
[ [
@ -731,7 +731,7 @@ class MapElementTest {
); );
} }
test_forSpreadQ() { void test_forSpreadQ() {
parseEntry( parseEntry(
'before for (i = 0; i < 10; ++i) ...?{2:7}', 'before for (i = 0; i < 10; ++i) ...?{2:7}',
[ [
@ -768,7 +768,7 @@ class MapElementTest {
); );
} }
test_if() { void test_if() {
parseEntry( parseEntry(
'before if (true) 2:3', 'before if (true) 2:3',
[ [
@ -784,7 +784,7 @@ class MapElementTest {
); );
} }
test_ifSpread() { void test_ifSpread() {
parseEntry( parseEntry(
'before if (true) ...{2:3}', 'before if (true) ...{2:3}',
[ [
@ -803,7 +803,7 @@ class MapElementTest {
); );
} }
test_intLiteral() { void test_intLiteral() {
parseEntry('before 1:2', [ parseEntry('before 1:2', [
'handleLiteralInt 1', 'handleLiteralInt 1',
'handleLiteralInt 2', 'handleLiteralInt 2',
@ -811,7 +811,7 @@ class MapElementTest {
]); ]);
} }
test_spread() { void test_spread() {
parseEntry('before ...const {1:2}', [ parseEntry('before ...const {1:2}', [
'beginConstLiteral {', 'beginConstLiteral {',
'handleNoTypeArguments {', 'handleNoTypeArguments {',
@ -824,7 +824,7 @@ class MapElementTest {
]); ]);
} }
test_spreadQ() { void test_spreadQ() {
parseEntry('before ...?const {1:3}', [ parseEntry('before ...?const {1:3}', [
'beginConstLiteral {', 'beginConstLiteral {',
'handleNoTypeArguments {', 'handleNoTypeArguments {',
@ -1101,7 +1101,7 @@ class TestInfoListener implements Listener {
} }
@override @override
noSuchMethod(Invocation invocation) { dynamic noSuchMethod(Invocation invocation) {
throw '${invocation.memberName} should not be called.'; throw '${invocation.memberName} should not be called.';
} }
} }

View file

@ -46,5 +46,5 @@ class Parse extends Step<ScannedFile, Null, ChainContext> {
} }
} }
main(List<String> arguments) => void main(List<String> arguments) =>
runMe(arguments, createContext, configurationPath: "../../../testing.json"); runMe(arguments, createContext, configurationPath: "../../../testing.json");

View file

@ -13,7 +13,7 @@ import 'package:_fe_analyzer_shared/src/scanner/token_impl.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(TokenStreamRewriterTest_NoPrevious); defineReflectiveTests(TokenStreamRewriterTest_NoPrevious);
defineReflectiveTests(TokenStreamRewriterTest_UsingPrevious); defineReflectiveTests(TokenStreamRewriterTest_UsingPrevious);

View file

@ -15,7 +15,7 @@ import 'package:front_end/src/fasta/source/diet_parser.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(NoTypeInfoTest); defineReflectiveTests(NoTypeInfoTest);
defineReflectiveTests(PrefixedTypeInfoTest); defineReflectiveTests(PrefixedTypeInfoTest);
@ -304,7 +304,7 @@ class PrefixedTypeInfoTest {
expect(prefixedType.couldBeExpression, isTrue); expect(prefixedType.couldBeExpression, isTrue);
TypeInfoListener listener; TypeInfoListener listener;
assertResult(Token actualEnd) { void assertResult(Token actualEnd) {
expect(actualEnd, expectedEnd); expect(actualEnd, expectedEnd);
expect(listener.calls, [ expect(listener.calls, [
'handleIdentifier C prefixedTypeReference', 'handleIdentifier C prefixedTypeReference',
@ -380,7 +380,7 @@ class SimpleNullableTypeTest {
expect(simpleNullableType.couldBeExpression, isTrue); expect(simpleNullableType.couldBeExpression, isTrue);
TypeInfoListener listener; TypeInfoListener listener;
assertResult(Token actualEnd) { void assertResult(Token actualEnd) {
expect(actualEnd, expectedEnd); expect(actualEnd, expectedEnd);
expect(listener.calls, [ expect(listener.calls, [
'handleIdentifier C typeReference', 'handleIdentifier C typeReference',
@ -431,7 +431,7 @@ class SimpleNullableTypeWith1ArgumentTest {
expect(simpleNullableTypeWith1Argument.couldBeExpression, isFalse); expect(simpleNullableTypeWith1Argument.couldBeExpression, isFalse);
TypeInfoListener listener; TypeInfoListener listener;
assertResult(Token actualEnd) { void assertResult(Token actualEnd) {
expect(actualEnd, expectedEnd); expect(actualEnd, expectedEnd);
expect(listener.calls, [ expect(listener.calls, [
'handleIdentifier C typeReference', 'handleIdentifier C typeReference',
@ -501,7 +501,7 @@ class SimpleTypeTest {
expect(simpleType.couldBeExpression, isTrue); expect(simpleType.couldBeExpression, isTrue);
TypeInfoListener listener; TypeInfoListener listener;
assertResult(Token actualEnd) { void assertResult(Token actualEnd) {
expect(actualEnd, expectedEnd); expect(actualEnd, expectedEnd);
expect(listener.calls, [ expect(listener.calls, [
'handleIdentifier C typeReference', 'handleIdentifier C typeReference',
@ -575,7 +575,7 @@ class SimpleTypeWith1ArgumentTest {
expect(simpleTypeWith1Argument.couldBeExpression, isFalse); expect(simpleTypeWith1Argument.couldBeExpression, isFalse);
TypeInfoListener listener; TypeInfoListener listener;
assertResult(Token actualEnd) { void assertResult(Token actualEnd) {
expect(actualEnd, expectedEnd); expect(actualEnd, expectedEnd);
expect(listener.calls, [ expect(listener.calls, [
'handleIdentifier C typeReference', 'handleIdentifier C typeReference',
@ -619,7 +619,7 @@ class SimpleTypeWith1ArgumentTest {
expect(simpleTypeWith1ArgumentGtEq.couldBeExpression, isFalse); expect(simpleTypeWith1ArgumentGtEq.couldBeExpression, isFalse);
TypeInfoListener listener; TypeInfoListener listener;
assertResult(Token actualEnd) { void assertResult(Token actualEnd) {
expect(actualEnd.lexeme, '>'); expect(actualEnd.lexeme, '>');
expect(actualEnd.next.lexeme, '='); expect(actualEnd.next.lexeme, '=');
expect(actualEnd.next.next, semicolon); expect(actualEnd.next.next, semicolon);
@ -664,7 +664,7 @@ class SimpleTypeWith1ArgumentTest {
expect(simpleTypeWith1ArgumentGtGt.couldBeExpression, isFalse); expect(simpleTypeWith1ArgumentGtGt.couldBeExpression, isFalse);
TypeInfoListener listener; TypeInfoListener listener;
assertResult(Token actualEnd) { void assertResult(Token actualEnd) {
expect(actualEnd.lexeme, '>'); expect(actualEnd.lexeme, '>');
expect(actualEnd.next.lexeme, '>'); expect(actualEnd.next.lexeme, '>');
expect(actualEnd.next.next, semicolon); expect(actualEnd.next.next, semicolon);
@ -3019,11 +3019,11 @@ class TypeInfoListener implements Listener {
} }
@override @override
noSuchMethod(Invocation invocation) { dynamic noSuchMethod(Invocation invocation) {
throw '${invocation.memberName} should not be called.'; throw '${invocation.memberName} should not be called.';
} }
assertTokenInStream(Token match) { void assertTokenInStream(Token match) {
if (firstToken != null && match != null && !match.isEof) { if (firstToken != null && match != null && !match.isEof) {
Token token = firstToken; Token token = firstToken;
while (!token.isEof) { while (!token.isEof) {

View file

@ -11,7 +11,7 @@ import "package:front_end/src/testing/compiler_common.dart" show compileUnit;
import "package:front_end/src/api_prototype/front_end.dart" import "package:front_end/src/api_prototype/front_end.dart"
show CompilerOptions; show CompilerOptions;
main() { void main() {
asyncTest(() async { asyncTest(() async {
var sources = <String, dynamic>{ var sources = <String, dynamic>{
"a.dart": """ "a.dart": """

View file

@ -21,5 +21,5 @@ class ScannerContext extends ChainContext {
]; ];
} }
main(List<String> arguments) => void main(List<String> arguments) =>
runMe(arguments, createContext, configurationPath: "../../../testing.json"); runMe(arguments, createContext, configurationPath: "../../../testing.json");

View file

@ -17,4 +17,5 @@ Future<FastaContext> createContext(
return FastaContext.create(suite, environment); return FastaContext.create(suite, environment);
} }
main([List<String> arguments = const []]) => runMe(arguments, createContext); void main([List<String> arguments = const []]) =>
runMe(arguments, createContext);

View file

@ -15,11 +15,11 @@ Future<FastaContext> createContext(
return FastaContext.create(suite, environment); return FastaContext.create(suite, environment);
} }
main(List<String> arguments) { void main(List<String> arguments) {
internalMain(arguments: arguments); internalMain(arguments: arguments);
} }
internalMain( void internalMain(
{List<String> arguments = const [], int shards = 1, int shard = 0}) { {List<String> arguments = const [], int shards = 1, int shard = 0}) {
runMe(arguments, createContext, runMe(arguments, createContext,
configurationPath: "../../testing.json", shards: shards, shard: shard); configurationPath: "../../testing.json", shards: shards, shard: shard);

View file

@ -90,7 +90,7 @@ DiagnosticMessageHandler _makeDiagnosticMessageHandler(Set<String> names) {
/// Check that by default an error is reported for all unresolved super /// Check that by default an error is reported for all unresolved super
/// invocations: independently of weather they target abstract super members /// invocations: independently of weather they target abstract super members
/// or nonexistent targets. /// or nonexistent targets.
testDisabledSuperMixins() async { Future<void> testDisabledSuperMixins() async {
var missingSuperMethodNames = new Set<String>(); var missingSuperMethodNames = new Set<String>();
var options = new CompilerOptions() var options = new CompilerOptions()
..onDiagnostic = _makeDiagnosticMessageHandler(missingSuperMethodNames); ..onDiagnostic = _makeDiagnosticMessageHandler(missingSuperMethodNames);
@ -103,7 +103,7 @@ testDisabledSuperMixins() async {
/// super-invocation that targets an non-existent method, a super-invocation /// super-invocation that targets an non-existent method, a super-invocation
/// that targets an abstract member of the super-class should not be reported. /// that targets an abstract member of the super-class should not be reported.
/// In non-abstract class we should report both cases as an error. /// In non-abstract class we should report both cases as an error.
testEnabledSuperMixins() async { Future<void> testEnabledSuperMixins() async {
var missingSuperMethodNames = new Set<String>(); var missingSuperMethodNames = new Set<String>();
var options = new CompilerOptions() var options = new CompilerOptions()
..onDiagnostic = _makeDiagnosticMessageHandler(missingSuperMethodNames) ..onDiagnostic = _makeDiagnosticMessageHandler(missingSuperMethodNames)

View file

@ -2059,6 +2059,7 @@ mixin TestTarget on Target {
} }
class TestVmTarget extends VmTarget with TestTarget, TestTargetMixin { class TestVmTarget extends VmTarget with TestTarget, TestTargetMixin {
@override
final TestTargetFlags flags; final TestTargetFlags flags;
TestVmTarget(this.flags) : super(flags); TestVmTarget(this.flags) : super(flags);
@ -2136,6 +2137,7 @@ class NoneConstantsBackendWithJs extends NoneConstantsBackend {
} }
class TestDart2jsTarget extends Dart2jsTarget with TestTarget, TestTargetMixin { class TestDart2jsTarget extends Dart2jsTarget with TestTarget, TestTargetMixin {
@override
final TestTargetFlags flags; final TestTargetFlags flags;
TestDart2jsTarget(String name, this.flags) : super(name, flags); TestDart2jsTarget(String name, this.flags) : super(name, flags);
@ -2143,6 +2145,7 @@ class TestDart2jsTarget extends Dart2jsTarget with TestTarget, TestTargetMixin {
class TestDevCompilerTarget extends DevCompilerTarget class TestDevCompilerTarget extends DevCompilerTarget
with TestTarget, TestTargetMixin { with TestTarget, TestTargetMixin {
@override
final TestTargetFlags flags; final TestTargetFlags flags;
TestDevCompilerTarget(this.flags) : super(flags); TestDevCompilerTarget(this.flags) : super(flags);

View file

@ -15,11 +15,11 @@ Future<FastaContext> createContext(
return FastaContext.create(suite, environment); return FastaContext.create(suite, environment);
} }
main(List<String> arguments) { void main(List<String> arguments) {
internalMain(arguments: arguments); internalMain(arguments: arguments);
} }
internalMain( void internalMain(
{List<String> arguments = const [], int shards = 1, int shard = 0}) { {List<String> arguments = const [], int shards = 1, int shard = 0}) {
runMe(arguments, createContext, runMe(arguments, createContext,
configurationPath: "../../testing.json", shards: shards, shard: shard); configurationPath: "../../testing.json", shards: shards, shard: shard);

View file

@ -52,7 +52,7 @@ Future<Context> createContext(
return new Context(environment["updateExpectations"] == "true"); return new Context(environment["updateExpectations"] == "true");
} }
main([List<String> arguments = const []]) => void main([List<String> arguments = const []]) =>
runMe(arguments, createContext, configurationPath: "../../testing.json"); runMe(arguments, createContext, configurationPath: "../../testing.json");
class Context extends ChainContext with MatchContext { class Context extends ChainContext with MatchContext {

View file

@ -47,7 +47,7 @@ const List<String> unsafeTools = const <String>[
"testing", "testing",
]; ];
main() { void main() {
if (!Platform.isMacOS && !Platform.isLinux) { if (!Platform.isMacOS && !Platform.isLinux) {
// The tool is a shell script and only works on Mac and Linux. // The tool is a shell script and only works on Mac and Linux.
return; return;

View file

@ -102,7 +102,7 @@ class FactorTypeTest extends FactorTypeTestMixin<DartType> {
typeToText(type, TypeRepresentation.analyzerNonNullableByDefault); typeToText(type, TypeRepresentation.analyzerNonNullableByDefault);
} }
main() async { void main() async {
CompilerOptions options = new CompilerOptions() CompilerOptions options = new CompilerOptions()
..explicitExperimentalFlags[ExperimentalFlag.nonNullable] = true; ..explicitExperimentalFlags[ExperimentalFlag.nonNullable] = true;
InternalCompilerResult result = await compileScript('', InternalCompilerResult result = await compileScript('',

View file

@ -14,7 +14,7 @@ import 'package:kernel/testing/type_parser_environment.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(TypeConstraintGathererTest); defineReflectiveTests(TypeConstraintGathererTest);
}); });

View file

@ -14,7 +14,7 @@ import 'package:kernel/testing/type_parser_environment.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(TypeConstraintGathererTest); defineReflectiveTests(TypeConstraintGathererTest);
}); });

View file

@ -9,7 +9,7 @@ import 'package:kernel/ast.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(IncludesTypeParametersCovariantlyTest); defineReflectiveTests(IncludesTypeParametersCovariantlyTest);
}); });

View file

@ -12,7 +12,7 @@ import 'package:kernel/testing/type_parser_environment.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(TypeSchemaEliminationTest); defineReflectiveTests(TypeSchemaEliminationTest);
}); });

View file

@ -12,7 +12,7 @@ import 'package:kernel/testing/type_parser_environment.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(TypeSchemaEliminationTest); defineReflectiveTests(TypeSchemaEliminationTest);
}); });

View file

@ -13,7 +13,7 @@ import 'package:kernel/testing/type_parser_environment.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(TypeSchemaEnvironmentTest); defineReflectiveTests(TypeSchemaEnvironmentTest);
}); });

View file

@ -13,7 +13,7 @@ import 'package:kernel/testing/type_parser_environment.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(TypeSchemaEnvironmentTest); defineReflectiveTests(TypeSchemaEnvironmentTest);
}); });

View file

@ -9,7 +9,7 @@ import 'package:kernel/ast.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(UnknownTypeTest); defineReflectiveTests(UnknownTypeTest);
}); });

View file

@ -8,5 +8,5 @@ import "dart:io" show Platform;
import "subtypes_benchmark.dart" show run; import "subtypes_benchmark.dart" show run;
main() => void main() =>
run(Platform.script.resolve("benchmark_data/dart2js.json.gz"), "Dart2js"); run(Platform.script.resolve("benchmark_data/dart2js.json.gz"), "Dart2js");

View file

@ -6,4 +6,4 @@
import "dart2js_benchmark.dart" as bench show main; import "dart2js_benchmark.dart" as bench show main;
main() => bench.main(); void main() => bench.main();

View file

@ -14,7 +14,8 @@ import "package:kernel/core_types.dart" show CoreTypes;
import "package:kernel/target/targets.dart" show NoneTarget, TargetFlags; import "package:kernel/target/targets.dart" show NoneTarget, TargetFlags;
import 'package:kernel/testing/type_parser_environment.dart' show parseComponent; import 'package:kernel/testing/type_parser_environment.dart'
show parseComponent;
import "package:front_end/src/api_prototype/compiler_options.dart" import "package:front_end/src/api_prototype/compiler_options.dart"
show CompilerOptions; show CompilerOptions;
@ -100,7 +101,7 @@ F:
interfaceSetters: interfaceSetters:
"""; """;
main() { void main() {
final Ticker ticker = new Ticker(isVerbose: false); final Ticker ticker = new Ticker(isVerbose: false);
final Component component = parseComponent(""" final Component component = parseComponent("""
class A; class A;

View file

@ -63,7 +63,7 @@ class FastaLegacyUpperBoundTest extends LegacyUpperBoundTest {
} }
} }
main() { void main() {
final Ticker ticker = new Ticker(); final Ticker ticker = new Ticker();
final CompilerContext context = new CompilerContext(new ProcessedOptions( final CompilerContext context = new CompilerContext(new ProcessedOptions(
options: new CompilerOptions() options: new CompilerOptions()

View file

@ -40,7 +40,7 @@ import 'kernel_type_parser_test.dart' show parseSdk;
import "shared_type_tests.dart" show SubtypeTest; import "shared_type_tests.dart" show SubtypeTest;
main() { void main() {
final Ticker ticker = new Ticker(isVerbose: false); final Ticker ticker = new Ticker(isVerbose: false);
final CompilerContext context = new CompilerContext(new ProcessedOptions( final CompilerContext context = new CompilerContext(new ProcessedOptions(
options: new CompilerOptions() options: new CompilerOptions()

View file

@ -21,7 +21,7 @@ FunctionType createTTo_VoidToR() {
typeParameters: [T]); typeParameters: [T]);
} }
test1() { void test1() {
DartType voidToR1 = createVoidToR(); DartType voidToR1 = createVoidToR();
DartType voidToR2 = createVoidToR(); DartType voidToR2 = createVoidToR();
DartType voidToR3 = createTTo_VoidToR().returnType; DartType voidToR3 = createTTo_VoidToR().returnType;
@ -48,7 +48,7 @@ FunctionType createVoidTo_VoidToR() {
typeParameters: [R]); typeParameters: [R]);
} }
test2() { void test2() {
FunctionType outer1 = createVoidTo_VoidToR(); FunctionType outer1 = createVoidTo_VoidToR();
FunctionType outer2 = createVoidTo_VoidToR(); FunctionType outer2 = createVoidTo_VoidToR();
DartType voidToR1 = outer1.returnType; DartType voidToR1 = outer1.returnType;
@ -61,6 +61,6 @@ test2() {
"Hash code mismatch for outer1 vs outer2."); // false, on no! "Hash code mismatch for outer1 vs outer2."); // false, on no!
} }
main() { void main() {
test2(); test2();
} }

View file

@ -30,6 +30,6 @@ class KernelLegacyUpperBoundTest extends LegacyUpperBoundTest {
} }
} }
main() { void main() {
new KernelLegacyUpperBoundTest().test(); new KernelLegacyUpperBoundTest().test();
} }

View file

@ -114,7 +114,7 @@ Component parseSdk(Uri uri, TypeParserEnvironment environment) {
return new Component(libraries: <Library>[library]); return new Component(libraries: <Library>[library]);
} }
main() { void main() {
Uri uri = Uri.parse("dart:core"); Uri uri = Uri.parse("dart:core");
TypeParserEnvironment environment = new TypeParserEnvironment(uri, uri); TypeParserEnvironment environment = new TypeParserEnvironment(uri, uri);
Component component = parseSdk(uri, environment); Component component = parseSdk(uri, environment);

View file

@ -8,5 +8,5 @@ import "dart:io" show Platform;
import "subtypes_benchmark.dart" show run; import "subtypes_benchmark.dart" show run;
main() => run( void main() => run(
Platform.script.resolve("benchmark_data/large_app.json.gz"), "LargeApp"); Platform.script.resolve("benchmark_data/large_app.json.gz"), "LargeApp");

View file

@ -6,4 +6,4 @@
import "large_app_benchmark.dart" as bench show main; import "large_app_benchmark.dart" as bench show main;
main() => bench.main(); void main() => bench.main();

View file

@ -178,4 +178,4 @@ Future<void> run(Uri benchmarkInput, String name) async {
"${fastaWatch.elapsedMilliseconds / runs} ms"); "${fastaWatch.elapsedMilliseconds / runs} ms");
} }
main() => run(Uri.base.resolve("type_checks.json"), "***"); void main() => run(Uri.base.resolve("type_checks.json"), "***");

View file

@ -10,7 +10,7 @@ import 'package:package_config/package_config.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart';
main() { void main() {
defineReflectiveSuite(() { defineReflectiveSuite(() {
defineReflectiveTests(UriTranslatorImplTest); defineReflectiveTests(UriTranslatorImplTest);
}); });

View file

@ -12,7 +12,7 @@ import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart';
Uri base; Uri base;
main(List<String> args) { void main(List<String> args) {
File script = new File.fromUri(Platform.script); File script = new File.fromUri(Platform.script);
base = script.parent.uri; base = script.parent.uri;

View file

@ -14,11 +14,11 @@ Future<FastaContext> createContext(
return FastaContext.create(suite, environment); return FastaContext.create(suite, environment);
} }
main(List<String> arguments) { void main(List<String> arguments) {
internalMain(arguments: arguments); internalMain(arguments: arguments);
} }
internalMain( void internalMain(
{List<String> arguments = const [], int shards = 1, int shard = 0}) => {List<String> arguments = const [], int shards = 1, int shard = 0}) =>
runMe(arguments, createContext, runMe(arguments, createContext,
configurationPath: "../../testing.json", shard: shard, shards: shards); configurationPath: "../../testing.json", shard: shard, shards: shards);

View file

@ -6,7 +6,7 @@
import 'package:expect/expect.dart'; import 'package:expect/expect.dart';
main() { void main() {
// TODO(dacoharkes): implement dart:ffi tests // TODO(dacoharkes): implement dart:ffi tests
Expect.isTrue(true); Expect.isTrue(true);
} }

View file

@ -26,7 +26,7 @@ Set<String> files = {};
// but assumes that flutter has been setup as by the script // but assumes that flutter has been setup as by the script
// `tools/bots/flutter/compile_flutter.sh`. // `tools/bots/flutter/compile_flutter.sh`.
main(List<String> args) async { void main(List<String> args) async {
if (Platform.isWindows) { if (Platform.isWindows) {
throw "This script cannot run on Windows as it uses non-Windows " throw "This script cannot run on Windows as it uses non-Windows "
"assumptions both for the placement of pub packages and the presence " "assumptions both for the placement of pub packages and the presence "

View file

@ -20,7 +20,7 @@ import 'utils/io_utils.dart' show computeRepoDirUri;
final Uri repoDir = computeRepoDirUri(); final Uri repoDir = computeRepoDirUri();
main() async { void main() async {
messages(); messages();
experimentalFlags(); experimentalFlags();
directParserAstHelper(); directParserAstHelper();

View file

@ -66,7 +66,7 @@ abstract class TestCase {
} }
} }
setUp() async { Future<void> setUp() async {
outDir = Directory.systemTemp.createTempSync('hotreload_test'); outDir = Directory.systemTemp.createTempSync('hotreload_test');
outputUri = outDir.uri.resolve('test.dill'); outputUri = outDir.uri.resolve('test.dill');
var root = Uri.parse('org-dartlang-test:///'); var root = Uri.parse('org-dartlang-test:///');
@ -81,7 +81,7 @@ abstract class TestCase {
await rebuild(compiler, outputUri); // this is a full compile. await rebuild(compiler, outputUri); // this is a full compile.
} }
tearDown() async { Future<void> tearDown() async {
outDir.deleteSync(recursive: true); outDir.deleteSync(recursive: true);
lines = null; lines = null;
} }
@ -102,7 +102,7 @@ abstract class TestCase {
/// Start the VM with the first version of the program compiled by the /// Start the VM with the first version of the program compiled by the
/// incremental compiler. /// incremental compiler.
startProgram(int reloadCount) async { Future<void> startProgram(int reloadCount) async {
var vmArgs = [ var vmArgs = [
'--enable-vm-service=0', // Note: use 0 to avoid port collisions. '--enable-vm-service=0', // Note: use 0 to avoid port collisions.
'--pause_isolates_on_start', '--pause_isolates_on_start',
@ -289,7 +289,7 @@ class ReloadToplevelField extends TestCase {
} }
} }
main() { void main() {
asyncTest(() async { asyncTest(() async {
await new InitialProgramIsValid().test(); await new InitialProgramIsValid().test();
await new ReloadAfterLeafLibraryModification().test(); await new ReloadAfterLeafLibraryModification().test();

View file

@ -30,7 +30,7 @@ import 'package:kernel/ast.dart'
Library, Library,
TreeNode; TreeNode;
main(List<String> args) async { void main(List<String> args) async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data')); Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
await runTests<String>(dataDir, await runTests<String>(dataDir,
args: args, args: args,

View file

@ -19,7 +19,7 @@ import 'package:front_end/src/testing/id_testing_helper.dart';
import 'package:front_end/src/testing/id_testing_utils.dart'; import 'package:front_end/src/testing/id_testing_utils.dart';
import 'package:kernel/ast.dart' hide Variance; import 'package:kernel/ast.dart' hide Variance;
main(List<String> args) async { void main(List<String> args) async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve( Directory dataDir = new Directory.fromUri(Platform.script.resolve(
'../../../_fe_analyzer_shared/test/flow_analysis/assigned_variables/' '../../../_fe_analyzer_shared/test/flow_analysis/assigned_variables/'
'data')); 'data'));

Some files were not shown because too many files have changed in this diff Show more