Skip to content

Commit 71324be

Browse files
cushonError Prone Team
authored andcommitted
Handle changes to EndPosTable
openjdk/jdk@c793de9 PiperOrigin-RevId: 769292075
1 parent 8ecd709 commit 71324be

File tree

1 file changed

+10
-16
lines changed
  • core/src/main/java/com/google/errorprone/bugpatterns/inlineme

1 file changed

+10
-16
lines changed

core/src/main/java/com/google/errorprone/bugpatterns/inlineme/Inliner.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
import com.sun.tools.javac.parser.ParserFactory;
7070
import com.sun.tools.javac.tree.EndPosTable;
7171
import com.sun.tools.javac.tree.JCTree;
72+
import java.lang.reflect.Proxy;
7273
import java.util.ArrayList;
7374
import java.util.List;
7475
import java.util.Objects;
@@ -572,21 +573,14 @@ private boolean matchesApiPrefixes(Api api) {
572573
}
573574

574575
private static EndPosTable asEndPosTable(JavacParser parser) {
575-
return new EndPosTable() {
576-
@Override
577-
public int getEndPos(JCTree tree) {
578-
return parser.getEndPos(tree);
579-
}
580-
581-
@Override
582-
public void storeEnd(JCTree tree, int endpos) {
583-
throw new AssertionError();
584-
}
585-
586-
@Override
587-
public int replaceTree(JCTree oldtree, JCTree newtree) {
588-
throw new AssertionError();
589-
}
590-
};
576+
return (EndPosTable)
577+
Proxy.newProxyInstance(
578+
EndPosTable.class.getClassLoader(),
579+
new Class<?>[] {EndPosTable.class},
580+
(proxy, method, args) ->
581+
switch (method.getName()) {
582+
case "getEndPos" -> parser.getEndPos((JCTree) args[0]);
583+
default -> throw new AssertionError("Unexpected method: " + method.getName());
584+
});
591585
}
592586
}

0 commit comments

Comments
 (0)