From 3bd1bba4f4d277e341bd788fc90e4d637dd2be65 Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Tue, 16 Sep 2025 23:31:25 +0200 Subject: [PATCH] [fixes #3940] Add missing stripIndent method --- .../lombok/delombok/DocCommentIntegrator.java | 6 +++++- src/stubs/com/sun/tools/javac/parser/Tokens.java | 2 ++ src/utils/lombok/javac/Javac.java | 13 +++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/delombok/lombok/delombok/DocCommentIntegrator.java b/src/delombok/lombok/delombok/DocCommentIntegrator.java index 491073c7..dc71fcb4 100644 --- a/src/delombok/lombok/delombok/DocCommentIntegrator.java +++ b/src/delombok/lombok/delombok/DocCommentIntegrator.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2024 The Project Lombok Authors. + * Copyright (C) 2009-2025 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -134,6 +134,10 @@ public class DocCommentIntegrator { return docCommentContent_; } + @Override public Comment stripIndent() { + return this; + } + @Override public DiagnosticPosition getPos() { return new DiagnosticPosition() { public JCTree getTree() { diff --git a/src/stubs/com/sun/tools/javac/parser/Tokens.java b/src/stubs/com/sun/tools/javac/parser/Tokens.java index 8bc2e3b0..c34ec9e7 100644 --- a/src/stubs/com/sun/tools/javac/parser/Tokens.java +++ b/src/stubs/com/sun/tools/javac/parser/Tokens.java @@ -14,6 +14,8 @@ public class Tokens { String getText(); + Comment stripIndent(); + JCDiagnostic.DiagnosticPosition getPos(); int getSourcePos(int index); diff --git a/src/utils/lombok/javac/Javac.java b/src/utils/lombok/javac/Javac.java index 08c13cc4..840c32ee 100644 --- a/src/utils/lombok/javac/Javac.java +++ b/src/utils/lombok/javac/Javac.java @@ -348,7 +348,7 @@ public class Javac { public static boolean validateJavadoc(Object dc, JCTree node) { DocCommentTable dct = (DocCommentTable) dc; Comment javadoc = dct.getComment(node); - return javadoc == null || javadoc.getText() == null || javadoc.getSourcePos(0) >= 0; + return javadoc == null || javadoc.getText() == null || (javadoc.getSourcePos(0) >= 0 && hasParseableDocComment(dct, node)); } static void setJavadoc(Object dc, JCTree node, String javadoc) { @@ -366,12 +366,21 @@ public class Javac { } } + private static boolean hasParseableDocComment(Object dc, JCTree node) { + DocCommentTable dct = (DocCommentTable) dc; + return Permit.invokeSneaky(Permit.permissiveGetMethod(DocCommentTable.class, "getCommentTree", JCTree.class), dct, node) != null; + } + private static Comment createJavadocComment(final String text, final JCTree field) { return new Comment() { @Override public String getText() { return text; } + @Override public Comment stripIndent() { + return this; + } + @Override public int getSourcePos(int index) { return field == null ? -1 : field.getStartPosition(); } @@ -383,7 +392,7 @@ public class Javac { @Override public boolean isDeprecated() { return text.contains("@deprecated") && field instanceof JCVariableDecl && isFieldDeprecated(field); } - + @Override public DiagnosticPosition getPos() { return field; }