anchor.diff:    final bar = Bar();
   }
   
  +@Component(
  +  selector: 'test',
  +  template: r'<button (click)="bar.doCapture()"></button>',
  +)
  +class TestChainedMethodsDirect {
  +  final bar = Bar();
  +}
  +
   class Bar {
     void Function() overrideDoCapture = () {};
     void doCapture() {
  
positive.code:       fixture.rootElement.querySelector('button').click();
      });
    }, skip: 'https://github.com/dart-lang/angular/issues/1670');
  }
  
  void Function() overrideTopLevelDoCapture = () {};
  
negative.code:     });
    }, skip: 'https://github.com/dart-lang/angular/issues/1670');
  
    test('should support top-level methods invoked for events', () async {
      final testBed = NgTestBed.forComponent<TestTopLevelMethodsDirect>(
        ng.TestTopLevelMethodsDirectNgFactory,
      );
      final fixture = await testBed.create();
      overrideTopLevelDoCapture = expectAsync0(() {});
      await fixture.update((_) {
        fixture.rootElement.querySelector('button').click();
      });
    });
  
    test('should support static methods tear-offs for events', () async {
      final testBed = NgTestBed.forComponent<TestStaticMethods>(
        ng.TestStaticMethodsNgFactory,
      );
      final fixture = await testBed.create();
      TestStaticMethods.overrideDoCapture = expectAsync0(() {});
      await fixture.update((_) {
        fixture.rootElement.querySelector('button').click();
      });
    });
  
    test('should support static methods invoked for events', () async {
      final testBed = NgTestBed.forComponent<TestStaticMethodsDirect>(
        ng.TestStaticMethodsDirectNgFactory,
      );
      final fixture = await testBed.create();
      TestStaticMethodsDirect.overrideDoCapture = expectAsync0(() {});
      await fixture.update((_) {
        fixture.rootElement.querySelector('button').click();
      });
  