@@ -0,0 +1,1774 @@
+package io.github.classgraph.issues.issue696;%0A%0Aimport static org.assertj.core.api.Assertions.assertThat;%0A%0Aimport java.lang.annotation.ElementType;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0Aimport java.lang.annotation.Target;%0A%0Aimport org.junit.jupiter.api.Test;%0A%0Aimport io.github.classgraph.ClassGraph;%0Aimport io.github.classgraph.ClassInfo;%0Aimport io.github.classgraph.MethodParameterInfo;%0Aimport io.github.classgraph.ScanResult;%0Aimport io.github.classgraph.issues.issue696.Issue696.BrokenAnnotation.Dynamic;%0A%0Apublic class Issue696 %7B%0A    @Target(ElementType.PARAMETER)%0A    @Retention(RetentionPolicy.RUNTIME)%0A    public static @interface Foo %7B%0A    %7D%0A%0A    @Target(ElementType.PARAMETER)%0A    @Retention(RetentionPolicy.RUNTIME)%0A    public static @interface Bar %7B%0A    %7D%0A%0A    public static class BrokenAnnotation %7B%0A        public class Dynamic %7B%0A            public Dynamic(@Foo String param1, @Bar String param2) %7B%0A            %7D%0A        %7D%0A    %7D%0A%0A    @Test%0A    void genericSuperclass() %7B%0A        final ScanResult scanResult = new ClassGraph().acceptPackages(Issue696.class.getPackage().getName())%0A                .enableMethodInfo().enableAnnotationInfo().scan();%0A        final ClassInfo dynamic = scanResult.getClassInfo(Dynamic.class.getName());%0A        final MethodParameterInfo%5B%5D paramInfo = dynamic.getConstructorInfo().get(0).getParameterInfo();%0A        // Inner classes have an initial %22mandated%22 param%0A        assertThat(paramInfo.length).isEqualTo(3);%0A        assertThat(paramInfo%5B0%5D.getAnnotationInfo()).isEmpty();%0A        assertThat(paramInfo%5B1%5D.getAnnotationInfo().get(0).getName()).isEqualTo(Foo.class.getName());%0A        assertThat(paramInfo%5B2%5D.getAnnotationInfo().get(0).getName()).isEqualTo(Bar.class.getName());%0A    %7D%0A%7D%0A

Add unit test (#694)