anchor.diff:        ancestor = ancestor._parent;
     }
   
  +  /// Called when a dependency of this element changes.
  +  ///
  +  /// The [inheritFromWidgetOfExactType] registers this element as depending on
  +  /// inherited information of the given type. When the information of that type
  +  /// changes at this location in the tree (e.g., because the [InheritedElement]
  +  /// updated to a new [InheritedWidget] and
  +  /// [InheritedWidget.updateShouldNotify] returned true), the framework calls
  +  /// this function to notify this element of the change.
     @mustCallSuper
     void dependenciesChanged() { }
   
  +  /// Returns a description of what caused this element to be created.
  +  ///
  +  /// Useful for debugging the source of an element.
     String debugGetCreatorChain(int limit) {
       List<String> chain = <String>[];
       Element node = this;
  
positive.code:   @protected
    Widget build(BuildContext context);
  
    /// Called when a dependencies of this [State] object changes.
    ///
    /// For example, if the previous call to [build] referenced an
    /// [InheritedWidget] that later changed, the framework would call this
  
negative.code:     return inflateWidget(newWidget, newSlot);
    }
  
    /// Add this element to the tree in the given slot of the given parent.
    ///
    /// The framework calls this function when a newly created element is added to
    /// the tree for the first time. Use this method to initialize state that
    /// depends on having a parent. State that is independent of the parent can
    /// more easily be initialized in the contructor.
    ///
    /// This method transitions the element from the "initial" lifecycle state to
    /// the "active" lifecycle state.
    @mustCallSuper
    void mount(Element parent, dynamic newSlot) {
      assert(_debugLifecycleState == _ElementLifecycle.initial);
  