scala/scala — pull request #797 by clhodapp (2012-06-30 03:21:19+00:00)
Title: Reflection-Based DynamicProxy

This commit set restores the DynamicProxy class, which was removed due to changes in the reflection API (it was not based on reflection, but would have needed to be ported to reflection).

Unlike the previous version, which used dynamic compilation (ToolBoxes), this version uses only features available in reflect.jar. It supports the resolution of overloaded members and supports default-argument invocations. It does not support implicit arguments, explicit type arguments, or the invocation of multiple parameter list methods.

I also added a bonus feature: by overriding a boolean member, the user can create a proxy that ignores the distinction between public and private members, allowing easy reflective access to private members.