evant / kotlin-inject

Dependency injection lib for kotlin
Apache License 2.0
1.24k stars 55 forks source link

Search for a covariant type when checking if a component's abstract property has been implemented #342

Closed eygraber closed 7 months ago

eygraber commented 8 months ago

The following code causes an error:

Cannot find an @Inject constructor or provider for: AppComponent

interface AppComponent

abstract class SessionComponent {
    abstract val appComponent: AppComponent
}

@Component
abstract class InheritedAppComponent : AppComponent

@Component
abstract class InheritedSessionComponent(
    @Component override val appComponent: InheritedAppComponent,
) : SessionComponent()

It looks like #326 was too aggressive in fixing #309