Skip to content

Commit b67482d

Browse files
bwilkersonCommit Queue
authored andcommitted
Stop inlining methods in a combinator
Fixes #28253 Change-Id: I186f36c107b11dcfdefb2aa56420b607e80aa69e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/434021 Commit-Queue: Brian Wilkerson <[email protected]> Reviewed-by: Samuel Rawlins <[email protected]>
1 parent 7019f1c commit b67482d

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,8 @@ class InlineMethodRefactoringImpl extends RefactoringImpl
416416
} else if (selectedNode is MethodDeclaration) {
417417
element = selectedNode.declaredFragment?.element;
418418
isDeclaration = true;
419-
} else if (selectedNode is SimpleIdentifier) {
419+
} else if (selectedNode is SimpleIdentifier &&
420+
selectedNode.parent is! Combinator) {
420421
element = selectedNode.writeOrReadElement2;
421422
} else {
422423
return fatalStatus;

pkg/analysis_server/test/services/refactoring/legacy/inline_method_test.dart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,24 @@ void f() {
243243
);
244244
}
245245

246+
Future<void> test_bad_inShowCombinator() async {
247+
newFile('$testPackageLibPath/a.dart', '''
248+
void f() {
249+
print(42);
250+
}
251+
''');
252+
await indexTestUnit(r'''
253+
import 'a.dart' show f;
254+
255+
void g() {
256+
f();
257+
}
258+
''');
259+
_createRefactoring('f;');
260+
// error
261+
return _assertInvalidSelection();
262+
}
263+
246264
Future<void> test_bad_notExecutableElement() async {
247265
await indexTestUnit(r'''
248266
void f() {

0 commit comments

Comments
 (0)