From 8c4b8c27d2993c01b6d9efea7f1eebb3812fbea2 Mon Sep 17 00:00:00 2001 From: Benedek Halasi Date: Sat, 4 May 2024 08:28:58 +0200 Subject: [PATCH] Fix syntactically wrong replecement with annotations containing `LBRACE` --- .../tech/picnic/errorprone/bugpatterns/TypeMemberOrder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/TypeMemberOrder.java b/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/TypeMemberOrder.java index 5b9785f0..3170b17b 100644 --- a/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/TypeMemberOrder.java +++ b/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/TypeMemberOrder.java @@ -151,7 +151,8 @@ public final class TypeMemberOrder extends BugChecker implements ClassTreeMatche */ private static int getBodyStartPos(ClassTree tree, VisitorState state) { CharSequence sourceCode = state.getSourceCode(); - int typeStart = ASTHelpers.getStartPosition(tree); + /* To avoid including the type's preceding annotations, use `getPreferredPosition()` rather than ASTHelpers. */ + int typeStart = ((JCTree.JCClassDecl) tree).getPreferredPosition(); int typeEnd = state.getEndPosition(tree); if (sourceCode == null || typeStart == Position.NOPOS || typeEnd == Position.NOPOS) { return Position.NOPOS;