[
https://issues.apache.org/jira/browse/GROOVY-11111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17736943#comment-17736943
]
Eric Milles commented on GROOVY-11111:
--------------------------------------
What is not correct? Only temp nodes will not have declaring class set. If
declaring class is set and is interface the optional is present.
> MethodNode isDefault check not correct
> --------------------------------------
>
> Key: GROOVY-11111
> URL: https://issues.apache.org/jira/browse/GROOVY-11111
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Reporter: Jochen Theodorou
> Priority: Major
>
> {code:Java}
> public boolean isDefault() {
> return (modifiers & (ACC_ABSTRACT | ACC_PUBLIC | ACC_STATIC)) ==
> ACC_PUBLIC &&
>
> Optional.ofNullable(getDeclaringClass()).filter(ClassNode::isInterface).isPresent();
> }
> {code}
> isPresent gives true if the value represented by the option exists, but not
> what value it is. Here isPresent would return true even if the class node
> represents a class and not an interface. While this cannot happen so far
> unless forced, I still suggest to replace isPresent with orElse(false)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)