anchor.diff:    }
   
     void _onExpanded() {
  -    widget?.onItemExpanded(widget.data);
  +    widget.onItemExpanded(widget.data);
       setExpanded(widget.data.isExpanded);
     }
   
     void _onSelected() {
  -    widget?.onItemSelected(widget.data);
  +    widget.onItemSelected(widget.data);
       setExpanded(widget.data.isExpanded);
     }
   }
   
   mixin TreeMixin<T extends TreeNode<T>> {
  -  List<T> dataRoots;
  -
  -  List<T> items;
  +  late List<T> dataRoots;
  +
  +  late List<T> items;
   
     List<T> buildFlatList(
       List<T> roots, {
  -    void onTraverse(T node),
  +    void onTraverse(T node)?,
     }) {
       final flatList = <T>[];
       for (T root in roots) {
  
positive.code:       item.toggleExpansion();
      }
      if (widget.onItemExpanded != null) {
        await widget.onItemExpanded(item);
      } else if (widget.onItemSelected != null) {
        await widget.onItemSelected(item);
      }
      _updateItems();
  
negative.code:   }
  }
  
  class _TreeViewItem<T extends TreeNode<T>> extends StatefulWidget {
    const _TreeViewItem(
      this.data, {
      required this.buildDisplay,
      required this.onItemExpanded,
      required this.onItemSelected,
    });
  
    final T data;
  