Skip to content

Commit ec7cf41

Browse files
Groovy: fix parsing of @groovy.transform.builder.Builder annotation (#7513)
1 parent ebe0968 commit ec7cf41

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

rewrite-groovy/src/main/java/org/openrewrite/groovy/GroovyParserVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ class A {
489489
Iterator<InnerClassNode> innerClassIterator = clazz.getInnerClasses();
490490
while (innerClassIterator.hasNext()) {
491491
InnerClassNode icn = innerClassIterator.next();
492-
if (icn.isSynthetic() || fieldInitializers.contains(icn) || icn.getName().contains("$Trait$")) {
492+
if (icn.isSynthetic() || fieldInitializers.contains(icn) || icn.getName().contains("$Trait$") || !appearsInSource(icn)) {
493493
continue;
494494
}
495495
sortedByPosition.put(pos(icn), icn);

rewrite-groovy/src/test/java/org/openrewrite/groovy/tree/ClassDeclarationTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,24 @@ class Inner {
260260
);
261261
}
262262

263+
@Test
264+
void innerClassWithBuilderAnnotation() {
265+
rewriteRun(
266+
groovy(
267+
"""
268+
import groovy.transform.builder.Builder
269+
270+
class Outer {
271+
@Builder
272+
class Inner {
273+
String controller
274+
}
275+
}
276+
"""
277+
)
278+
);
279+
}
280+
263281
@Issue("https://github.com/openrewrite/rewrite/issues/4705")
264282
@Test
265283
void constructorWithDef() {

0 commit comments

Comments
 (0)