google/dagger — pull request #49 by JakeWharton (2014-10-27 20:03:27+00:00)
Title: Only instantiate one proxy per package.

Prior to this change, an instance of the package proxy would have been created for every step in a classes inheritance hierarchy.

Here's a diff from the test case's expected source when this change is made:
```diff
--- bad	2014-10-27 12:51:58.000000000 -0700
+++ good	2014-10-27 12:52:02.000000000 -0700
@@ -11 +10,0 @@
- private final Dagger_TestComponent__PackageProxy foreign_Proxy1 = new Dagger_TestComponent__PackageProxy();
@@ -29,2 +28,2 @@
- this.foreign_Proxy1.contextWrapperMembersInjector = MembersInjectors.delegatingTo(foreign_Proxy.contextMembersInjector);
- this.testClassMembersInjector = MembersInjectors.delegatingTo(foreign_Proxy1.contextWrapperMembersInjector);
+ this.foreign_Proxy.contextWrapperMembersInjector = MembersInjectors.delegatingTo(foreign_Proxy.contextMembersInjector);
+ this.testClassMembersInjector = MembersInjectors.delegatingTo(foreign_Proxy.contextWrapperMembersInjector);
```

And here's a diff from Greg's simple Android sample project:
```diff
--- bad	2014-10-27 13:01:23.000000000 -0700
+++ good	2014-10-27 13:00:47.000000000 -0700
@@ -16 +15,0 @@
- private final android.content.Dagger_DemoActivityComponent__PackageProxy android_content_Proxy1 = new android.content.Dagger_DemoActivityComponent__PackageProxy();
@@ -18 +16,0 @@
- private final Dagger_DemoActivityComponent__PackageProxy android_app_Proxy1 = new Dagger_DemoActivityComponent__PackageProxy();
@@ -37,4 +35,4 @@
- this.android_content_Proxy1.contextWrapperMembersInjector = MembersInjectors.delegatingTo(android_content_Proxy.contextMembersInjector);
- this.android_view_Proxy.contextThemeWrapperMembersInjector = MembersInjectors.delegatingTo(android_content_Proxy1.contextWrapperMembersInjector);
- this.android_app_Proxy1.activityMembersInjector = MembersInjectors.delegatingTo(android_view_Proxy.contextThemeWrapperMembersInjector);
- this.demoActivityMembersInjector = MembersInjectors.delegatingTo(android_app_Proxy1.activityMembersInjector);
+ this.android_content_Proxy.contextWrapperMembersInjector = MembersInjectors.delegatingTo(android_content_Proxy.contextMembersInjector);
+ this.android_view_Proxy.contextThemeWrapperMembersInjector = MembersInjectors.delegatingTo(android_content_Proxy.contextWrapperMembersInjector);
+ this.android_app_Proxy.activityMembersInjector = MembersInjectors.delegatingTo(android_view_Proxy.contextThemeWrapperMembersInjector);
+ this.demoActivityMembersInjector = MembersInjectors.delegatingTo(android_app_Proxy.activityMembersInjector);
```