Community
Participate
Working Groups
Build F2 Consider the following Java file: interface A { public static final String s = "a"; } interface B extends A { public static final String s = "b"; } public class Foo { public void foo() { B b = null; System.out.println(b.); } } Note that both interfaces have a field named 's'. Place your cursor after the 'b.' in the 'System.out.println(b.)' line. Press Ctrl+Space. Among the suggestions offered are A.s and B.s. This is incorrect, since A.s is hidden by B.s. If you pick A.s, Code Assist inserts 'Foo.s' (i.e. 'System.out.println (b.Foo.s)'). This is completely incorrect -- it's not what I picked and it doesn't even compile!
Reproduced. The super slot shouldn't be proposed.
Same bug with member types instead of fields. Methods are working fine, its filter needs to be propagated to fields and member types. Fixed.
Verified.