Version 2.13.0-112.0.dev
Merge commit '53c8eda9672fe1555821bfa51e31f3c57683da1d' into 'dev'
diff --git a/pkg/analysis_server/analysis_options.yaml b/pkg/analysis_server/analysis_options.yaml
index 254951f..06e8506 100644
--- a/pkg/analysis_server/analysis_options.yaml
+++ b/pkg/analysis_server/analysis_options.yaml
@@ -24,4 +24,5 @@
- prefer_typing_uninitialized_variables
- unnecessary_brace_in_string_interps
- unnecessary_overrides
+ - unnecessary_parenthesis
- void_checks
diff --git a/pkg/analysis_server/lib/lsp_protocol/protocol_custom_generated.dart b/pkg/analysis_server/lib/lsp_protocol/protocol_custom_generated.dart
index e4b17e6..c67d3f7 100644
--- a/pkg/analysis_server/lib/lsp_protocol/protocol_custom_generated.dart
+++ b/pkg/analysis_server/lib/lsp_protocol/protocol_custom_generated.dart
@@ -10,6 +10,7 @@
// ignore_for_file: deprecated_member_use
// ignore_for_file: deprecated_member_use_from_same_package
// ignore_for_file: unnecessary_brace_in_string_interps
+// ignore_for_file: unnecessary_parenthesis
// ignore_for_file: unused_import
// ignore_for_file: unused_shown_name
diff --git a/pkg/analysis_server/lib/lsp_protocol/protocol_generated.dart b/pkg/analysis_server/lib/lsp_protocol/protocol_generated.dart
index 4af958b..215bf08 100644
--- a/pkg/analysis_server/lib/lsp_protocol/protocol_generated.dart
+++ b/pkg/analysis_server/lib/lsp_protocol/protocol_generated.dart
@@ -10,6 +10,7 @@
// ignore_for_file: deprecated_member_use
// ignore_for_file: deprecated_member_use_from_same_package
// ignore_for_file: unnecessary_brace_in_string_interps
+// ignore_for_file: unnecessary_parenthesis
// ignore_for_file: unused_import
// ignore_for_file: unused_shown_name
diff --git a/pkg/analysis_server/lib/src/context_manager.dart b/pkg/analysis_server/lib/src/context_manager.dart
index 6fd6cb7..ec9494ef 100644
--- a/pkg/analysis_server/lib/src/context_manager.dart
+++ b/pkg/analysis_server/lib/src/context_manager.dart
@@ -399,13 +399,12 @@
sdkPath: sdkManager.defaultSdkDirectory,
);
- for (var context in _collection.contexts) {
- var contextImpl = context as DriverBasedAnalysisContext;
- var driver = contextImpl.driver;
+ for (var analysisContext in _collection.contexts) {
+ var driver = analysisContext.driver;
callbacks.listenAnalysisDriver(driver);
- var rootFolder = contextImpl.contextRoot.root;
+ var rootFolder = analysisContext.contextRoot.root;
driverMap[rootFolder] = driver;
changeSubscriptions[rootFolder] = rootFolder.changes
@@ -413,7 +412,7 @@
_watchBazelFilesIfNeeded(rootFolder, driver);
- for (var file in contextImpl.contextRoot.analyzedFiles()) {
+ for (var file in analysisContext.contextRoot.analyzedFiles()) {
if (file_paths.isAndroidManifestXml(pathContext, file)) {
_analyzeAndroidManifestXml(driver, file);
} else if (file_paths.isDart(pathContext, file)) {
@@ -421,7 +420,7 @@
}
}
- var optionsFile = context.contextRoot.optionsFile;
+ var optionsFile = analysisContext.contextRoot.optionsFile;
if (optionsFile != null) {
_analyzeAnalysisOptionsYaml(driver, optionsFile.path);
}
@@ -455,8 +454,7 @@
void _destroyAnalysisContexts() {
if (_collection != null) {
for (var analysisContext in _collection.contexts) {
- var contextImpl = analysisContext as DriverBasedAnalysisContext;
- _destroyAnalysisContext(contextImpl);
+ _destroyAnalysisContext(analysisContext);
}
callbacks.afterContextsDestroyed();
}
@@ -530,8 +528,7 @@
}
if (file_paths.isDart(pathContext, path)) {
- for (var analysisContext_ in _collection.contexts) {
- var analysisContext = analysisContext_ as DriverBasedAnalysisContext;
+ for (var analysisContext in _collection.contexts) {
switch (type) {
case ChangeType.ADD:
if (analysisContext.contextRoot.isAnalyzed(path)) {
diff --git a/pkg/analysis_server/lib/src/lsp/mapping.dart b/pkg/analysis_server/lib/src/lsp/mapping.dart
index 298e997..9e59ec6 100644
--- a/pkg/analysis_server/lib/src/lsp/mapping.dart
+++ b/pkg/analysis_server/lib/src/lsp/mapping.dart
@@ -643,7 +643,7 @@
message: 'Document URI was not supplied',
));
}
- final isValidFileUri = (uri?.isScheme('file') ?? false);
+ final isValidFileUri = uri?.isScheme('file') ?? false;
if (!isValidFileUri) {
return ErrorOr<String>.error(ResponseError(
code: lsp.ServerErrorCodes.InvalidFilePath,
diff --git a/pkg/analysis_server/lib/src/plugin/result_merger.dart b/pkg/analysis_server/lib/src/plugin/result_merger.dart
index 91a5a65..0336650b2 100644
--- a/pkg/analysis_server/lib/src/plugin/result_merger.dart
+++ b/pkg/analysis_server/lib/src/plugin/result_merger.dart
@@ -575,12 +575,12 @@
lengths.addAll(feedback.lengths);
}
return ExtractLocalVariableFeedback(names.toList(), offsets, lengths,
- coveringExpressionOffsets: (coveringExpressionOffsets.isEmpty
+ coveringExpressionOffsets: coveringExpressionOffsets.isEmpty
? null
- : coveringExpressionOffsets),
- coveringExpressionLengths: (coveringExpressionLengths.isEmpty
+ : coveringExpressionOffsets,
+ coveringExpressionLengths: coveringExpressionLengths.isEmpty
? null
- : coveringExpressionLengths));
+ : coveringExpressionLengths);
} else if (first is ExtractMethodFeedback) {
var offset = first.offset;
var length = first.length;
diff --git a/pkg/analysis_server/lib/src/server/sdk_configuration.dart b/pkg/analysis_server/lib/src/server/sdk_configuration.dart
index 08105f8..c296772 100644
--- a/pkg/analysis_server/lib/src/server/sdk_configuration.dart
+++ b/pkg/analysis_server/lib/src/server/sdk_configuration.dart
@@ -55,7 +55,7 @@
/// Return a string describing the contents of this SDK configuration.
String get displayString {
- return _values.keys.map((key) => '$key: ${_values[key]}').join(('\n'));
+ return _values.keys.map((key) => '$key: ${_values[key]}').join('\n');
}
/// Returns whether this SDK configuration has any configured values.
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart
index 6e53137..fed0ed7 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart
@@ -115,7 +115,7 @@
var source = request.source;
String parentUri;
- if ((partialUri.endsWith('/'))) {
+ if (partialUri.endsWith('/')) {
parentUri = partialUri;
} else {
parentUri = posix.dirname(partialUri);
diff --git a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart
index 2ff7dae..a8634ca 100644
--- a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart
+++ b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart
@@ -1231,10 +1231,10 @@
}
if (body is Block) {
var block = body;
- return (!(block.leftBracket.isSynthetic));
+ return !block.leftBracket.isSynthetic;
}
- return (lineInfo.getLocation(keyword.offset) ==
- lineInfo.getLocation(body.offset));
+ return lineInfo.getLocation(keyword.offset) ==
+ lineInfo.getLocation(body.offset);
}
}
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_contains.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_contains.dart
index 1da824e..d1a5302 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_contains.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_contains.dart
@@ -76,7 +76,7 @@
expression.operator.type == TokenType.MINUS) {
var operand = expression.operand;
if (operand is IntegerLiteral) {
- return -(operand.value);
+ return -operand.value;
}
}
throw StateError('invalid integer value');
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/code_fragment_parser.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/code_fragment_parser.dart
index 0050c6d8..27dd4cb 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/code_fragment_parser.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/code_fragment_parser.dart
@@ -429,7 +429,7 @@
}
/// Return `true` if the [char] is a digit.
- bool _isDigit(int char) => (char >= $0 && char <= $9);
+ bool _isDigit(int char) => char >= $0 && char <= $9;
/// Return `true` if the [char] is a letter.
bool _isLetter(int char) =>
diff --git a/pkg/analysis_server/lib/src/status/diagnostics.dart b/pkg/analysis_server/lib/src/status/diagnostics.dart
index 368b129..7818392 100644
--- a/pkg/analysis_server/lib/src/status/diagnostics.dart
+++ b/pkg/analysis_server/lib/src/status/diagnostics.dart
@@ -777,8 +777,8 @@
pages.add(MemoryAndCpuPage(this, profiler));
}
- pages.sort(((Page a, Page b) =>
- a.title.toLowerCase().compareTo(b.title.toLowerCase())));
+ pages.sort((Page a, Page b) =>
+ a.title.toLowerCase().compareTo(b.title.toLowerCase()));
// Add the status page at the beginning.
pages.insert(0, StatusPage(this));
diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart
index 2fa703a1f..3598a1f 100644
--- a/pkg/analysis_server/test/abstract_context.dart
+++ b/pkg/analysis_server/test/abstract_context.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/analysis/analysis_context.dart';
-import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/dart/element/element.dart';
@@ -18,6 +17,7 @@
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
+import 'package:analyzer/src/util/file_paths.dart' as file_paths;
import 'package:linter/src/rules.dart';
import 'package:meta/meta.dart';
@@ -47,17 +47,11 @@
final ByteStore _byteStore = MemoryByteStore();
final Map<String, String> _declaredVariables = {};
- AnalysisContextCollection _analysisContextCollection;
-
- List<AnalysisContext> get allContexts {
- _createAnalysisContexts();
- return _analysisContextCollection.contexts;
- }
+ AnalysisContextCollectionImpl _analysisContextCollection;
List<AnalysisDriver> get allDrivers {
- return allContexts
- .map((e) => (e as DriverBasedAnalysisContext).driver)
- .toList();
+ _createAnalysisContexts();
+ return _analysisContextCollection.contexts.map((e) => e.driver).toList();
}
/// The file system specific `/home/test/analysis_options.yaml` path.
@@ -106,10 +100,7 @@
}
AnalysisContext contextFor(String path) {
- _createAnalysisContexts();
-
- path = convertPath(path);
- return _analysisContextCollection.contextFor(path);
+ return _contextFor(path);
}
/// Create an analysis options file based on the given arguments.
@@ -148,8 +139,7 @@
}
AnalysisDriver driverFor(String path) {
- var context = contextFor(path) as DriverBasedAnalysisContext;
- return context.driver;
+ return _contextFor(path).driver;
}
/// Return the existing analysis context that should be used to analyze the
@@ -174,6 +164,7 @@
throw StateError('Only dart files can be changed after analysis.');
}
+ _addAnalyzedFileToDrivers(path);
return super.newFile(path, content: content);
}
@@ -259,6 +250,33 @@
writePackageConfig(path, config);
}
+ void _addAnalyzedFilesToDrivers() {
+ for (var analysisContext in _analysisContextCollection.contexts) {
+ for (var path in analysisContext.contextRoot.analyzedFiles()) {
+ if (file_paths.isDart(resourceProvider.pathContext, path)) {
+ analysisContext.driver.addFile(path);
+ }
+ }
+ }
+ }
+
+ void _addAnalyzedFileToDrivers(String path) {
+ if (_analysisContextCollection != null) {
+ for (var analysisContext in _analysisContextCollection.contexts) {
+ if (analysisContext.contextRoot.isAnalyzed(path)) {
+ analysisContext.driver.addFile(path);
+ }
+ }
+ }
+ }
+
+ DriverBasedAnalysisContext _contextFor(String path) {
+ _createAnalysisContexts();
+
+ path = convertPath(path);
+ return _analysisContextCollection.contextFor(path);
+ }
+
/// Create all analysis contexts in [collectionIncludedPaths].
void _createAnalysisContexts() {
if (_analysisContextCollection != null) {
@@ -274,6 +292,7 @@
sdkPath: convertPath(sdkRoot),
);
+ _addAnalyzedFilesToDrivers();
verifyCreatedCollection();
}
}
diff --git a/pkg/analysis_server/test/channel/byte_stream_channel_test.dart b/pkg/analysis_server/test/channel/byte_stream_channel_test.dart
index 8f3b055..717b50b 100644
--- a/pkg/analysis_server/test/channel/byte_stream_channel_test.dart
+++ b/pkg/analysis_server/test/channel/byte_stream_channel_test.dart
@@ -38,7 +38,7 @@
inputSink = IOSink(inputStream);
var outputStream = StreamController<List<int>>();
outputLineStream = outputStream.stream
- .transform((Utf8Codec()).decoder)
+ .transform(Utf8Codec().decoder)
.transform(LineSplitter());
outputSink = IOSink(outputStream);
channel = ByteStreamClientChannel(inputStream.stream, outputSink);
@@ -124,7 +124,7 @@
inputSink = IOSink(inputStream);
var outputStream = StreamController<List<int>>();
outputLineStream = outputStream.stream
- .transform((Utf8Codec()).decoder)
+ .transform(Utf8Codec().decoder)
.transform(LineSplitter());
var outputSink = IOSink(outputStream);
channel = ByteStreamServerChannel(
diff --git a/pkg/analysis_server/test/integration/support/integration_tests.dart b/pkg/analysis_server/test/integration/support/integration_tests.dart
index 8f34d32..69a4804 100644
--- a/pkg/analysis_server/test/integration/support/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/support/integration_tests.dart
@@ -518,7 +518,7 @@
}
});
_process.stderr
- .transform((Utf8Codec()).decoder)
+ .transform(Utf8Codec().decoder)
.transform(LineSplitter())
.listen((String line) {
var trimmedLine = line.trim();
diff --git a/pkg/analysis_server/test/src/services/correction/fix/add_late_test.dart b/pkg/analysis_server/test/src/services/correction/fix/add_late_test.dart
index b44ebfc..039dd8d 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/add_late_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/add_late_test.dart
@@ -57,7 +57,6 @@
''', target: '/home/test/lib/a.dart');
}
- @FailingTest(reason: 'The lint does not fire for parts.')
Future<void> test_changeInPart() async {
addSource('/home/test/lib/a.dart', '''
part 'test.dart';
diff --git a/pkg/analysis_server/test/stress/utilities/server.dart b/pkg/analysis_server/test/stress/utilities/server.dart
index 9bbafb3..5e652d2 100644
--- a/pkg/analysis_server/test/stress/utilities/server.dart
+++ b/pkg/analysis_server/test/stress/utilities/server.dart
@@ -786,7 +786,7 @@
void installHandler(
Stream<List<int>> stream, void Function(String) handler) {
stream
- .transform((Utf8Codec()).decoder)
+ .transform(Utf8Codec().decoder)
.transform(LineSplitter())
.listen(handler);
}
diff --git a/pkg/analysis_server/test/timing/timing_framework.dart b/pkg/analysis_server/test/timing/timing_framework.dart
index 8dae417..f7d6da1 100644
--- a/pkg/analysis_server/test/timing/timing_framework.dart
+++ b/pkg/analysis_server/test/timing/timing_framework.dart
@@ -79,7 +79,7 @@
var diff = values[i] - average;
sumOfDiffSquared += diff * diff;
}
- return sqrt((sumOfDiffSquared / (count - 1)));
+ return sqrt(sumOfDiffSquared / (count - 1));
}
/// Convert the given [times], expressed in nanoseconds, to times expressed in
diff --git a/pkg/analysis_server/tool/code_completion/completion_metrics.dart b/pkg/analysis_server/tool/code_completion/completion_metrics.dart
index 744cd50..cd32542 100644
--- a/pkg/analysis_server/tool/code_completion/completion_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/completion_metrics.dart
@@ -19,7 +19,6 @@
import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart';
import 'package:analysis_server/src/services/completion/dart/utilities.dart';
import 'package:analysis_server/src/status/pages.dart';
-import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/dart/analysis/context_root.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/ast/ast.dart';
@@ -44,8 +43,8 @@
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/overlay_file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
+import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
-import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart';
import 'package:analyzer/src/dartdoc/dartdoc_directive_info.dart';
import 'package:analyzer/src/services/available_declarations.dart';
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
@@ -646,7 +645,7 @@
// line below.
// compareIndividualFeatures();
- final collection = AnalysisContextCollection(
+ final collection = AnalysisContextCollectionImpl(
includedPaths: [rootPath],
resourceProvider: PhysicalResourceProvider.INSTANCE,
);
@@ -830,8 +829,8 @@
var lines = <LocationTableLine>[];
for (var entry in metrics.locationMrrComputers.entries) {
var count = entry.value.count;
- var mrr = (1 / entry.value.mrr);
- var mrr_5 = (1 / entry.value.mrr_5);
+ var mrr = 1 / entry.value.mrr;
+ var mrr_5 = 1 / entry.value.mrr_5;
var product = count * mrr;
lines.add(LocationTableLine(
label: entry.key,
@@ -1109,7 +1108,7 @@
/// should be captured in the [collector].
Future<void> _computeInContext(ContextRoot root) async {
// Create a new collection to avoid consuming large quantities of memory.
- final collection = AnalysisContextCollection(
+ final collection = AnalysisContextCollectionImpl(
includedPaths: root.includedPaths.toList(),
excludedPaths: root.excludedPaths.toList(),
resourceProvider: _provider,
@@ -1174,9 +1173,7 @@
_provider.setOverlay(filePath,
content: overlayContents,
modificationStamp: overlayModificationStamp++);
- (context as DriverBasedAnalysisContext)
- .driver
- .changeFile(filePath);
+ context.driver.changeFile(filePath);
resolvedUnitResult =
await context.currentSession.getResolvedUnit(filePath);
}
diff --git a/pkg/analysis_server/tool/lsp_spec/generate_all.dart b/pkg/analysis_server/tool/lsp_spec/generate_all.dart
index ecc3079..782aa26 100644
--- a/pkg/analysis_server/tool/lsp_spec/generate_all.dart
+++ b/pkg/analysis_server/tool/lsp_spec/generate_all.dart
@@ -163,6 +163,7 @@
// ignore_for_file: deprecated_member_use
// ignore_for_file: deprecated_member_use_from_same_package
// ignore_for_file: unnecessary_brace_in_string_interps
+// ignore_for_file: unnecessary_parenthesis
// ignore_for_file: unused_import
// ignore_for_file: unused_shown_name
diff --git a/pkg/analyzer/lib/src/dart/analysis/analysis_context_collection.dart b/pkg/analyzer/lib/src/dart/analysis/analysis_context_collection.dart
index 4de4a89..dbe5024 100644
--- a/pkg/analyzer/lib/src/dart/analysis/analysis_context_collection.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/analysis_context_collection.dart
@@ -2,7 +2,6 @@
// 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.
-import 'package:analyzer/dart/analysis/analysis_context.dart';
import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/dart/analysis/context_locator.dart';
import 'package:analyzer/dart/analysis/declared_variables.dart';
@@ -11,6 +10,7 @@
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/context_builder.dart';
import 'package:analyzer/src/dart/analysis/driver.dart';
+import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart';
import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
@@ -23,7 +23,7 @@
/// The list of analysis contexts.
@override
- final List<AnalysisContext> contexts = [];
+ final List<DriverBasedAnalysisContext> contexts = [];
/// Initialize a newly created analysis context manager.
AnalysisContextCollectionImpl({
@@ -80,7 +80,7 @@
}
@override
- AnalysisContext contextFor(String path) {
+ DriverBasedAnalysisContext contextFor(String path) {
_throwIfNotAbsoluteNormalizedPath(path);
for (var context in contexts) {
diff --git a/pkg/analyzer/lib/src/dart/analysis/context_builder.dart b/pkg/analyzer/lib/src/dart/analysis/context_builder.dart
index ffead36..531689b 100644
--- a/pkg/analyzer/lib/src/dart/analysis/context_builder.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/context_builder.dart
@@ -2,7 +2,6 @@
// 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.
-import 'package:analyzer/dart/analysis/analysis_context.dart';
import 'package:analyzer/dart/analysis/context_builder.dart';
import 'package:analyzer/dart/analysis/context_root.dart';
import 'package:analyzer/dart/analysis/declared_variables.dart';
@@ -38,7 +37,7 @@
resourceProvider ?? PhysicalResourceProvider.INSTANCE;
@override
- AnalysisContext createContext({
+ DriverBasedAnalysisContext createContext({
ByteStore? byteStore,
required ContextRoot contextRoot,
DeclaredVariables? declaredVariables,
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index fcaacb9..80c2790 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -248,8 +248,6 @@
/// Whether resolved units should be indexed.
final bool enableIndex;
- late final DriverAnalyzedFiles analyzedFiles = DriverAnalyzedFiles(this);
-
/// The current analysis session.
late AnalysisSessionImpl _currentSession;
@@ -448,7 +446,6 @@
if (!_fsState.hasUri(path)) {
return;
}
- analyzedFiles.reset();
if (file_paths.isDart(resourceProvider.pathContext, path)) {
_fileTracker.addFile(path);
// If the file is known, it has already been read, even if it did not
@@ -1203,7 +1200,6 @@
/// but does not guarantee this.
void removeFile(String path) {
_throwIfNotAbsolutePath(path);
- analyzedFiles.reset();
_fileTracker.removeFile(path);
clearLibraryContext();
_priorityResults.clear();
@@ -2086,29 +2082,6 @@
errors);
}
-/// The cache of files analyzed in the driver.
-class DriverAnalyzedFiles {
- final AnalysisDriver _driver;
- List<String>? _files;
-
- DriverAnalyzedFiles(this._driver);
-
- List<String> get files {
- var files = _files;
-
- if (files == null) {
- var contextRoot = _driver.analysisContext!.contextRoot;
- _files = files = contextRoot.analyzedFiles().toList();
- }
-
- return files;
- }
-
- void reset() {
- _files = null;
- }
-}
-
/// An object that watches for the creation and removal of analysis drivers.
///
/// Clients may not extend, implement or mix-in this class.
diff --git a/pkg/analyzer/lib/src/dart/analysis/search.dart b/pkg/analyzer/lib/src/dart/analysis/search.dart
index 03439d6..821ebf0 100644
--- a/pkg/analyzer/lib/src/dart/analysis/search.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/search.dart
@@ -503,7 +503,7 @@
}
void ownAnalyzed(Search search) {
- for (var path in search._driver.analyzedFiles.files) {
+ for (var path in search._driver.addedFiles) {
if (path.endsWith('.dart')) {
add(path, search);
}
diff --git a/pkg/analyzer/test/src/dart/analysis/context_builder_test.dart b/pkg/analyzer/test/src/dart/analysis/context_builder_test.dart
index 776814b..af27464 100644
--- a/pkg/analyzer/test/src/dart/analysis/context_builder_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/context_builder_test.dart
@@ -7,7 +7,6 @@
import 'package:analyzer/dart/analysis/declared_variables.dart';
import 'package:analyzer/src/dart/analysis/context_builder.dart';
import 'package:analyzer/src/dart/analysis/context_root.dart';
-import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart';
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
import 'package:analyzer/src/workspace/basic.dart';
@@ -49,7 +48,7 @@
contextRoot: contextRoot,
declaredVariables: declaredVariables,
sdkPath: resourceProvider.convertPath(sdkRoot),
- ) as DriverBasedAnalysisContext;
+ );
expect(context.analysisOptions, isNotNull);
expect(context.contextRoot, contextRoot);
assertEquals(context.driver.declaredVariables, declaredVariables);
@@ -60,10 +59,10 @@
DeclaredVariables.fromMap({'bar': 'true'});
MockSdk sdk = MockSdk(resourceProvider: resourceProvider);
var context = contextBuilder.createContext(
- contextRoot: contextRoot,
- declaredVariables: declaredVariables,
- sdkPath: resourceProvider.convertPath(sdkRoot))
- as DriverBasedAnalysisContext;
+ contextRoot: contextRoot,
+ declaredVariables: declaredVariables,
+ sdkPath: resourceProvider.convertPath(sdkRoot),
+ );
expect(context.analysisOptions, isNotNull);
expect(context.contextRoot, contextRoot);
assertEquals(context.driver.declaredVariables, declaredVariables);
@@ -84,9 +83,9 @@
test_createContext_sdkPath() {
MockSdk sdk = MockSdk(resourceProvider: resourceProvider);
var context = contextBuilder.createContext(
- contextRoot: contextRoot,
- sdkPath: resourceProvider.convertPath(sdkRoot))
- as DriverBasedAnalysisContext;
+ contextRoot: contextRoot,
+ sdkPath: resourceProvider.convertPath(sdkRoot),
+ );
expect(context.analysisOptions, isNotNull);
expect(context.contextRoot, contextRoot);
expect(context.driver.sourceFactory.dartSdk!.mapDartUri('dart:core'),
diff --git a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
index 3582753..84d9950 100644
--- a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
@@ -111,7 +111,7 @@
ByteStore _byteStore = getContextResolutionTestByteStore();
Map<String, String> _declaredVariables = {};
- AnalysisContextCollection? _analysisContextCollection;
+ AnalysisContextCollectionImpl? _analysisContextCollection;
/// If not `null`, [resolveFile] will use the context that corresponds
/// to this path, instead of the given path.
@@ -157,10 +157,7 @@
}
AnalysisContext contextFor(String path) {
- _createAnalysisContexts();
-
- path = convertPath(path);
- return _analysisContextCollection!.contextFor(path);
+ return _contextFor(path);
}
void disposeAnalysisContextCollection() {
@@ -170,8 +167,7 @@
}
AnalysisDriver driverFor(String path) {
- var context = contextFor(path) as DriverBasedAnalysisContext;
- return context.driver;
+ return _contextFor(path).driver;
}
@override
@@ -211,6 +207,13 @@
void verifyCreatedCollection() {}
+ DriverBasedAnalysisContext _contextFor(String path) {
+ _createAnalysisContexts();
+
+ path = convertPath(path);
+ return _analysisContextCollection!.contextFor(path);
+ }
+
/// Create all analysis contexts in [collectionIncludedPaths].
void _createAnalysisContexts() {
if (_analysisContextCollection != null) {
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index dde233c..2767510 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -596,8 +596,7 @@
}
void _setContextForPath(String path) {
- var analysisContext = _collection.contextFor(path);
- _analysisContext = analysisContext as DriverBasedAnalysisContext;
+ _analysisContext = _collection.contextFor(path);
}
void _updateAnalysisOptions(AnalysisOptionsImpl analysisOptions) {
diff --git a/pkg/analyzer_plugin/test/src/utilities/completion/completion_target_test.dart b/pkg/analyzer_plugin/test/src/utilities/completion/completion_target_test.dart
index f95ad22..7a0c3d4 100644
--- a/pkg/analyzer_plugin/test/src/utilities/completion/completion_target_test.dart
+++ b/pkg/analyzer_plugin/test/src/utilities/completion/completion_target_test.dart
@@ -4,7 +4,6 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/src/generated/engine.dart' as analyzer;
import 'package:analyzer/src/test_utilities/find_element.dart';
import 'package:analyzer_plugin/src/utilities/completion/completion_target.dart';
import 'package:test/test.dart';
@@ -670,22 +669,9 @@
}
Future<void> test_MapLiteral_expression() async {
- super.setUp();
- final experimentStatus = (driverFor(testPackageRootPath).analysisOptions
- as analyzer.AnalysisOptionsImpl)
- .experimentStatus;
- if (experimentStatus.control_flow_collections ||
- experimentStatus.spread_collections) {
- // SimpleIdentifier MapLiteral VariableDeclaration
- await createTarget('foo = {1: 2, T^');
- assertTarget('T', '{1 : 2, T}');
- } else {
- // TODO(b/35569): remove this branch of test behavior
-
- // SimpleIdentifier MapLiteralEntry MapLiteral VariableDeclaration
- await createTarget('foo = {1: 2, T^');
- assertTarget('T : ', '{1 : 2, T : }');
- }
+ // SimpleIdentifier MapLiteral VariableDeclaration
+ await createTarget('foo = {1: 2, T^');
+ assertTarget('T', '{1 : 2, T}');
}
Future<void> test_MapLiteralEntry() async {
diff --git a/pkg/analyzer_plugin/test/support/abstract_context.dart b/pkg/analyzer_plugin/test/support/abstract_context.dart
index e98a83e..d9f4ca7 100644
--- a/pkg/analyzer_plugin/test/support/abstract_context.dart
+++ b/pkg/analyzer_plugin/test/support/abstract_context.dart
@@ -11,8 +11,6 @@
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
-import 'package:analyzer/src/dart/analysis/driver.dart';
-import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart';
import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine;
import 'package:analyzer/src/test_utilities/mock_packages.dart';
@@ -89,11 +87,6 @@
newFile(testPackageAnalysisOptionsPath, content: buffer.toString());
}
- AnalysisDriver driverFor(String path) {
- var context = contextFor(path) as DriverBasedAnalysisContext;
- return context.driver;
- }
-
@override
File newFile(String path, {String content = ''}) {
if (_analysisContextCollection != null && !path.endsWith('.dart')) {
diff --git a/pkg/nnbd_migration/lib/migration_cli.dart b/pkg/nnbd_migration/lib/migration_cli.dart
index a727c1c..5705e9a 100644
--- a/pkg/nnbd_migration/lib/migration_cli.dart
+++ b/pkg/nnbd_migration/lib/migration_cli.dart
@@ -5,7 +5,6 @@
import 'dart:async';
import 'dart:io' hide File;
-import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/diagnostic/diagnostic.dart';
@@ -511,7 +510,7 @@
_FixCodeProcessor _fixCodeProcessor;
- AnalysisContextCollection _contextCollection;
+ AnalysisContextCollectionImpl _contextCollection;
bool _hasExceptions = false;
@@ -531,16 +530,15 @@
// Handle the case of more than one analysis context being found (typically,
// the current directory and one or more sub-directories).
if (hasMultipleAnalysisContext) {
- return contextCollection.contextFor(options.directory)
- as DriverBasedAnalysisContext;
+ return contextCollection.contextFor(options.directory);
} else {
- return contextCollection.contexts.single as DriverBasedAnalysisContext;
+ return contextCollection.contexts.single;
}
}
Ansi get ansi => logger.ansi;
- AnalysisContextCollection get contextCollection {
+ AnalysisContextCollectionImpl get contextCollection {
_contextCollection ??= AnalysisContextCollectionImpl(
includedPaths: [options.directory],
resourceProvider: resourceProvider,
diff --git a/pkg/nnbd_migration/test/abstract_context.dart b/pkg/nnbd_migration/test/abstract_context.dart
index a52c469..b5d1783 100644
--- a/pkg/nnbd_migration/test/abstract_context.dart
+++ b/pkg/nnbd_migration/test/abstract_context.dart
@@ -5,7 +5,6 @@
import 'dart:convert';
import 'package:analyzer/dart/analysis/analysis_context.dart';
-import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/overlay_file_system.dart';
@@ -22,7 +21,7 @@
class AbstractContextTest with ResourceProviderMixin {
OverlayResourceProvider overlayResourceProvider;
- AnalysisContextCollection _analysisContextCollection;
+ AnalysisContextCollectionImpl _analysisContextCollection;
AnalysisDriver _driver;
final Set<String> knownPackages = {};
@@ -109,20 +108,14 @@
/// given [path], or throw [StateError] if the [path] is not analyzed in any
/// of the created analysis contexts.
AnalysisContext getContext(String path) {
- if (_analysisContextCollection == null) {
- _createAnalysisContexts();
- }
- path = convertPath(path);
- return _analysisContextCollection.contextFor(path);
+ return _getContext(path);
}
/// Return the existing analysis driver that should be used to analyze the
/// given [path], or throw [StateError] if the [path] is not analyzed in any
/// of the created analysis contexts.
AnalysisDriver getDriver(String path) {
- DriverBasedAnalysisContext context =
- getContext(path) as DriverBasedAnalysisContext;
- return context.driver;
+ return _getContext(path).driver;
}
LineInfo getLineInfo(String path) => session.getFile(path).lineInfo;
@@ -189,4 +182,15 @@
_driver = getDriver(convertPath(testsPath));
}
+
+ /// Return the existing analysis context that should be used to analyze the
+ /// given [path], or throw [StateError] if the [path] is not analyzed in any
+ /// of the created analysis contexts.
+ DriverBasedAnalysisContext _getContext(String path) {
+ if (_analysisContextCollection == null) {
+ _createAnalysisContexts();
+ }
+ path = convertPath(path);
+ return _analysisContextCollection.contextFor(path);
+ }
}
diff --git a/tools/VERSION b/tools/VERSION
index 24f1ba5..9e39240 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 13
PATCH 0
-PRERELEASE 111
+PRERELEASE 112
PRERELEASE_PATCH 0
\ No newline at end of file