Björn Kautler created GROOVY-9244:
-------------------------------------

             Summary: Anonymous subclasses should cast their super-parameters
                 Key: GROOVY-9244
                 URL: https://issues.apache.org/jira/browse/GROOVY-9244
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 2.5.7, 2.4.7
         Environment: I tried in GroovyConsole 2.4.7 and Groovy web console 
2.5.7
            Reporter: Björn Kautler


Given this code:

{noformat}
    import java.util.regex.Pattern

    abstract class Groovy3 {
        Groovy3(String s) { println "String" }
        Groovy3(Pattern p) { println "Pattern" }
    }

    class Groovy4 extends Groovy3 {
        Groovy4(String s) { super(s) }
        Groovy4(Pattern p) { super(p) }
    }

    class Groovy5 extends Groovy3 {
        Groovy5(String s) { super(s as String) }
        Groovy5(Pattern p) { super(p as Pattern) }
    }

    class Groovy6 {
        Groovy6(String s) { println "String" }
        Groovy6(Pattern p) { println "Pattern" }
    }

    new Groovy3(null as String) { }
    new Groovy4(null as String)
    new Groovy5(null as String)
    new Groovy6(null as String)
{noformat}

Groovy3ish anc Groovy4 instantiation fail
Groovy5 and Groovy6 instantiation succeed and print {{String}}.

I did not found a way to make the Groovy3ish one work, except for doing it the 
Groovy4 way, but no chance with an anonymous subclass.

>From what I observed, I guess the anonymous subclass does it like Groovy4 but 
>should do it like Groovy5 to properly select the super constructor.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to