in asm-tree/src/main/java/org/objectweb/asm/tree/ClassNode.java [324:377]
public void check(final int api) {
if (api < Opcodes.ASM9 && permittedSubclasses != null) {
throw new UnsupportedClassVersionException();
}
if (api < Opcodes.ASM8 && ((access & Opcodes.ACC_RECORD) != 0 || recordComponents != null)) {
throw new UnsupportedClassVersionException();
}
if (api < Opcodes.ASM7 && (nestHostClass != null || nestMembers != null)) {
throw new UnsupportedClassVersionException();
}
if (api < Opcodes.ASM6 && module != null) {
throw new UnsupportedClassVersionException();
}
if (api < Opcodes.ASM5) {
if (visibleTypeAnnotations != null && !visibleTypeAnnotations.isEmpty()) {
throw new UnsupportedClassVersionException();
}
if (invisibleTypeAnnotations != null && !invisibleTypeAnnotations.isEmpty()) {
throw new UnsupportedClassVersionException();
}
}
// Check the annotations.
if (visibleAnnotations != null) {
for (int i = visibleAnnotations.size() - 1; i >= 0; --i) {
visibleAnnotations.get(i).check(api);
}
}
if (invisibleAnnotations != null) {
for (int i = invisibleAnnotations.size() - 1; i >= 0; --i) {
invisibleAnnotations.get(i).check(api);
}
}
if (visibleTypeAnnotations != null) {
for (int i = visibleTypeAnnotations.size() - 1; i >= 0; --i) {
visibleTypeAnnotations.get(i).check(api);
}
}
if (invisibleTypeAnnotations != null) {
for (int i = invisibleTypeAnnotations.size() - 1; i >= 0; --i) {
invisibleTypeAnnotations.get(i).check(api);
}
}
if (recordComponents != null) {
for (int i = recordComponents.size() - 1; i >= 0; --i) {
recordComponents.get(i).check(api);
}
}
for (int i = fields.size() - 1; i >= 0; --i) {
fields.get(i).check(api);
}
for (int i = methods.size() - 1; i >= 0; --i) {
methods.get(i).check(api);
}
}