Skip to content

Using superinterfaces generates invalid component. #6

@dan-dr

Description

@dan-dr

If I have

@AutoComponent(
        dependencies = ApplicationComponent.class,
        modules = MainModule.class)
@AutoInjector
@PerActivity
public class MainActivity extends Activity {
}

@AutoComponent(
        superinterfaces = MainActivity.class,
        modules = {MainModule.class},
        dependencies = { ApplicationComponent.class }
)
@AutoInjector
@PerActivity
public class MyFragment extends Fragment {
}

This generates the following component:

@Generated("autodagger.compiler.AnnotationProcessor")
@Component(
    dependencies = ApplicationComponent.class,
    modules = {
        MainModule.class
    }
)
public interface MyFragmentComponent extends MainActivity {
  void inject(MyFragment myFragment);
}

Notice it extends MainActivity instead of MainActivityComponent

If i try to do superinterfaces = MainActivityComponent.class
I'm getting an error:
Error:(37, 8) error: Invalid value: superinterfaces cannot reference generated class. Use the class that applies the @AutoComponent annotation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions