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; }