That's a little bit strange, and we need to debug the code and see how setter for the property get called. I quickly looked at docs and there are few things that may explain it: * Dagger 1.0 is said to be "half static, half reflection" injection framework. * Dagger 2.0 is said to be "in transition from Dagger 1.0 to fully static solution"
So, probably, it’s “half reflection” that gets it running, and probably it will stop working in Dagger 2.0 some day, because clearly it cannot read Kotlin’s source code, as Kotlin’s compiler doesn’t run any annotation processing tools.