ExtendJ 8.0.1-190-g8b2039e Java SE 8
While a private method can not be overridden, some analyses should not treat private methods as being final just because they are private.
For example, the test if a
@SafeVarargs annotation is illegal uses the
isFinal attribute. However, this makes ExtendJ not behave like javac which does not consider a private method as final for the
@SafeVarargs usage. See JLS 7 §188.8.131.52 and issue
In bytecode generation, the
isFinal attribute should not be used for generating the
ACC_FINAL flag. The javac output only includes
ACC_FINAL when the
final modifier is present (and not when the method is declared inside a final class).
The current definition of
syn boolean MethodDecl.isFinal() = getModifiers().isFinal() || hostType().isFinal() || isPrivate();