----- Mail original ----- > De: "Brian Goetz" <[email protected]> > À: "Remi Forax" <[email protected]> > Cc: "amber-spec-experts" <[email protected]> > Envoyé: Jeudi 13 Août 2020 00:18:18 > Objet: Re: A peek at the roadmap for pattern matching and more
>> There is nothing on the meaning of "this" in the block of with, i >> believe that like a constructor, "this" should be a reference to the >> instance on which with is called and be final ? ok, i said two different things in the same sentence, "like a constructor" and the "receiver of with" sorry. > > This is one possible interpretation, yes. But, it's not clear whether > this carries its weight. > > It would have the advantage that you could call methods on the > reconstruction target, but has the same disadvantage as the name > resolution for inner classes, which offers all sorts of > puzzlers-in-waiting, since `foo()` might now be a method on the target, > or a method in the local context. I think "lambda" is a better model > than "anonymous constructor body" here. Choices are: 1/ the enclosing instance like in lambda 2/ the receiver of "with" 3/ the newly created instance like in a constructor 4/ a poison I'm not sure lambda is the best model, i'm betting safely on 4 for now. > > (In any case, observant readers will notice that it is a state monad in > disguise.) Rémi
