anchor.diff:    providers: const [
       const Provider(PublicApi, useExisting: PrivateImpl),
     ],
  -  // TODO(b/71710685): Change to `Visibility.local` to reduce code size.
  -  visibility: Visibility.all,
   )
   class PrivateImpl extends PublicApi {}
   
   @Directive(
     selector: '[needs-public-api]',
  -  // TODO(b/71710685): Change to `Visibility.local` to reduce code size.
  -  visibility: Visibility.all,
   )
   class NeedsPublicApi {
  -  NeedsPublicApi(@Host() PublicApi api) {
  -    expect(api, new isInstanceOf<PrivateImpl>());
  -  }
  +  final PublicApi api;
  +
  +  NeedsPublicApi(@Host() this.api);
   }
   
   @Component(
  
positive.code:     PrivateImpl,
      NeedsPublicApi,
    ],
    // TODO(b/71710685): Change to `Visibility.local` to reduce code size.
    visibility: Visibility.all,
  )
  class RetrievesDependencyFromHostComponent {}
  
  @Pipe('double')
  class DoublePipe implements PipeTransform {
  
negative.code:   directives: const [
      MyDir,
    ],
  )
  class BoundDirectiveInputComponent {
    String value = 'Initial value';
  
    @ViewChildren(MyDir)
    List<MyDir> directives;
  }
  
  @Injectable()
  