+1 on removing unused this$1
> On Jul 31, 2021, at 12:51 PM, Brian Goetz <brian.go...@oracle.com> wrote: > > > >> Another option that gets some of the benefit and doesn't require a spec >> change is to omit the reference to the enclosing instance if it is unused. >> We've been doing that successfully for a few years at Google. There was some >> minor compatibility impact to code using reflection to access the synthetic >> field that stores the reference to the enclosing instance, but that was very >> rare, and the benefit is that it avoids some memory leaks. > > The people who would complain are in a pretty weak position: > > - The field is private and synthetic; you shouldn't be reflecting on it at > all; > - The field name is an implementation detail of the compiler, and not > specified, so you shouldn't even pretend you know its name; > - If its your class, the easy thing to do is add an accessor, so the only > people who would complain are those that are breaking into classes they don't > control. > > I think it is reasonable for the language to infer whether the enclosing > instance is "captured" by the inner class or not, and that's consistent with > how lambdas behave.