scala/scala — pull request #627 by retronym (2012-05-26 07:27:08+00:00)
Title: SI-5652 Mangle names of potentially public lambda lifted methods.

This can happen if they are accessed from an inner class. If a
subclass is happens to lift a public method to the same name,
a VerifyError ensues.

The enclosed tests:
- demonstrate the absense of the VerifyError
- show the names generated for the lifted methods (which are
unchanged in the simple case)
- ensure that the callers are rewritten to call the correct
method when multiple with the same name are lifted.

It's not ideal that this phase needs a priori knowledge of the
later phases to perform this mangling. A better fix would defer
this until the point when the methods are publicised (where is that?),
and leave the unmangled private method in place and install an public,
mangled forwarder.

review by @paulp, @odersky.