#395·dagger

Use NameAllocator to avoid local/field name collisions.

Author: christopherperryCreated Mar 14, 2014Updated Dec 26, 2015

The following causes Dagger to compile incorrectly.

java
   @Module(
        injects = SomeClass.class
    )
    public static class MyModule {
        @Provides InjectedClass provideInjectedClass() {
            return new InjectedClass();
        }
    }

    public static class SomeClass {
        @Inject InjectedClass object; // Problem is with variable name
    }

    public static class InjectedClass {}

    @Test
    public void dagger_shouldInject() {
        ObjectGraph objectGraph = ObjectGraph.create(new MyModule());
        SomeClass someClass = new SomeClass();
        objectGraph.inject(someClass);

        assertThat(someClass.object).isNotNull();
    }