diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart index a99815699d3..beb7a6ef9b5 100644 --- a/pkg/analysis_server/lib/src/services/correction/fix.dart +++ b/pkg/analysis_server/lib/src/services/correction/fix.dart @@ -3,11 +3,12 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; -import 'package:analysis_server/src/services/correction/fix/dart/extensions.dart'; import 'package:analyzer/dart/analysis/results.dart'; import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/error/error.dart'; import 'package:analyzer/instrumentation/service.dart'; +import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart'; +import 'package:analyzer/src/dart/analysis/file_state_filter.dart'; import 'package:analyzer/src/services/top_level_declarations.dart'; import 'package:analyzer_plugin/utilities/change_builder/change_workspace.dart'; import 'package:analyzer_plugin/utilities/fixes/fixes.dart'; @@ -65,8 +66,28 @@ class DartFixContextImpl implements DartFixContext { } @override - Stream librariesWithExtensions(String memberName) { - return Extensions(resolveResult).libraries(memberName); + Stream librariesWithExtensions(String memberName) async* { + var analysisContext = resolveResult.session.analysisContext; + var analysisDriver = (analysisContext as DriverBasedAnalysisContext).driver; + await analysisDriver.discoverAvailableFiles(); + + var fsState = analysisDriver.fsState; + var filter = FileStateFilter( + fsState.getFileForPath(resolveResult.path), + ); + + for (var file in fsState.knownFiles.toList()) { + if (!filter.shouldInclude(file)) { + continue; + } + + var elementResult = await analysisDriver.getLibraryByUri(file.uriStr); + if (elementResult is! LibraryElementResult) { + continue; + } + + yield elementResult.element; + } } } diff --git a/pkg/analysis_server/lib/src/services/correction/fix/dart/extensions.dart b/pkg/analysis_server/lib/src/services/correction/fix/dart/extensions.dart deleted file mode 100644 index 1a747346615..00000000000 --- a/pkg/analysis_server/lib/src/services/correction/fix/dart/extensions.dart +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file -// 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 'dart:async'; - -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/element/element.dart'; -import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart'; -import 'package:analyzer/src/dart/analysis/file_state_filter.dart'; - -class Extensions { - final ResolvedUnitResult resolvedUnit; - - Extensions(this.resolvedUnit); - - DriverBasedAnalysisContext get _analysisContext { - var analysisContext = resolvedUnit.session.analysisContext; - return analysisContext as DriverBasedAnalysisContext; - } - - /// Return libraries that may be imported into the [resolvedUnit] file, - /// and might have extensions that define a non-static public member with - /// the [memberName]. - Stream libraries(String memberName) async* { - var analysisDriver = _analysisContext.driver; - await analysisDriver.discoverAvailableFiles(); - - var fsState = analysisDriver.fsState; - var filter = FileStateFilter( - fsState.getFileForPath(resolvedUnit.path), - ); - - for (var file in fsState.knownFiles.toList()) { - if (!filter.shouldInclude(file)) { - continue; - } - - var elementResult = await analysisDriver.getLibraryByUri(file.uriStr); - if (elementResult is! LibraryElementResult) { - continue; - } - - yield elementResult.element; - } - } -}