Community
Participate
Working Groups
As of 0.6.2 para 15.12.3 contains this: " If the method invocation has, before the left parenthesis, the form ClassName TypeName . super . NonWildTypeArgumentsopt Identifier, then: [...] Otherwise, if the TypeName denotes an interface, let T be the type declaration immediately enclosing the method invocation. A compile-time error occurs if there exists a method, distinct from the compile-time declaration, that overrides (9.4.1) the compile-time declaration from a direct superclass or direct superinterface of T." This rule is yet unimplemented.
At a closer look the quoted snippets from the spec seem to be subsumed in this one from 15.12.1: "If the form is TypeName . super . NonWildTypeArgumentsopt Identifier, then the name of the method is the Identifier. [..] Otherwise, TypeName denotes the interface to be searched, I. Let T be the type declaration immediately enclosing the method invocation. It is a compile-time error if I is not a direct superinterface of T, or if there exists some other direct superclass or direct superinterface of T, J, such that J is a subtype of I." At least I fail to see how the situation from 15.12.3 could be created without first triggering the error from 15.12.1.
The first part (regarding 15.12.1) has been pushed to BETA_JAVA8 via commit 86ee968d8acf90a0a75c72085f72a3416b02186d. Meanwhile I found a test case that should triggers 15.12.3 without triggering 15.12.1. More to still come ...
(In reply to comment #2) > Meanwhile I found a test case that should triggers 15.12.3 without triggering > 15.12.1. More to still come ... Additional test & fix pushed to BETA_JAVA8 via commit 7915a529d4dab8b70a0cdb9189fc342b9112ed8e.
Re-opening for inclusion of similar checks regarding reference expressions (cf. bug 382350 comment 8).
Work for reference expressions has been pushed via commit f28c28de6ed3d2e9e475bca36caf25c219a92533.