You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2026/04/21 06:13:45 UTC
(groovy) 34/34: minor refactor: copilot flagged concerns
This is an automated email from the ASF dual-hosted git repository.
paulk-asert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit f83ec905f92576f0b76b4c2415b984c07515fff4
Author: Paul King <pa...@asert.com.au>
AuthorDate: Tue Apr 21 15:35:20 2026 +1000
minor refactor: copilot flagged concerns
---
.../src/main/java/org/codehaus/groovy/ant/Groovydoc.java | 3 ++-
.../org/codehaus/groovy/tools/groovydoc/Main.groovy | 16 ++++++++++------
.../tools/groovydoc/antlr4/GroovydocJavaVisitor.java | 10 +++++++++-
.../gstringTemplates/packageLevel/package-summary.html | 6 +++---
4 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovydoc.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovydoc.java
index caa165c600..050d0b5a82 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovydoc.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovydoc.java
@@ -287,7 +287,8 @@ public class Groovydoc extends Task {
public void setExcludePackageNames(String packages) {
StringTokenizer tok = new StringTokenizer(packages, ",:");
while (tok.hasMoreTokens()) {
- excludePackageNames.add(tok.nextToken());
+ String name = tok.nextToken().trim();
+ if (!name.isEmpty()) excludePackageNames.add(name);
}
}
diff --git a/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy b/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy
index 8a6ac77878..3748370f81 100644
--- a/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy
+++ b/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy
@@ -122,12 +122,16 @@ class Main {
if (options.stylesheetfile) {
styleSheetFile = new File(options.stylesheetfile)
}
- if (options.addStylesheet) {
- // CliBuilder with args:1 gives a single value; use comma separator
- // to accept multiple paths in one flag. Example:
- // --add-stylesheet custom1.css,custom2.css
- options.addStylesheet.toString().tokenize(',').each { p ->
- addStylesheetFiles << new File(p.trim())
+ if (options.addStylesheets) {
+ // Accept both `-addStylesheet a.css -addStylesheet b.css`
+ // (repeated flag — `options.addStylesheets` plural returns every
+ // occurrence) and comma-separated forms in a single flag
+ // (e.g. `-addStylesheet a.css,b.css`). Empty tokens dropped.
+ options.addStylesheets.each { raw ->
+ String.valueOf(raw).tokenize(',').each { p ->
+ def trimmed = p.trim()
+ if (trimmed) addStylesheetFiles << new File(trimmed)
+ }
}
}
diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/antlr4/GroovydocJavaVisitor.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/antlr4/GroovydocJavaVisitor.java
index 720220bf09..9578bdaee4 100644
--- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/antlr4/GroovydocJavaVisitor.java
+++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/antlr4/GroovydocJavaVisitor.java
@@ -328,7 +328,15 @@ public class GroovydocJavaVisitor
String name = an.getNameAsString();
if ("Internal".equals(name) || name.endsWith(".Internal")) return true;
}
- if (n instanceof FieldDeclaration fd && fd.getVariable(0).getNameAsString().contains("$")) return true;
+ if (n instanceof FieldDeclaration fd) {
+ // Java allows multiple variables per field declaration (`int a, b$;`).
+ // Treat the whole declaration as internal if *any* variable name
+ // contains the synthetic-name marker; picking only the first would
+ // mis-classify `int a, b$;` as non-internal.
+ for (int k = 0; k < fd.getVariables().size(); k++) {
+ if (fd.getVariable(k).getNameAsString().contains("$")) return true;
+ }
+ }
if (n instanceof MethodDeclaration md && md.getNameAsString().contains("$")) return true;
if (n instanceof ConstructorDeclaration cd && cd.getNameAsString().contains("$")) return true;
return false;
diff --git a/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/gstringTemplates/packageLevel/package-summary.html b/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/gstringTemplates/packageLevel/package-summary.html
index 1a6a17d852..db85fd1a8a 100644
--- a/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/gstringTemplates/packageLevel/package-summary.html
+++ b/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/gstringTemplates/packageLevel/package-summary.html
@@ -163,9 +163,9 @@ classTypes.each { k, v ->
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
- <% if (props.noDeprecatedList != 'true') { %><% if (props.noDeprecatedList != 'true') { %><li><a href="deprecated-list.html">Deprecated</a></li><% } %><% } %>
- <% if (props.noIndex != 'true') { %><% if (props.noIndex != 'true') { %><li><a href="index-all.html">Index</a></li><% } %><% } %>
- <% if (props.noHelp != 'true') { %><% if (props.noHelp != 'true') { %><li><a href="help-doc.html">Help</a></li><% } %><% } %>
+ <% if (props.noDeprecatedList != 'true') { %><li><a href="deprecated-list.html">Deprecated</a></li><% } %>
+ <% if (props.noIndex != 'true') { %><li><a href="index-all.html">Index</a></li><% } %>
+ <% if (props.noHelp != 'true') { %><li><a href="help-doc.html">Help</a></li><% } %>
</ul>
</div>
<div class="subNav">