Skip to content

Enum constants with class bodies as annotation values emit invalid code - #1837

Merged
mhalbritter merged 1 commit into
spring-io:mainfrom
YangSiJun528:fix-enum-constant-class-bodies
Sep 14, 2026
Merged

mhalbritter merged 1 commit into
spring-io:mainfrom
YangSiJun528:fix-enum-constant-class-bodies

Conversation

@YangSiJun528

Copy link
Copy Markdown
Contributor

Problem

When an enum constant with a class body is used as an annotation value, Annotation generates invalid source code and collects an import for the compiler-generated anonymous subclass instead of the declaring enum.

This occurs because getClass() returns the anonymous subclass for such constants. The added regression test demonstrates the resulting source code:

expected: "@Test(test = SpecializedEnum.SPECIALIZED)"
 but was: "@Test(test = .SPECIALIZED)"

Changes

  • Use getDeclaringClass() instead of getClass() when generating enum values and collecting imports.
  • Add a regression test covering both the generated source code and imports.

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Sep 11, 2026
See spring-iogh-1837

Signed-off-by: sijun-yang <yangsijun5528@gmail.com>
@mhalbritter
mhalbritter force-pushed the fix-enum-constant-class-bodies branch from d32a9d8 to 19ab598 Compare September 14, 2026 07:10
@mhalbritter mhalbritter changed the title Handle enum constants with class bodies as annotation values Enum constants with class bodies as annotation values emit invalid code Sep 14, 2026
@mhalbritter mhalbritter self-assigned this Sep 14, 2026
@mhalbritter mhalbritter added type: bug and removed status: waiting-for-triage An issue we've not yet triaged labels Sep 14, 2026
@mhalbritter mhalbritter added this to the 0.25.0 milestone Sep 14, 2026
@mhalbritter
mhalbritter merged commit 04ac7e0 into spring-io:main Sep 14, 2026
4 checks passed
@mhalbritter

Copy link
Copy Markdown
Contributor

Thanks @YangSiJun528 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants