deduplicating lambda methods

Liam Miller-Cushon cushon at google.com
Mon Mar 5 03:59:25 UTC 2018


On Fri, Mar 2, 2018 at 8:01 PM, Vicente Romero <vicente.romero at oracle.com>
wrote:

> 1) How to identifying duplicates: I have a prototype that runs during
>> lambda desugaring and identifies duplicates by diffing ASTs. Is that the
>> best place for deduplication, or it worth considering comparing generated
>> code instead of ASTs?
>>
>
> are you doing an exact diff? I assume that we want: s -> s to be equal to
> z -> z provided that the target is the same


Lambda parameters are currently handled as a special case. The diff tests
that the syntax for the two trees is the same, and that the symbols
associated with identifier and select nodes are equivalent. It accepts
symbols that correspond to the same parameter in each of the associated
lambda methods.

E.g. when diffing the lambda bodies for `s -> s` and `x -> x` it sees that
`s` and `x` are both the first parameter of their enclosing lambdas.


More information about the amber-dev mailing list