Example:
package classindexbug;
public class T1 {
@Ann
public static class ClassInsideT1 {
}
}
package classindexbug;
public record T2() {
@Ann
public static class ClassInsideT2 {
}
}
package classindexbug;
import org.atteo.classindex.IndexAnnotated;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.TYPE;
@IndexAnnotated
@Target(TYPE)
public @interface Ann {
}
The result in META-INF/annotations/classindexbug.Ann:
classindexbug.T1$ClassInsideT1
So T2$ClassInsideT2 is missing. The only difference between it and T1$ClassInsideT1 is that T2$ClassInsideT2 is declared in a record type.