anchor.diff:      final log = fixture.assertOnlyInstance.lifecycleLog;
       final router = fixture.assertOnlyInstance.router;
       expect(log, [
  -      '$FirstChildComponent.ngOnInit',
  -      '$FirstChildComponent.canActivate',
  -      '$FirstChildComponent.onActivate',
  +      '$FirstChildComponent[0].ngOnInit',
  +      '$FirstChildComponent[0].canActivate',
  +      '$FirstChildComponent[0].onActivate',
       ]);
       log.clear();
       expect(await router.navigate('/'), NavigationResult.SUCCESS);
       expect(log, [
  -      '$FirstChildComponent.canNavigate',
  +      '$FirstChildComponent[0].canNavigate',
       ]);
     });
   
  
positive.code:     useAsDefault: true,
    );
  
    final String componentName = '$FirstReusableChildComponent';
    final List<String> lifecycleLog;
  
    FirstReusableChildComponent(@Inject(lifecycleLogToken) this.lifecycleLog);
  
    @override
    Future<bool> canReuse(_, __) async {
  
negative.code:         OnDeactivate,
          OnDestroy,
          OnInit {
    /// An identifier used to indicate which instance received a lifecycle call.
    final String _identifier;
  
    /// An ordered list in which lifecycle invocations are recorded.
    final List<String> lifecycleLog;
  
    RouterLifecycleLogger(
      String name,
      Map<String, int> instanceIds,
      this.lifecycleLog,
    ) : _identifier = instanceIds.containsKey(name)
              ? '$name[${++instanceIds[name]}]'
              : '$name[0]' {
      instanceIds.putIfAbsent(name, () => 0);
    }
  
    @override
    Future<bool> canActivate(_, __) async {
      lifecycleLog.add('$_identifier.canActivate');
      return true;
    }
  
    @override
    Future<bool> canDeactivate(_, __) async {
      lifecycleLog.add('$_identifier.canDeactivate');
      return true;
    }
  
    @override
    Future<bool> canNavigate() async {
      lifecycleLog.add('$_identifier.canNavigate');
      return true;
    }
  
    @override
    Future<bool> canReuse(_, __) async {
      lifecycleLog.add('$_identifier.canReuse');
      return false;
    }
  
    @override
    void onActivate(_, __) {
      lifecycleLog.add('$_identifier.onActivate');
    }
  
    @override
    void onDeactivate(_, __) {
      lifecycleLog.add('$_identifier.onDeactivate');
    }
  
    @override
    void ngOnDestroy() {
      lifecycleLog.add('$_identifier.ngOnDestroy');
    }
  
    @override
    void ngOnInit() {
      lifecycleLog.add('$_identifier.ngOnInit');
    }
  }
  
  