dagger-reflect icon indicating copy to clipboard operation
dagger-reflect copied to clipboard

Component with generic parameter inheritance

Open Dkhusainov opened this issue 5 years ago • 0 comments

dagger-reflect: 0.3.0

code:

fun main() {
  dagger.Dagger
    .create(MyComponent::class.java)
// DaggerMyComponent.create()
    .getS()
}

abstract class MyClass
interface GenericComponent<S: MyClass> {
  fun getS(): S
}

class MyClassImpl @javax.inject.Inject constructor(): MyClass()
@dagger.Component
interface MyComponent : GenericComponent<MyClassImpl>

error:

Exception in thread "main" java.lang.IllegalArgumentException: No provider available for S
	at dagger.reflect.Scope.getBinding(Scope.java:48)
	at dagger.reflect.ComponentInvocationHandler.createMethodInvocationHandler(ComponentInvocationHandler.java:99)

Dagger works as expected - function return an instance of MyClassImpl

Dkhusainov avatar Sep 06 '20 21:09 Dkhusainov