When annotating a private field with visibility with @Inject, the annotation processor still generates code which directly accesses that field and thus can't be compiled. I think the annotation processor should better create an error clearly indicating the issue. On the other hand injecting private field works when using the reflective plug-in, so maybe the processor could also generate code which accesses the field reflectively in such cases.
We should just report an error in either case. We don't want to rely on reflection.
Or maybe invoke a setter method (if there is one)?
If application code wants private or final, it should use constructor injection.
Forbid injection on private fields.
Closes #181. Closes #113.
Forbid injection on private fields and constructors.
Add restrictions around injectable targets.
* Private fields are not supported.
* Private constructors are not supported.
* Methods are not supported.
Closes #181. Closes #113. Closes #112.