When merging lambdas, keep track of the capture lists from each version.
Different versions of a lambda will in general refer to different enclosing variable declarations, because we do not merge most block-scope declarations, such as local variables. Keep track of all the declarations that correspond to a lambda's capture fields so that we can rewrite the name of any of those variables to the lambda capture, regardless of which copy of the body of `operator()` we look at.
Loading
Please sign in to comment