PR java/19870 (Part 2/2): Handle private static methods accessed across nested classes
Tom Tromey
tromey@redhat.com
Sun Jun 19 05:06:00 GMT 2005
>>>>> "Ranjit" == Ranjit Mathew <rmathew@gmail.com> writes:
Ranjit> FAIL: 15.12.3-explicit-constructor-9
Ranjit> The latter confuses me (but both Jikes and javac 1.5.0.03
Ranjit> compile it without errors). I'd be grateful if someone could
Ranjit> explain exactly why it should *not* be an error.
The test case:
class T15123ec9 {
private int m() { return 1; }
T15123ec9(int i) {}
class Sub extends T15123ec9 {
Sub() {
super(m()); // m is not inherited, so it is the enclosing m
}
}
}
If m() were not private, the call would be to Sub.m(), which would be
invalid because it would be a use of 'this' in a static context.
However, m() is not inherited. So, the call is to
'T15123ec9.this.m()', which is valid as it doesn't refer to the object
being constructed.
gcjx still has a few bugs in this area fwiw.
Tom
More information about the Gcc-patches
mailing list