anchor.diff:      _scheduleBuild();
     }
   
  -  String toStringName() {
  -    if (_isStateInitialized)
  -      return 'Stateful ${super.toStringName()}';
  -    return 'Stateless ${super.toStringName()}';
  +  void debugAddDetails(List<String> details) {
  +    super.debugAddDetails(details);
  +    details.add(_isStateInitialized ? 'stateful' : 'stateless');
     }
   }
   
  
positive.code:             listener(key, widget);
          }
        }
  
        for (GlobalKey key in _removedKeys) {
          if (!_registry.containsKey(key) && _removeListeners.containsKey(key)) {
            Set<GlobalKeyRemoveListener> localListeners = new Set<GlobalKeyRemoveListener>.from(_removeListeners[key]);
  
negative.code: 
    Widget build();
  
    void debugAddDetails(List<String> details) {
      super.debugAddDetails(details);
      if (_dirty)
        details.add('dirty');
    }
  }
  
  abstract class StatefulComponent extends Component {
  