Version 2.17.0-221.0.dev
Merge commit 'd5cc53a1b8fba37fa14e48b7c669709f377c00be' into 'dev'
diff --git a/pkg/analyzer/lib/dart/analysis/features.dart b/pkg/analyzer/lib/dart/analysis/features.dart
index 9922aec..bb407f0 100644
--- a/pkg/analyzer/lib/dart/analysis/features.dart
+++ b/pkg/analyzer/lib/dart/analysis/features.dart
@@ -5,6 +5,9 @@
import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:pub_semver/pub_semver.dart';
+// We use snake_case for these constants.
+// ignore_for_file: non_constant_identifier_names
+
/// Information about a single language feature whose presence or absence
/// depends on the supported Dart SDK version, and possibly on the presence of
/// experimental flags.
diff --git a/pkg/analyzer/lib/dart/ast/visitor.dart b/pkg/analyzer/lib/dart/ast/visitor.dart
index 309fcf1..364355a 100644
--- a/pkg/analyzer/lib/dart/ast/visitor.dart
+++ b/pkg/analyzer/lib/dart/ast/visitor.dart
@@ -102,9 +102,7 @@
@override
T? visitNode(AstNode node) {
- delegates.forEach((delegate) {
- node.accept(delegate);
- });
+ delegates.forEach(node.accept);
node.visitChildren(this);
return null;
}
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index 9c73621..0a0a1e6 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -51,6 +51,9 @@
import 'package:analyzer/src/task/api/model.dart' show AnalysisTarget;
import 'package:pub_semver/pub_semver.dart';
+// TODO(srawlins): Fix these in a presumably breaking change.
+// ignore_for_file: constant_identifier_names
+
/// An element that represents a class or a mixin. The class can be defined by
/// either a class declaration (with a class body), a mixin application (without
/// a class body), a mixin declaration, or an enum declaration.
diff --git a/pkg/analyzer/lib/error/error.dart b/pkg/analyzer/lib/error/error.dart
index 19f32cc..e3393a2 100644
--- a/pkg/analyzer/lib/error/error.dart
+++ b/pkg/analyzer/lib/error/error.dart
@@ -943,7 +943,7 @@
/// The lazy initialized map from [ErrorCode.uniqueName] to the [ErrorCode]
/// instance.
-late final HashMap<String, ErrorCode> _uniqueNameToCodeMap =
+final HashMap<String, ErrorCode> _uniqueNameToCodeMap =
_computeUniqueNameToCodeMap();
/// Return the [ErrorCode] with the given [uniqueName], or `null` if not
diff --git a/pkg/analyzer/lib/file_system/memory_file_system.dart b/pkg/analyzer/lib/file_system/memory_file_system.dart
index 17a6103..6f8edc5 100644
--- a/pkg/analyzer/lib/file_system/memory_file_system.dart
+++ b/pkg/analyzer/lib/file_system/memory_file_system.dart
@@ -567,7 +567,7 @@
}
@override
- Uri toUri() => provider.pathContext.toUri(path + '/');
+ Uri toUri() => provider.pathContext.toUri('$path/');
}
/// An in-memory implementation of [Resource].
diff --git a/pkg/analyzer/lib/file_system/physical_file_system.dart b/pkg/analyzer/lib/file_system/physical_file_system.dart
index c359bdd..6b75c0c 100644
--- a/pkg/analyzer/lib/file_system/physical_file_system.dart
+++ b/pkg/analyzer/lib/file_system/physical_file_system.dart
@@ -13,7 +13,7 @@
/// The name of the directory containing plugin specific subfolders used to
/// store data across sessions.
-const String _SERVER_DIR = ".dartServer";
+const String _serverDir = ".dartServer";
/// Returns the path to default state location.
///
@@ -28,7 +28,7 @@
final home = io.Platform.isWindows ? env['LOCALAPPDATA'] : env['HOME'];
return home != null && io.FileSystemEntity.isDirectorySync(home)
- ? join(home, _SERVER_DIR)
+ ? join(home, _serverDir)
: null;
}
diff --git a/pkg/analyzer/lib/instrumentation/log_adapter.dart b/pkg/analyzer/lib/instrumentation/log_adapter.dart
index cd1393c..2199242 100644
--- a/pkg/analyzer/lib/instrumentation/log_adapter.dart
+++ b/pkg/analyzer/lib/instrumentation/log_adapter.dart
@@ -6,6 +6,9 @@
import 'package:analyzer/instrumentation/plugin_data.dart';
import 'package:analyzer/instrumentation/service.dart';
+// TODO(srawlins): Fix these in a presumably breaking change.
+// ignore_for_file: constant_identifier_names
+
/// A class to adapt an [InstrumentationService] into a log using an [InstrumentationLogger].
class InstrumentationLogAdapter implements InstrumentationService {
static const String TAG_ERROR = 'Err';
diff --git a/pkg/analyzer/lib/instrumentation/multicast_service.dart b/pkg/analyzer/lib/instrumentation/multicast_service.dart
index 9c7e0af..7962f56 100644
--- a/pkg/analyzer/lib/instrumentation/multicast_service.dart
+++ b/pkg/analyzer/lib/instrumentation/multicast_service.dart
@@ -13,7 +13,9 @@
@override
void logError(String message) {
- _services.forEach((s) => s.logError(message));
+ for (var service in _services) {
+ service.logError(message);
+ }
}
@override
@@ -22,81 +24,105 @@
StackTrace? stackTrace,
List<InstrumentationServiceAttachment>? attachments,
]) {
- _services
- .forEach((s) => s.logException(exception, stackTrace, attachments));
+ for (var service in _services) {
+ service.logException(exception, stackTrace, attachments);
+ }
}
@override
void logInfo(String message, [dynamic exception]) {
- _services.forEach((s) => s.logInfo(message, exception));
+ for (var service in _services) {
+ service.logInfo(message, exception);
+ }
}
@override
void logLogEntry(String level, DateTime time, String message,
Object exception, StackTrace stackTrace) {
- _services.forEach(
- (s) => s.logLogEntry(level, time, message, exception, stackTrace));
+ for (var service in _services) {
+ service.logLogEntry(level, time, message, exception, stackTrace);
+ }
}
@override
void logNotification(String notification) {
- _services.forEach((s) => s.logNotification(notification));
+ for (var service in _services) {
+ service.logNotification(notification);
+ }
}
@override
void logPluginError(
PluginData plugin, String code, String message, String stackTrace) {
- _services
- .forEach((s) => s.logPluginError(plugin, code, message, stackTrace));
+ for (var service in _services) {
+ service.logPluginError(plugin, code, message, stackTrace);
+ }
}
@override
void logPluginException(
PluginData plugin, Object exception, StackTrace? stackTrace) {
- _services
- .forEach((s) => s.logPluginException(plugin, exception, stackTrace));
+ for (var service in _services) {
+ service.logPluginException(plugin, exception, stackTrace);
+ }
}
@override
void logPluginNotification(String pluginId, String notification) {
- _services.forEach((s) => s.logPluginNotification(pluginId, notification));
+ for (var service in _services) {
+ service.logPluginNotification(pluginId, notification);
+ }
}
@override
void logPluginRequest(String pluginId, String request) {
- _services.forEach((s) => s.logPluginRequest(pluginId, request));
+ for (var service in _services) {
+ service.logPluginRequest(pluginId, request);
+ }
}
@override
void logPluginResponse(String pluginId, String response) {
- _services.forEach((s) => s.logPluginResponse(pluginId, response));
+ for (var service in _services) {
+ service.logPluginResponse(pluginId, response);
+ }
}
@override
void logPluginTimeout(PluginData plugin, String request) {
- _services.forEach((s) => s.logPluginTimeout(plugin, request));
+ for (var service in _services) {
+ service.logPluginTimeout(plugin, request);
+ }
}
@override
void logRequest(String request) {
- _services.forEach((s) => s.logRequest(request));
+ for (var service in _services) {
+ service.logRequest(request);
+ }
}
@override
void logResponse(String response) {
- _services.forEach((s) => s.logResponse(response));
+ for (var service in _services) {
+ service.logResponse(response);
+ }
}
@override
void logVersion(String uuid, String clientId, String clientVersion,
String serverVersion, String sdkVersion) {
- _services.forEach((s) =>
- s.logVersion(uuid, clientId, clientVersion, serverVersion, sdkVersion));
+ for (var service in _services) {
+ service.logVersion(
+ uuid, clientId, clientVersion, serverVersion, sdkVersion);
+ }
}
@override
void logWatchEvent(String folderPath, String filePath, String changeType) {
- _services.forEach((s) => s.logWatchEvent(folderPath, filePath, changeType));
+ for (var service in _services) {
+ service.logWatchEvent(folderPath, filePath, changeType);
+ }
}
@override
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 5ab147e..a454827 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -1170,18 +1170,18 @@
return;
}
// Notify the completers.
- _requestedFiles.remove(path)!.forEach((completer) {
+ for (var completer in _requestedFiles.remove(path)!) {
completer.complete(result.unitResult!);
- });
+ }
// Remove from to be analyzed and produce it now.
_fileTracker.fileWasAnalyzed(path);
_resultController.add(result.unitResult!);
} catch (exception, stackTrace) {
_reportException(path, exception, stackTrace);
_fileTracker.fileWasAnalyzed(path);
- _requestedFiles.remove(path)!.forEach((completer) {
+ for (var completer in _requestedFiles.remove(path)!) {
completer.completeError(exception, stackTrace);
- });
+ }
_clearLibraryContextAfterException();
}
return;
@@ -1192,13 +1192,13 @@
String path = _requestedLibraries.keys.first;
try {
var result = _computeResolvedLibrary(path);
- _requestedLibraries.remove(path)!.forEach((completer) {
+ for (var completer in _requestedLibraries.remove(path)!) {
completer.complete(result);
- });
+ }
} catch (exception, stackTrace) {
- _requestedLibraries.remove(path)!.forEach((completer) {
+ for (var completer in _requestedLibraries.remove(path)!) {
completer.completeError(exception, stackTrace);
- });
+ }
_clearLibraryContextAfterException();
}
return;
@@ -1210,9 +1210,9 @@
var completers = _errorsRequestedFiles.remove(path)!;
var result = _computeErrors(path: path, asIsIfPartWithoutLibrary: false);
if (result != null) {
- completers.forEach((completer) {
+ for (var completer in completers) {
completer.complete(result);
- });
+ }
} else {
_errorsRequestedParts.putIfAbsent(path, () => []).addAll(completers);
}
@@ -1223,9 +1223,9 @@
if (_indexRequestedFiles.isNotEmpty) {
String path = _indexRequestedFiles.keys.first;
AnalysisDriverUnitIndex index = _computeIndex(path);
- _indexRequestedFiles.remove(path)!.forEach((completer) {
+ for (var completer in _indexRequestedFiles.remove(path)!) {
completer.complete(index);
- });
+ }
return;
}
@@ -1235,9 +1235,9 @@
UnitElementResult? result = _computeUnitElement(path);
var completers = _unitElementRequestedFiles.remove(path)!;
if (result != null) {
- completers.forEach((completer) {
+ for (var completer in completers) {
completer.complete(result);
- });
+ }
} else {
_unitElementRequestedParts
.putIfAbsent(path, () => [])
@@ -1327,18 +1327,18 @@
var result = _computeAnalysisResult(path,
withUnit: true, asIsIfPartWithoutLibrary: true)!;
// Notify the completers.
- _requestedParts.remove(path)!.forEach((completer) {
+ for (var completer in _requestedParts.remove(path)!) {
completer.complete(result.unitResult!);
- });
+ }
// Remove from to be analyzed and produce it now.
_partsToAnalyze.remove(path);
_resultController.add(result.unitResult!);
} catch (exception, stackTrace) {
_reportException(path, exception, stackTrace);
_partsToAnalyze.remove(path);
- _requestedParts.remove(path)!.forEach((completer) {
+ for (var completer in _requestedParts.remove(path)!) {
completer.completeError(exception, stackTrace);
- });
+ }
_clearLibraryContextAfterException();
}
return;
@@ -1371,9 +1371,9 @@
String path = _unitElementRequestedParts.keys.first;
UnitElementResult result =
_computeUnitElement(path, asIsIfPartWithoutLibrary: true)!;
- _unitElementRequestedParts.remove(path)!.forEach((completer) {
+ for (var completer in _unitElementRequestedParts.remove(path)!) {
completer.complete(result);
- });
+ }
return;
}
@@ -1382,9 +1382,9 @@
var path = _errorsRequestedParts.keys.first;
var completers = _errorsRequestedParts.remove(path)!;
var result = _computeErrors(path: path, asIsIfPartWithoutLibrary: true);
- completers.forEach((completer) {
+ for (var completer in completers) {
completer.complete(result);
- });
+ }
return;
}
}
diff --git a/pkg/analyzer/lib/src/dart/constant/value.dart b/pkg/analyzer/lib/src/dart/constant/value.dart
index 06b9e06..92ea903 100644
--- a/pkg/analyzer/lib/src/dart/constant/value.dart
+++ b/pkg/analyzer/lib/src/dart/constant/value.dart
@@ -2360,14 +2360,14 @@
StringBuffer buffer = StringBuffer();
buffer.write('[');
bool first = true;
- _elements.forEach((DartObjectImpl element) {
+ for (var element in _elements) {
if (first) {
first = false;
} else {
buffer.write(', ');
}
buffer.write(element);
- });
+ }
buffer.write(']');
return buffer.toString();
}
@@ -2571,14 +2571,14 @@
StringBuffer buffer = StringBuffer();
buffer.write('{');
bool first = true;
- _elements.forEach((DartObjectImpl element) {
+ for (var element in _elements) {
if (first) {
first = false;
} else {
buffer.write(', ');
}
buffer.write(element);
- });
+ }
buffer.write('}');
return buffer.toString();
}
diff --git a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
index df98227..91ce587 100644
--- a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
+++ b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
@@ -219,9 +219,9 @@
var result = performance!.run('getFilesContaining', (performance) {
return fsState!.getFilesContaining(element.displayName);
});
- result.forEach((filePath) {
+ for (var filePath in result) {
collectReferences(filePath, performance!);
- });
+ }
}
return references;
});
diff --git a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
index dcac77f..216f128 100644
--- a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
+++ b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
@@ -101,6 +101,16 @@
}
@override
+ void visitDefaultFormalParameter(DefaultFormalParameter node) {
+ var element = node.declaredElement;
+ if (element is SuperFormalParameterElement) {
+ usedElements.addElement(element.superConstructorParameter);
+ }
+
+ super.visitDefaultFormalParameter(node);
+ }
+
+ @override
void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
usedElements.addElement(node.constructorElement?.declaration);
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 66b1e0f..20996fa 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -585,13 +585,13 @@
void checkFieldFormalParameters(FormalParameterList? parameterList) {
var parameters = parameterList?.parameters;
if (parameters != null) {
- parameters.forEach((FormalParameter param) {
- if (param is FieldFormalParameter) {
+ for (var parameter in parameters) {
+ if (parameter is FieldFormalParameter) {
// This error is reported in the BodyBuilder.endFormalParameter.
handleRecoverableError(messageFieldInitializerOutsideConstructor,
- param.thisKeyword, param.thisKeyword);
+ parameter.thisKeyword, parameter.thisKeyword);
}
- });
+ }
}
}
diff --git a/pkg/analyzer/lib/src/lint/analysis.dart b/pkg/analyzer/lib/src/lint/analysis.dart
index 7eb9520..18d98ab 100644
--- a/pkg/analyzer/lib/src/lint/analysis.dart
+++ b/pkg/analyzer/lib/src/lint/analysis.dart
@@ -138,11 +138,11 @@
projectAnalysisSession,
_filesAnalyzed.toList(),
);
- Registry.ruleRegistry.forEach((lint) {
+ for (var lint in Registry.ruleRegistry) {
if (lint is ProjectVisitor) {
(lint as ProjectVisitor).visit(project);
}
- });
+ }
}
var result = <AnalysisErrorInfo>[];
diff --git a/pkg/analyzer/lib/src/lint/config.dart b/pkg/analyzer/lib/src/lint/config.dart
index 288bf06..d27f4ae 100644
--- a/pkg/analyzer/lib/src/lint/config.dart
+++ b/pkg/analyzer/lib/src/lint/config.dart
@@ -65,7 +65,9 @@
void addAsListOrString(Object? value, List<String> list) {
if (value is List) {
- value.forEach((v) => list.add(v));
+ for (var entry in value) {
+ list.add(entry);
+ }
} else if (value is String) {
list.add(value);
}
@@ -130,12 +132,12 @@
// - unnecessary_getters
// - camel_case_types
if (v is YamlList) {
- v.nodes.forEach((rule) {
+ for (var rule in v.nodes) {
var config = _RuleConfig();
config.name = asString(rule);
config.args = {'enabled': true};
ruleConfigs.add(config);
- });
+ }
}
// style_guide: {unnecessary_getters: false, camel_case_types: true}
diff --git a/pkg/analyzer/lib/src/lint/util.dart b/pkg/analyzer/lib/src/lint/util.dart
index 392df53..0580f08 100644
--- a/pkg/analyzer/lib/src/lint/util.dart
+++ b/pkg/analyzer/lib/src/lint/util.dart
@@ -107,9 +107,11 @@
}
void write(AstNode node) {
- //EOL comments
+ // EOL comments.
var comments = getPrecedingComments(node.beginToken);
- comments.forEach((c) => sink.writeln('${" " * indent}$c'));
+ for (var comment in comments) {
+ sink.writeln('${" " * indent}$comment');
+ }
sink.writeln(
'${" " * indent}${asString(node)} ${getTrailingComment(node)}');
diff --git a/pkg/analyzer/lib/src/task/options.dart b/pkg/analyzer/lib/src/task/options.dart
index 682acc6..8170621 100644
--- a/pkg/analyzer/lib/src/task/options.dart
+++ b/pkg/analyzer/lib/src/task/options.dart
@@ -272,8 +272,11 @@
CompositeValidator(this.validators);
@override
- void validate(ErrorReporter reporter, YamlMap options) =>
- validators.forEach((v) => v.validate(reporter, options));
+ void validate(ErrorReporter reporter, YamlMap options) {
+ for (var validator in validators) {
+ validator.validate(reporter, options);
+ }
+ }
}
/// Validates `analyzer` language configuration options.
@@ -550,7 +553,9 @@
source,
isNonNullableByDefault: false,
);
- _validators.forEach((OptionsValidator v) => v.validate(reporter, options));
+ for (var validator in _validators) {
+ validator.validate(reporter, options);
+ }
return recorder.errors;
}
}
diff --git a/pkg/analyzer/test/dart/ast/ast_test.dart b/pkg/analyzer/test/dart/ast/ast_test.dart
index 5519a0d..d010025 100644
--- a/pkg/analyzer/test/dart/ast/ast_test.dart
+++ b/pkg/analyzer/test/dart/ast/ast_test.dart
@@ -1376,13 +1376,13 @@
expect(
astFactory
.simpleStringLiteral(
- TokenFactory.tokenFromString("''' \ \nX''"), "X")
+ TokenFactory.tokenFromString("''' \nX''"), "X")
.contentsOffset,
6);
expect(
astFactory
.simpleStringLiteral(
- TokenFactory.tokenFromString('r""" \ \nX"""'), "X")
+ TokenFactory.tokenFromString('r""" \nX"""'), "X")
.contentsOffset,
7);
}
diff --git a/pkg/analyzer/test/file_system/file_system_test_support.dart b/pkg/analyzer/test/file_system/file_system_test_support.dart
index 239b461..517ac99 100644
--- a/pkg/analyzer/test/file_system/file_system_test_support.dart
+++ b/pkg/analyzer/test/file_system/file_system_test_support.dart
@@ -665,9 +665,9 @@
expect(children, hasLength(3));
children.sort((a, b) => a.shortName.compareTo(b.shortName));
// check that each child exists
- children.forEach((child) {
+ for (var child in children) {
expect(child.exists, true);
- });
+ }
// check names
expect(children[0].shortName, 'a.txt');
expect(children[1].shortName, 'bFolder');
diff --git a/pkg/analyzer/test/generated/non_error_resolver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_test.dart
index 461dba2..d06a00c 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_test.dart
@@ -2902,7 +2902,7 @@
expect(result.unit.declarations, hasLength(1));
final mainDecl = result.unit.declarations[0];
expect(mainDecl.metadata, hasLength(8));
- mainDecl.metadata.forEach((metadata) {
+ for (var metadata in mainDecl.metadata) {
final value = metadata.elementAnnotation!.computeConstantValue()!;
expect(value, isNotNull);
assertType(value.type, 'B');
@@ -2915,7 +2915,7 @@
expect(unbounded.isNull, true);
assertType(bounded.type, 'Bounded<String>');
}
- });
+ }
}
test_parameterScope_local() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/node_text_expectations.dart b/pkg/analyzer/test/src/dart/resolution/node_text_expectations.dart
index 76fafef..46ba881 100644
--- a/pkg/analyzer/test/src/dart/resolution/node_text_expectations.dart
+++ b/pkg/analyzer/test/src/dart/resolution/node_text_expectations.dart
@@ -104,11 +104,11 @@
void applyReplacements() {
replacements.sort((a, b) => b.offset - a.offset);
var newCode = content;
- replacements.forEach((replacement) {
+ for (var replacement in replacements) {
newCode = newCode.substring(0, replacement.offset) +
replacement.text +
newCode.substring(replacement.end);
- });
+ }
io.File(path).writeAsStringSync(newCode);
}
}
diff --git a/pkg/analyzer/test/src/diagnostics/unused_element_test.dart b/pkg/analyzer/test/src/diagnostics/unused_element_test.dart
index 74c8fa5..69468f2 100644
--- a/pkg/analyzer/test/src/diagnostics/unused_element_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unused_element_test.dart
@@ -261,6 +261,18 @@
]);
}
+ test_parameter_optionalNamed_isUsed_superFormal() async {
+ await assertNoErrorsInCode(r'''
+class _A {
+ _A({int? a});
+}
+
+class B extends _A {
+ B({super.a});
+}
+''');
+ }
+
test_parameter_optionalPositional_fieldFormal_isUsed_constructorInvocation() async {
await assertNoErrorsInCode(r'''
class _A {
@@ -307,6 +319,18 @@
]);
}
+ test_parameter_optionalPositional_isUsed_superFormal() async {
+ await assertNoErrorsInCode(r'''
+class _A {
+ _A([int? a]);
+}
+
+class B extends _A {
+ B([super.a]);
+}
+''');
+ }
+
test_privateEnum_privateConstructor_isUsed_redirect() async {
await assertNoErrorsInCode(r'''
enum _E {
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/partial_code_support.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/partial_code_support.dart
index 0622739..da370bd 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/partial_code_support.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/partial_code_support.dart
@@ -169,13 +169,13 @@
GatheringErrorListener(checkRanges: true);
parseCompilationUnit2(base.toString(), listener, featureSet: featureSet);
var baseErrorCodes = <ErrorCode>[];
- listener.errors.forEach((AnalysisError error) {
+ for (var error in listener.errors) {
if (error.errorCode == ParserErrorCode.BREAK_OUTSIDE_OF_LOOP ||
error.errorCode == ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP ||
error.errorCode == ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE) {
baseErrorCodes.add(error.errorCode);
}
- });
+ }
var expectedValidCodeErrors = <ErrorCode>[];
expectedValidCodeErrors.addAll(baseErrorCodes);
diff --git a/pkg/analyzer/test/src/lint/pub_test.dart b/pkg/analyzer/test/src/lint/pub_test.dart
index aa4dfe1..303e6d3 100644
--- a/pkg/analyzer/test/src/lint/pub_test.dart
+++ b/pkg/analyzer/test/src/lint/pub_test.dart
@@ -203,13 +203,13 @@
testDepListContains(
String label, PSDependencyList? list, List<Map<String, String>> exp) {
test(label, () {
- exp.forEach((Map<String, String> entry) {
+ for (var entry in exp) {
entry.forEach((k, v) {
PSDependency dep = findDependency(list, name: k);
expect(dep, isNotNull);
expect(dep.version!.value.text, equals(v));
});
- });
+ }
});
}
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index 47a6243..af36916 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -31,10 +31,11 @@
if (_testPath != null && _replacements.isNotEmpty) {
_replacements.sort((a, b) => b.offset - a.offset);
String newCode = _testCode!;
- _replacements.forEach((r) {
- newCode =
- newCode.substring(0, r.offset) + r.text + newCode.substring(r.end);
- });
+ for (var replacement in _replacements) {
+ newCode = newCode.substring(0, replacement.offset) +
+ replacement.text +
+ newCode.substring(replacement.end);
+ }
File(_testPath!).writeAsStringSync(newCode);
}
}
diff --git a/pkg/analyzer/test/src/summary/elements_test.dart b/pkg/analyzer/test/src/summary/elements_test.dart
index 09c0acc..1a23546 100644
--- a/pkg/analyzer/test/src/summary/elements_test.dart
+++ b/pkg/analyzer/test/src/summary/elements_test.dart
@@ -37738,7 +37738,9 @@
LibraryElementImpl library, List<String> names) {
var unit = library.definingCompilationUnit as CompilationUnitElementImpl;
var reference = unit.reference!;
- names.forEach((name) => reference = reference.getChild(name));
+ for (var name in names) {
+ reference = reference.getChild(name);
+ }
var element = reference.element;
if (element != null) {
diff --git a/pkg/analyzer/tool/analysis_driver/inspect_exception.dart b/pkg/analyzer/tool/analysis_driver/inspect_exception.dart
index 2dc63cc..4eda86e 100644
--- a/pkg/analyzer/tool/analysis_driver/inspect_exception.dart
+++ b/pkg/analyzer/tool/analysis_driver/inspect_exception.dart
@@ -36,7 +36,7 @@
print('');
print('');
- context.files.forEach((file) {
+ for (var file in context.files) {
print("=" * 40);
print('${file.path}');
print("-" * 40);
@@ -44,5 +44,5 @@
print('');
print('');
print('');
- });
+ }
}
diff --git a/pkg/analyzer/tool/summary/stats.dart b/pkg/analyzer/tool/summary/stats.dart
index d03b7db..a9c094e 100644
--- a/pkg/analyzer/tool/summary/stats.dart
+++ b/pkg/analyzer/tool/summary/stats.dart
@@ -76,11 +76,11 @@
if (value is SummaryClass) {
record(value);
} else if (value is List) {
- value.forEach((element) {
+ for (var element in value) {
if (element is SummaryClass) {
record(element);
}
- });
+ }
}
});
}
diff --git a/tools/VERSION b/tools/VERSION
index 7353eaa..748f5d3 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 17
PATCH 0
-PRERELEASE 220
+PRERELEASE 221
PRERELEASE_PATCH 0
\ No newline at end of file