anchor.diff:            const isInstanceOf<VisibilityLocalImplementation>(),
             const isInstanceOf<VisibilityAllImplementation>(),
           ]);
  +      });
  +
  +      test('should support $FactoryProvider', () async {
  +        final testBed = NgTestBed
  +            .forComponent(ng_generated.ShouldSupportFactoryProviderNgFactory);
  +        final testFixture = await testBed.create();
  +        expect(testFixture.assertOnlyInstance.child.interface, isNotNull);
  +      });
  +
  +      test('should support $ClassProvider', () async {
  +        final testBed = NgTestBed
  +            .forComponent(ng_generated.ShouldSupportClassProviderNgFactory);
  +        final testFixture = await testBed.create();
  +        expect(testFixture.assertOnlyInstance.child.interface, isNotNull);
         });
       });
   
  
positive.code: @Component(
    selector: 'child-component-provides-service',
    providers: const [
      const Provider(SomeService, useExisting: MyChildComponentProvidesService)
    ],
    template: '<div></div>',
  )
  
negative.code:   @ViewChild(InjectsMultiToken)
    InjectsMultiToken child;
  }
  
  Interface getInterfaceFromImpl(ShouldSupportFactoryProvider impl) => impl;
  
  @Component(
    selector: 'test',
    template: '<should-inject-interface></should-inject-interface>',
    directives: const [
      ShouldInjectInterface,
    ],
    providers: const [
      const FactoryProvider(Interface, getInterfaceFromImpl),
    ],
  )
  class ShouldSupportFactoryProvider implements Interface {
    @ViewChild(ShouldInjectInterface)
    ShouldInjectInterface child;
  }
  
  @Component(
    selector: 'should-inject-interface',
    template: '',
  )
  class ShouldInjectInterface {
    Interface interface;
    ShouldInjectInterface(this.interface);
  }
  
  @Component(
    selector: 'test',
    template: '<should-inject-interface></should-inject-interface>',
    directives: const [
      ShouldInjectInterface,
    ],
    providers: const [
      ClassProvider(Interface, useClass: ShouldSupportClassProvider),
    ],
  )
  class ShouldSupportClassProvider implements Interface {
    @ViewChild(ShouldInjectInterface)
    ShouldInjectInterface child;
  }
  