anchor.diff:  
   bool _didWatchFrameId = false;
   int _frameId = 0;
  -bool _canSelect = true;
  +bool _debugCanSelect = true;
   
   mixin _InheritedProviderScopeMixin<T> on InheritedElement implements InheritedContext<T> {
     bool _shouldNotifyDependents = false;
  
positive.code:     if (shouldNotify) {
        try {
          assert(() {
            _canSelect = false;
            return true;
          }());
          dependent.didChangeDependencies();
        } finally {
          assert(() {
            _canSelect = true;
            return true;
          }());
        }
  
negative.code:   ///
    /// It is fine to call `select` multiple times.
    R select<T, R>(R selector(T value)) {
      assert(_debugCanSelect, 'Cannot call `select` inside `didChangeDependencies');
      final inheritedElement = Provider._inheritedElementOf<T>(this);
      try {
        assert(() {
  