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
