anchor.diff:    selector: 'no-dependency-test',
     template: '<div simpleDirective></div>',
     directives: const [SimpleDirective],
  -  // TODO(b/71710685): Change to `Visibility.local` to reduce code size.
  -  visibility: Visibility.all,
  -)
  -class NoDependencyTest {}
  +)
  +class NoDependencyTest {
  +  @ViewChild(SimpleDirective)
  +  SimpleDirective simpleDirective;
  +}
   
   @Component(
     selector: 'simple-dependency-test',
     template: '<div simpleDirective needsDirective></div>',
     directives: const [SimpleDirective, NeedsDirective],
  -  // TODO(b/71710685): Change to `Visibility.local` to reduce code size.
  -  visibility: Visibility.all,
  -)
  -class SimpleDependencyTest {}
  +)
  +class SimpleDependencyTest {
  +  @ViewChild(NeedsDirective)
  +  NeedsDirective needsDirective;
  +}
   
   @Directive(
     selector: '[simpleDirective]',
     providers: const [const Provider('injectable1', useValue: 'injectable1')],
  -  // TODO(b/71710685): Change to `Visibility.local` to reduce code size.
  -  visibility: Visibility.all,
   )
   class SkipSelfSimpleDirective {}
   
  
positive.code:           'view into the component via a proxy', () async {
          var testBed = new NgTestBed<InjectChangeDetectorTest>();
          var fixture = await testBed.create();
          var el = getDebugNode(fixture.rootElement) as DebugElement;
          var comp = el.children[0].inject(PushComponentNeedsChangeDetectorRef);
          await fixture.update((_) {
            comp.counter = 1;
          });
          expect(fixture.text, '0');
          await fixture.update((_) {
            comp.changeDetectorRef.markForCheck();
          });
          expect(fixture.text, '1');
        });
  
negative.code:   selector: 'view-providers-fail-test',
    template: '<simpleComponent needsService></simpleComponent>',
    directives: const [ViewProvidersFailSimpleComponent, NeedsService],
  )
  class ViewProvidersFailTest {}
  
  