Skip to content

Commit 449e6f4

Browse files
cushonError Prone Team
authored andcommitted
Handle method references in renameMethodWithInvocations
PiperOrigin-RevId: 553202443
1 parent a2d6ad7 commit 449e6f4

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

check_api/src/main/java/com/google/errorprone/fixes/SuggestedFixes.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
import com.sun.source.tree.ExpressionTree;
6868
import com.sun.source.tree.IdentifierTree;
6969
import com.sun.source.tree.InstanceOfTree;
70+
import com.sun.source.tree.MemberReferenceTree;
7071
import com.sun.source.tree.MemberSelectTree;
7172
import com.sun.source.tree.MethodInvocationTree;
7273
import com.sun.source.tree.MethodTree;
@@ -785,6 +786,17 @@ public Void visitMemberSelect(MemberSelectTree tree, Void unused) {
785786
}
786787
return super.visitMemberSelect(tree, null);
787788
}
789+
790+
@Override
791+
public Void visitMemberReference(MemberReferenceTree tree, Void unused) {
792+
if (sym.equals(getSymbol(tree))) {
793+
fix.replace(
794+
state.getEndPosition(tree.getQualifierExpression()),
795+
state.getEndPosition(tree),
796+
"::" + replacement);
797+
}
798+
return super.visitMemberReference(tree, unused);
799+
}
788800
}.scan(state.getPath().getCompilationUnit(), null);
789801
return fix.build();
790802
}

core/src/test/java/com/google/errorprone/bugpatterns/MemberNameTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,4 +445,22 @@ public void lambdaExpressionParameterInsideOverridingMethod() {
445445
"}")
446446
.doTest();
447447
}
448+
449+
@Test
450+
public void methodReference() {
451+
refactoringHelper
452+
.addInputLines(
453+
"Test.java",
454+
"class Test {",
455+
" private void foo_bar() {}",
456+
" private Runnable r = this::foo_bar;",
457+
"}")
458+
.addOutputLines(
459+
"Test.java",
460+
"class Test {",
461+
" private void fooBar() {}",
462+
" private Runnable r = this::fooBar;",
463+
"}")
464+
.doTest();
465+
}
448466
}

0 commit comments

Comments
 (0)