Имеем вот такой модуль:
@Moduleobject MyModule {
@Provides @BarSingleton fun makeSingleton(provider: Provider<Int>): Int = provider.get()
}
Даггер генерит примерно такое (если убрать мишуру):
val intProvider = dagger.internal.DelegateFactory<Int>()
dagger.internal.DelegateFactory.setDelegate(
intProvider,
dagger.internal.DoubleCheck.provider(
Provider{ MyModule.makeSingleton(intProvider) }
)
)
Тогда
intProvider.get() кидает StackOverflowError