From 139171ff30ab9b8b066087a78f1e3178bcff1fb7 Mon Sep 17 00:00:00 2001 From: Luke Hutchison Date: Wed, 14 Dec 2022 03:11:06 -0700 Subject: [PATCH] Test for #735 --- .../classgraph/issues/issue735/Issue735.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/test/java/io/github/classgraph/issues/issue735/Issue735.java diff --git a/src/test/java/io/github/classgraph/issues/issue735/Issue735.java b/src/test/java/io/github/classgraph/issues/issue735/Issue735.java new file mode 100644 index 000000000..23430538a --- /dev/null +++ b/src/test/java/io/github/classgraph/issues/issue735/Issue735.java @@ -0,0 +1,37 @@ +package io.github.classgraph.issues.issue735; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +import io.github.classgraph.ClassGraph; +import io.github.classgraph.ClassInfo; +import io.github.classgraph.ScanResult; + +public class Issue735 { + static interface Base { + T get(); + } + + static class Derived1 implements Base { + public String get() { + return null; + } + } + + static abstract class Derived2 implements Base { + } + + @Test + void genericSuperclass() { + try (ScanResult scanResult = new ClassGraph().acceptPackages(Issue735.class.getPackage().getName()) + .enableAllInfo().ignoreClassVisibility().ignoreMethodVisibility().scan()) { + ClassInfo ci1 = scanResult.getClassInfo(Derived1.class.getName()); + assertThat(ci1.getMethodInfo().get(0).getTypeSignatureOrTypeDescriptor().getResultType().toString()) + .isEqualTo(String.class.getName()); + ClassInfo ci2 = scanResult.getClassInfo(Derived2.class.getName()); + assertThat(ci2.getMethodInfo().get(0).getTypeSignatureOrTypeDescriptor().getResultType().toString()) + .isEqualTo("T"); + } + } +}