openrewrite / rewrite-kotlin

Work-in-progress implementation of Kotlin language support for OpenRewrite.
Apache License 2.0
43 stars 12 forks source link

Type mapping issue: JavaTypeRef#PrimitiveType Void is set to null. #514

Closed traceyyoshima closed 9 months ago

traceyyoshima commented 9 months ago
        @Test
        void returnTypeIsVoid() {
            rewriteRun(
              kotlin(
                """
                 import java.lang.AutoCloseable
                 abstract class Test : AutoCloseable
                 """, spec -> spec.afterRecipe(cu -> {
                    AtomicBoolean found = new AtomicBoolean(false);
                    new KotlinIsoVisitor<Integer>() {
                        @Override
                        public J.Identifier visitIdentifier(J.Identifier identifier, Integer integer) {
                            if ("AutoCloseable".equals(identifier.getSimpleName()) && identifier.getType() != null) {
                                assertThat(((JavaType.Class) identifier.getType()).getMethods().get(0).toString())
                                  .isEqualTo("java.lang.AutoCloseable{name=close,return=void,parameters=[]}");
                                found.set(true);
                            }
                            return super.visitIdentifier(identifier, integer);
                        }
                    }.visit(cu, 0);
                    assertThat(found.get()).isTrue();
                })
              )
            );
        }