[ https://issues.apache.org/jira/browse/GROOVY-11627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17951687#comment-17951687 ]
Jochen Theodorou commented on GROOVY-11627: ------------------------------------------- [~emilles] """ When I change this method to private, b.m("string") still works the same, however b.dispatch("string") changes behaviour. """ yes, that is exactly what I am talking about. Dispatching methods from A must not see private methods in B, but everything else will. If you now have an overload in B of public m(String) and private m(Integer), then dispatch in A sees only the non-private one and a call dispatch(1) should trigger the object case. In Java none of the two would be available in A of course. If you add the overload with the public and private method you should also get the warning. If you simply lift the check I do not know if the private method in B can be called from A or not. We may do "the right thing" here and it is not possible. Just didn't want to open that can of worms back then. > Compile Error when private and public functions use same name in compile > static mode > ------------------------------------------------------------------------------------ > > Key: GROOVY-11627 > URL: https://issues.apache.org/jira/browse/GROOVY-11627 > Project: Groovy > Issue Type: Bug > Components: Compiler, Static compilation > Affects Versions: 5.0.0-alpha-12 > Reporter: Saravanan > Assignee: Eric Milles > Priority: Minor > > When I define a class in Groovy with 2 methods with the same name, one > private and one public, I get this error during static compilation > {quote}Mixing private and public/protected methods of the same name causes > multimethods to be disabled and is forbidden to avoid surprising behaviour. > Renaming the private methods will solve the problem. > {quote} > I understand the need for multi methods and dispatching with runtime types, > but how can I disable this behaviour? I am using @CompileStatic and it still > hits this error > Per Jochen > {quote}CompileStatic does not support multi methods, so I totally agree that > this message should not appear for static compiled classes. > {quote} -- This message was sent by Atlassian Jira (v8.20.10#820010)