anchor.diff:      return null;
     }
   
  +  _FormFieldData maybeDispose(BuildContext context) {
  +    if (FormScope.of(context) != null)
  +      return this;
  +    dispose();
  +    return null;
  +  }
  +
  +  void dispose() {
  +    value = null;
  +  }
  +
     void onChanged(InputValue value) {
  +    assert(value != null);
  +    assert(field != null);
       FormScope scope = FormScope.of(inputState.context);
       assert(scope != null);
       this.value = value;
       if (field.setter != null)
         field.setter(value.text);
  +    if (inputState.config.onChanged != null)
  +      inputState.config.onChanged(value);
       scope.onFieldChanged();
     }
   
     void onSubmitted(InputValue value) {
  +    assert(value != null);
  +    assert(field != null);
       FormScope scope = FormScope.of(inputState.context);
       assert(scope != null);
       if (scope.form.onSubmitted != null)
         scope.form.onSubmitted();
  +    if (inputState.config.onSubmitted != null)
  +      inputState.config.onSubmitted(value);
       scope.onFieldChanged();
     }
   }
  
positive.code:   /// Creates a text input field.
    ///
    /// By default, the input uses a keyboard appropriate for text entry.
    Input({
      Key key,
      this.value,
  
negative.code:   final String hintText;
  
    /// Text to show when the input text is invalid.
    ///
    /// If this is set, then the [formField]'s [FormField.validator], if any, is
    /// ignored.
    final String errorText;
  
    /// The style to use for the text being edited.
    final TextStyle style;
  
    /// Whether to hide the text being edited (e.g., for passwords).
    ///
    /// When this is set to true, all the characters in the input are replaced by
    /// U+2022 BULLET characters (•).
    final bool hideText;
  
    /// Whether the input field is part of a dense form (i.e., uses less vertical space).
    final bool isDense;
  
    /// Whether this input field should focus itself if nothing else is already focused.
    final bool autofocus;
  
    /// The maximum number of lines for the text to span, wrapping if necessary.
  