groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gerald Wiltse <jerrywil...@gmail.com>
Subject Re: Behavior of .with() inside Trait
Date Thu, 11 Feb 2016 19:49:21 GMT
Thanks for the input Schalk,

Can anyone else indicate if this looks like a bug, or an intended
behavior?  If so, I can submit the bug.

Gerald R. Wiltse
jerrywiltse@gmail.com


On Wed, Feb 10, 2016 at 11:04 AM, Schalk Cronjé <ysb33r@gmail.com> wrote:

> The interesting thing about this for me is that for
>
>   binding.with {
>     println cow
>   }
>
> the generated code is
>
>     public static java.lang.Object action(Foo $self) {
>         return $self .binding.with({
>             return $self.println( $self .cow)
>         }.rehydrate($self, $self, $self))
>     }
>
> but for
>
>   println binding.cow
>
> the generated code is
>
>    public static java.lang.Object action(Foo $self) {
>         return $self.println( $self .binding.cow)
>
>     }
>
>
> On 10/02/2016 16:52, Gerald Wiltse wrote:
>
> This example returns the error inside the with closure:
>
>       "No such property: cow for class:Bar"
>
> It seems .with() in a trait does not resolve the way it "normally" does.
>
>
> trait Foo {
>     def action() {
>         println binding.cow
>         binding.with {
>             println cow
>         }
>     }
> }
>
> class Bar implements Foo {
>   Binding binding = new Binding()
> }
>
>
> def myBar = new Bar()
> myBar.binding.cow = "says moo"
> myBar.action()
>
>
> If anyone has any insight, it would be helpful.
>
>
> Gerald R. Wiltse
> jerrywiltse@gmail.com
>
>
>
> --
> Schalk W. Cronjé
> Twitter / Ello / Toeter : @ysb33r
>
>

Mime
View raw message