Version 2.14.0-110.0.dev
Merge commit '62d0d5ff4d1a26010382d790c49bbf31a8b6be94' into 'dev'
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index 762ea4b..6e3eab5 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.6.0-dev
+* Deprecated `AnalysisDriver` default constructor. Added `tmp1`. The goal
+ is to allow deprecating and removing unused parameters.
+
## 1.5.0
* Support for the language version `2.14`.
* Deprecated `AnalysisSession.getUnitElement()`.
diff --git a/pkg/analyzer/lib/src/context/builder.dart b/pkg/analyzer/lib/src/context/builder.dart
index 8887ae4..5a65513 100644
--- a/pkg/analyzer/lib/src/context/builder.dart
+++ b/pkg/analyzer/lib/src/context/builder.dart
@@ -13,7 +13,6 @@
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/driver.dart'
show AnalysisDriver, AnalysisDriverScheduler;
-import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
@@ -110,15 +109,13 @@
final sf =
createSourceFactoryFromWorkspace(workspace, summaryData: summaryData);
- AnalysisDriver driver = AnalysisDriver(
- analysisDriverScheduler,
- performanceLog,
- resourceProvider,
- byteStore,
- FileContentOverlay(),
- contextRoot,
- sf,
- options,
+ AnalysisDriver driver = AnalysisDriver.tmp1(
+ scheduler: analysisDriverScheduler,
+ logger: performanceLog,
+ resourceProvider: resourceProvider,
+ byteStore: byteStore,
+ sourceFactory: sf,
+ analysisOptions: options,
packages: createPackageMap(
resourceProvider: resourceProvider,
options: builderOptions,
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 712f844..a1ecf39 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -126,10 +126,6 @@
/// The declared environment variables.
DeclaredVariables declaredVariables = DeclaredVariables();
- /// Information about the context root being analyzed by this driver.
- @Deprecated('Use analysisContext instead')
- final ContextRoot? contextRoot;
-
/// The analysis context that created this driver / session.
api.AnalysisContext? analysisContext;
@@ -263,21 +259,62 @@
///
/// The given [SourceFactory] is cloned to ensure that it does not contain a
/// reference to a [AnalysisContext] in which it could have been used.
- AnalysisDriver(
- this._scheduler,
- PerformanceLog logger,
- this._resourceProvider,
- this._byteStore,
- this._contentOverlay,
- this.contextRoot,
- SourceFactory sourceFactory,
- this._analysisOptions,
- {Packages? packages,
- this.enableIndex = false,
- SummaryDataStore? externalSummaries,
- bool retainDataForTesting = false})
- : _logger = logger,
- _packages = packages ?? Packages.empty,
+ @Deprecated('Use AnalysisDriver.tmp1() instead')
+ factory AnalysisDriver(
+ AnalysisDriverScheduler scheduler,
+ PerformanceLog logger,
+ ResourceProvider resourceProvider,
+ ByteStore byteStore,
+ FileContentOverlay? contentOverlay,
+ // ignore: avoid_unused_constructor_parameters
+ ContextRoot? contextRoot,
+ SourceFactory sourceFactory,
+ AnalysisOptionsImpl analysisOptions, {
+ Packages? packages,
+ bool enableIndex = false,
+ SummaryDataStore? externalSummaries,
+ bool retainDataForTesting = false,
+ }) {
+ return AnalysisDriver.tmp1(
+ scheduler: scheduler,
+ logger: logger,
+ resourceProvider: resourceProvider,
+ byteStore: byteStore,
+ contentOverlay: contentOverlay,
+ sourceFactory: sourceFactory,
+ analysisOptions: analysisOptions,
+ packages: packages ?? Packages.empty,
+ enableIndex: enableIndex,
+ externalSummaries: externalSummaries,
+ retainDataForTesting: retainDataForTesting,
+ );
+ }
+
+ /// Create a new instance of [AnalysisDriver].
+ ///
+ /// The given [SourceFactory] is cloned to ensure that it does not contain a
+ /// reference to a [AnalysisContext] in which it could have been used.
+ AnalysisDriver.tmp1({
+ required AnalysisDriverScheduler scheduler,
+ required PerformanceLog logger,
+ required ResourceProvider resourceProvider,
+ required ByteStore byteStore,
+ @Deprecated('Use OverlayResourceProvider instead')
+ FileContentOverlay? contentOverlay,
+ required SourceFactory sourceFactory,
+ required AnalysisOptionsImpl analysisOptions,
+ required Packages packages,
+ bool enableIndex = false,
+ SummaryDataStore? externalSummaries,
+ bool retainDataForTesting = false,
+ }) : _scheduler = scheduler,
+ _resourceProvider = resourceProvider,
+ _byteStore = byteStore,
+ _contentOverlay = contentOverlay ?? FileContentOverlay(),
+ _analysisOptions = analysisOptions,
+ enableIndex = enableIndex,
+ _logger = logger,
+ _packages = packages,
_sourceFactory = sourceFactory,
_externalSummaries = externalSummaries,
testingData = retainDataForTesting ? TestingData() : null {
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 17deaf8..49162d7 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -325,9 +325,10 @@
void _computeLints(FileState file, LinterContextUnit currentUnit,
List<LinterContextUnit> allUnits) {
var unit = currentUnit.unit;
- ErrorReporter errorReporter = _getErrorReporter(file);
+ var errorReporter = _getErrorReporter(file);
- var nodeRegistry = NodeLintRegistry(_analysisOptions.enableTiming);
+ var enableTiming = _analysisOptions.enableTiming;
+ var nodeRegistry = NodeLintRegistry(enableTiming);
var visitors = <AstVisitor>[];
var context = LinterContextImpl(
@@ -340,9 +341,12 @@
_analysisOptions,
file.workspacePackage,
);
- for (Linter linter in _analysisOptions.lintRules) {
+ for (var linter in _analysisOptions.lintRules) {
linter.reporter = errorReporter;
+ var timer = enableTiming ? lintRegistry.getTimer(linter) : null;
+ timer?.start();
linter.registerNodeProcessors(nodeRegistry, context);
+ timer?.stop();
}
// Run lints that handle specific node types.
diff --git a/pkg/analyzer/lib/src/lint/analysis.dart b/pkg/analyzer/lib/src/lint/analysis.dart
index dceca73..c77fc12 100644
--- a/pkg/analyzer/lib/src/lint/analysis.dart
+++ b/pkg/analyzer/lib/src/lint/analysis.dart
@@ -17,7 +17,6 @@
import 'package:analyzer/src/dart/analysis/driver.dart';
import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart'
as api;
-import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
@@ -159,15 +158,13 @@
PerformanceLog log = PerformanceLog(null);
AnalysisDriverScheduler scheduler = AnalysisDriverScheduler(log);
- AnalysisDriver analysisDriver = AnalysisDriver(
- scheduler,
- log,
- resourceProvider,
- MemoryByteStore(),
- FileContentOverlay(),
- null,
- sourceFactory,
- _buildAnalyzerOptions(options),
+ AnalysisDriver analysisDriver = AnalysisDriver.tmp1(
+ scheduler: scheduler,
+ logger: log,
+ resourceProvider: resourceProvider,
+ byteStore: MemoryByteStore(),
+ sourceFactory: sourceFactory,
+ analysisOptions: _buildAnalyzerOptions(options),
packages: Packages.empty,
);
diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml
index 5e98178..5d25278 100644
--- a/pkg/analyzer/pubspec.yaml
+++ b/pkg/analyzer/pubspec.yaml
@@ -1,5 +1,5 @@
name: analyzer
-version: 1.5.0
+version: 1.6.0-dev
description: This package provides a library that performs static analysis of Dart code.
homepage: https://github.com/dart-lang/sdk/tree/master/pkg/analyzer
diff --git a/pkg/analyzer/test/src/dart/analysis/base.dart b/pkg/analyzer/test/src/dart/analysis/base.dart
index 6b9f30f..542e7f8 100644
--- a/pkg/analyzer/test/src/dart/analysis/base.dart
+++ b/pkg/analyzer/test/src/dart/analysis/base.dart
@@ -9,7 +9,6 @@
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/driver.dart';
import 'package:analyzer/src/dart/analysis/experiments.dart';
-import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
import 'package:analyzer/src/dart/analysis/status.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
@@ -25,7 +24,6 @@
class BaseAnalysisDriverTest with ResourceProviderMixin {
late final DartSdk sdk;
final ByteStore byteStore = MemoryByteStore();
- final FileContentOverlay contentOverlay = FileContentOverlay();
final StringBuffer logBuffer = StringBuffer();
late final PerformanceLog logger;
@@ -61,42 +59,41 @@
'aaa': [getFolder('/aaa/lib')],
'bbb': [getFolder('/bbb/lib')],
};
- return AnalysisDriver(
- scheduler,
- logger,
- resourceProvider,
- byteStore,
- contentOverlay,
- null,
- SourceFactory([
- DartUriResolver(sdk),
- generatedUriResolver,
- PackageMapUriResolver(resourceProvider, packageMap),
- ResourceUriResolver(resourceProvider)
- ]),
- createAnalysisOptions(),
- packages: Packages({
- 'test': Package(
- name: 'test',
- rootFolder: getFolder(testProject),
- libFolder: getFolder('$testProject/lib'),
- languageVersion: Version.parse('2.9.0'),
- ),
- 'aaa': Package(
- name: 'aaa',
- rootFolder: getFolder('/aaa'),
- libFolder: getFolder('/aaa/lib'),
- languageVersion: Version.parse('2.9.0'),
- ),
- 'bbb': Package(
- name: 'bbb',
- rootFolder: getFolder('/bbb'),
- libFolder: getFolder('/bbb/lib'),
- languageVersion: Version.parse('2.9.0'),
- ),
- }),
- enableIndex: true,
- externalSummaries: externalSummaries);
+ return AnalysisDriver.tmp1(
+ scheduler: scheduler,
+ logger: logger,
+ resourceProvider: resourceProvider,
+ byteStore: byteStore,
+ sourceFactory: SourceFactory([
+ DartUriResolver(sdk),
+ generatedUriResolver,
+ PackageMapUriResolver(resourceProvider, packageMap),
+ ResourceUriResolver(resourceProvider)
+ ]),
+ analysisOptions: createAnalysisOptions(),
+ packages: Packages({
+ 'test': Package(
+ name: 'test',
+ rootFolder: getFolder(testProject),
+ libFolder: getFolder('$testProject/lib'),
+ languageVersion: Version.parse('2.9.0'),
+ ),
+ 'aaa': Package(
+ name: 'aaa',
+ rootFolder: getFolder('/aaa'),
+ libFolder: getFolder('/aaa/lib'),
+ languageVersion: Version.parse('2.9.0'),
+ ),
+ 'bbb': Package(
+ name: 'bbb',
+ rootFolder: getFolder('/bbb'),
+ libFolder: getFolder('/bbb/lib'),
+ languageVersion: Version.parse('2.9.0'),
+ ),
+ }),
+ enableIndex: true,
+ externalSummaries: externalSummaries,
+ );
}
AnalysisOptionsImpl createAnalysisOptions() => AnalysisOptionsImpl()
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index ab12ee4..c8925ec 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -10,7 +10,6 @@
import 'package:analyzer/src/context/packages.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/driver.dart';
-import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
import 'package:analyzer/src/dart/analysis/status.dart';
import 'package:analyzer/src/dart/ast/extensions.dart';
@@ -54,7 +53,6 @@
class AnalysisDriverSchedulerTest with ResourceProviderMixin {
late DartSdk sdk;
final ByteStore byteStore = MemoryByteStore();
- final FileContentOverlay contentOverlay = FileContentOverlay();
final StringBuffer logBuffer = StringBuffer();
late final PerformanceLog logger;
@@ -65,18 +63,17 @@
AnalysisDriver newDriver() {
sdk = MockSdk(resourceProvider: resourceProvider);
- AnalysisDriver driver = AnalysisDriver(
- scheduler,
- logger,
- resourceProvider,
- byteStore,
- contentOverlay,
- null,
- SourceFactory(
- [DartUriResolver(sdk), ResourceUriResolver(resourceProvider)],
- ),
- AnalysisOptionsImpl(),
- packages: Packages.empty);
+ AnalysisDriver driver = AnalysisDriver.tmp1(
+ scheduler: scheduler,
+ logger: logger,
+ resourceProvider: resourceProvider,
+ byteStore: byteStore,
+ sourceFactory: SourceFactory(
+ [DartUriResolver(sdk), ResourceUriResolver(resourceProvider)],
+ ),
+ analysisOptions: AnalysisOptionsImpl(),
+ packages: Packages.empty,
+ );
driver.results.forEach(allResults.add);
return driver;
}
@@ -2417,25 +2414,6 @@
expect(typeC.element.getField('bar'), isNull);
}
- test_hermetic_overlayOnly_part() async {
- var a = convertPath('/test/lib/a.dart');
- var b = convertPath('/test/lib/b.dart');
- contentOverlay[a] = r'''
-library a;
-part 'b.dart';
-class A {}
-var b = new B();
-''';
- contentOverlay[b] = 'part of a; class B {}';
-
- driver.addFile(a);
- driver.addFile(b);
-
- ResolvedUnitResult result = await driver.getResultValid(a);
- expect(result.errors, isEmpty);
- _assertTopLevelVarType(result.unit!, 'b', 'B');
- }
-
test_importOfNonLibrary_part_afterLibrary() async {
var a = convertPath('/test/lib/a.dart');
var b = convertPath('/test/lib/b.dart');
diff --git a/pkg/analyzer/test/util/id_testing_helper.dart b/pkg/analyzer/test/util/id_testing_helper.dart
index e8c4e79..6d75b6f 100644
--- a/pkg/analyzer/test/util/id_testing_helper.dart
+++ b/pkg/analyzer/test/util/id_testing_helper.dart
@@ -19,7 +19,6 @@
import 'package:analyzer/src/context/packages.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/driver.dart';
-import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
import 'package:analyzer/src/dart/analysis/testing_data.dart';
import 'package:analyzer/src/generated/engine.dart';
@@ -146,21 +145,20 @@
var byteStore = MemoryByteStore();
var analysisOptions = AnalysisOptionsImpl()
..contextFeatures = config.featureSet;
- var driver = AnalysisDriver(
- scheduler,
- logger,
- resourceProvider,
- byteStore,
- FileContentOverlay(),
- null,
- SourceFactory([
- DartUriResolver(sdk),
- PackageMapUriResolver(resourceProvider, packageMap),
- ResourceUriResolver(resourceProvider)
- ]),
- analysisOptions,
- packages: Packages.empty,
- retainDataForTesting: true);
+ var driver = AnalysisDriver.tmp1(
+ scheduler: scheduler,
+ logger: logger,
+ resourceProvider: resourceProvider,
+ byteStore: byteStore,
+ sourceFactory: SourceFactory([
+ DartUriResolver(sdk),
+ PackageMapUriResolver(resourceProvider, packageMap),
+ ResourceUriResolver(resourceProvider)
+ ]),
+ analysisOptions: analysisOptions,
+ packages: Packages.empty,
+ retainDataForTesting: true,
+ );
scheduler.start();
Map<Uri, Map<Id, ActualData<T>>> actualMaps = <Uri, Map<Id, ActualData<T>>>{};
diff --git a/tools/VERSION b/tools/VERSION
index f71302f..195dc9c 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 109
+PRERELEASE 110
PRERELEASE_PATCH 0
\ No newline at end of file