[
https://issues.apache.org/jira/browse/GROOVY-11627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17949218#comment-17949218
]
Saravanan commented on GROOVY-11627:
------------------------------------
Sorry took a while to get to this.
When this class is compiled with @CompileStatic
{code:java}
@CompileStatic
class MyClass {
public void doSomething(String blah) {}
private void doSomething(String doh, String blah) {}
} {code}
I get the error
{code:java}
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.
@ line 11, column 9.
public void doSomething(String blah) {}
^{code}
> 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
> 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)