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