Inner class nodes do not correctly report accessibility
In the following example, ASM does not report that the class node for Foo$Bar has private access:
public class Foo {
private class Bar {
}
}
E.g., if I do:
ClassReader reader = new ClassReader(new FileInputStream("Foo$Bar.class"));
ClassNode classNode = new ClassNode();
reader.accept(classNode, ClassReader.SKIP_FRAMES);
then classNode.access & Opcodes.ACC_PRIVATE equals 0.
However, the class node for Foo$Bar has an inner class node with name Foo$Bar which does have private
accessibility. The same holds for static or protected accessibility.
If I change the example to:
class Foo {
public class Bar {
}
}
then classNode.access & Opcodes.ACC_PUBLIC _is_ true, interestingly (but so it also is for the inner class
node with the same name). ACC_ABSTRACT also seems to be working correctly.
Do I miss something here, or is ASM wrong about accessibility of inner classes?