Skip to content

Phase 3.1: Convert critter-core test sources from Kotlin to Java#4196

Merged
evanchooly merged 1 commit intomasterfrom
phase3-kotlin-to-java
Mar 1, 2026
Merged

Phase 3.1: Convert critter-core test sources from Kotlin to Java#4196
evanchooly merged 1 commit intomasterfrom
phase3-kotlin-to-java

Conversation

@evanchooly
Copy link
Member

Summary

  • Converts all 9 Kotlin test files in critter/core/src/test/kotlin/ to equivalent Java
  • Kotlin production code is unchanged — tests call the Kotlin APIs via their compiled JVM names
  • All 57 tests pass against the existing Kotlin production code

Key conversion patterns

Kotlin Java
object Generators Generators.INSTANCE.method()
Critter.Companion.critterPackage() Critter.Companion.critterPackage()
str.titleCase() CritterKt.titleCase(str)
typeData(str) (top-level) PropertyModelGeneratorKt.typeData(str, classLoader)
node.annotationBuilder(mc) GizmoExtensionsKt.annotationBuilder(node, mc)
closeable.use { } try-with-resources
Type.asClass() extension Generators.INSTANCE.asClass(type, classLoader)

Test plan

  • ./mvnw test -pl :critter-core — 57 tests, 0 failures, 0 errors
  • ./mvnw spotless:apply -pl :critter-core — formatting applied

Closes task 3.1 of Phase 3 (#4195).

🤖 Generated with Claude Code

Replaces all 9 Kotlin test files under critter/core/src/test/kotlin/
with equivalent Java implementations. The Kotlin production code is
unchanged; all tests compile and pass against it (57 tests, 0 failures).

Converted files:
- ClassfileOutput.kt → ClassfileOutput.java
- parser/BaseCritterTest.kt → parser/BaseCritterTest.java
- parser/GeneratorTest.kt → parser/GeneratorTest.java
- parser/TestAccessorsMutators.kt → parser/TestAccessorsMutators.java
- parser/TestEntityModelGenerator.kt → parser/TestEntityModelGenerator.java
- parser/TestPropertyModelGenerator.kt → parser/TestPropertyModelGenerator.java
- parser/TestVarHandleAccessor.kt → parser/TestVarHandleAccessor.java
- parser/TypesTest.kt → parser/TypesTest.java
- parser/gizmo/TestGizmoGeneration.kt → parser/gizmo/TestGizmoGeneration.java

Key conversion patterns applied:
- Kotlin object singletons → Java static classes
- Extension functions → static helper methods
- Kotlin object API → INSTANCE access (Generators.INSTANCE, CritterGizmoGenerator.INSTANCE)
- Kotlin top-level funs → *Kt class static methods (CritterKt, PropertyModelGeneratorKt, GizmoExtensionsKt)
- Companion object methods → Companion access (Critter.Companion.critterPackage)
- scan().use {} → try-with-resources
- Lambda collections → Java streams

Closes task 3.1 of Phase 3 (#4195).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@evanchooly evanchooly merged commit 0ce4cb9 into master Mar 1, 2026
24 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant