groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remi Forax <fo...@univ-mlv.fr>
Subject Re: Default Method for Groovy 3
Date Thu, 08 Dec 2016 20:38:00 GMT
Hi Daniel,
as you have discovered, there is no flag for specifying a default method in the JVM spec,
hence no ACC_DEFAULT flag in ASM,
a default method is just a non abstract method in an interface.

Also default and static methods in interface can be either public or private.

cheers,
Rémi

----- Mail original -----
> De: "Daniel Sun" <realbluesun@hotmail.com>
> À: dev@groovy.incubator.apache.org
> Envoyé: Jeudi 8 Décembre 2016 18:40:14
> Objet: Default Method for Groovy 3

> Hi all,
> 
>         The new parser(Parrot) supports default method now. You can find
> the new feature at  the enhancedInterface branch of groovy-parser project
> <https://github.com/danielsun1106/groovy-parser/tree/enhancedInterface>  (
> https://github.com/danielsun1106/groovy-parser/commit/89f45ac86e7945ef81283697b6ed9018e997a045
> ). If no problem with the implementation, I'll merge it into the master
> later.
> 
> *Here is an example:*
> 
> interface Greetable {
>    String name();
>    default String hello() {
>        return 'hello'
>    }
> }
> 
> class Person implements Greetable {
>    @Override
>    public String name() {
>        return 'Daniel'
>    }
> }
> 
> def p = new Person()
> assert 'hello, Daniel' == "${p.hello()}, ${p.name()}"
> 
>      *Another more complicated example can be found at:*
> https://github.com/danielsun1106/groovy-parser/blob/enhancedInterface/src/test/resources/core/DefaultMethod_02x.groovy
> 
> 
> Cheers,
> Daniel.Sun
> 
> 
> 
> 
> --
> View this message in context:
> http://groovy.329449.n5.nabble.com/Default-Method-for-Groovy-3-tp5737154.html
> Sent from the Groovy Dev mailing list archive at Nabble.com.

Mime
View raw message