diff --git a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart index f3e4b67ec3c..1f66fe647e4 100644 --- a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart +++ b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart @@ -147,13 +147,15 @@ Set _getNamesConflictingAt(AstNode node) { // local variables and functions { var localsRange = _getLocalsConflictingRange(node); - var enclosingExecutable = getEnclosingExecutableNode(node)!; - var visibleRangeMap = VisibleRangesComputer.forNode(enclosingExecutable); - visibleRangeMap.forEach((element, elementRange) { - if (elementRange.intersects(localsRange)) { - result.add(element.displayName); - } - }); + var enclosingExecutable = getEnclosingExecutableNode(node); + if (enclosingExecutable != null) { + var visibleRangeMap = VisibleRangesComputer.forNode(enclosingExecutable); + visibleRangeMap.forEach((element, elementRange) { + if (elementRange.intersects(localsRange)) { + result.add(element.displayName); + } + }); + } } // fields { diff --git a/pkg/analysis_server/test/services/refactoring/inline_method_test.dart b/pkg/analysis_server/test/services/refactoring/inline_method_test.dart index 4a0f5519869..35d678c81d0 100644 --- a/pkg/analysis_server/test/services/refactoring/inline_method_test.dart +++ b/pkg/analysis_server/test/services/refactoring/inline_method_test.dart @@ -1739,6 +1739,17 @@ void f(bool p, bool p2, bool p3) { '''); } + Future test_target_topLevelVariable() async { + await indexTestUnit(r''' +int get test => 42; +var a = test; +'''); + _createRefactoring('test =>'); + return _assertSuccessfulRefactoring(r''' +var a = 42; +'''); + } + Future _assertConditionsError(String message) async { var status = await refactoring.checkAllConditions(); assertRefactoringStatus(status, RefactoringProblemSeverity.ERROR,