A @Qualifier or a @BindingAnnotation has no effect here, and can be removed. Its presence may be misleading.

For example:

final class MyInjectableClass {
  @Username private final String username;

  @Inject
  MyInjectableClass(@Username String username) {
    this.username = username;
  }
}

The annotation on the constructor parameter is important, but the field annotation is redundant.

final class MyInjectableClass {
  private final String username;

  @Inject
  MyInjectableClass(@Username String username) {
    this.username = username;
  }
}

There are a couple of ways this check can lead to false positives:

  • You‘re using a custom framework we don’t know about which makes the location of the finding an injection point. File a bug, and we'll happily incorporate it.

  • Your annotation is annotated with @Qualifier or @BindingAnnotation but isn't actually used as a qualifier (perhaps you have a framework that just uses it reflectively). Try removing those annotations from the annotation.