anchor.diff:      this.recognizer
     });
   
  -  /// The style to apply to the text and the children.
  +  /// The style to apply to the [text] and the [children].
     final TextStyle style;
   
     /// The text contained in the span.
     ///
  -  /// If both text and children are non-null, the text will preceed the
  +  /// If both [text] and [children] are non-null, the text will preceed the
     /// children.
     final String text;
   
     /// Additional spans to include as children.
     ///
  -  /// If both text and children are non-null, the text will preceed the
  +  /// If both [text] and [children] are non-null, the text will preceed the
     /// children.
  +  ///
  +  /// Modifying the list after the [TextSpan] has been created is not
  +  /// supported and may have unexpected results.
  +  ///
  +  /// The list must not contain any nulls.
     final List<TextSpan> children;
   
  -  /// If non-null, will receive events that hit this text span.
  +  /// A gesture recognizer that will receive events that hit this text span.
  +  ///
  +  /// [TextSpan] itself does not implement hit testing or event
  +  /// dispatch. The owner of the [TextSpan] tree to which the object
  +  /// belongs is responsible for dispatching events.
  +  ///
  +  /// For an example, see [RenderParagraph] in the Flutter rendering library.
     final GestureRecognizer recognizer;
   
  +  /// Apply the [style], [text], and [children] of this object to the
  +  /// given [ParagraphBuilder], from which a [Paragraph] can be obtained.
  +  /// [Paragraph] objects can be drawn on [Canvas] objects.
  +  ///
  +  /// Rather than using this directly, it's simpler to use the
  +  /// [TextPainter] class to paint [TextSpan] objects onto [Canvas]
  +  /// objects.
     void build(ui.ParagraphBuilder builder) {
       assert(debugAssertValid());
       final bool hasStyle = style != null;
  
positive.code:   int get hashCode => hashValues(style, text, recognizer, hashList(children));
  }
  
  /// An object that paints a [TextSpan] into a canvas.
  class TextPainter {
    TextPainter([ TextSpan text ]) {
      this.text = text;
  
negative.code:     return buffer.toString();
    }
  
    /// In checked mode, throws an exception if the object is not in a
    /// valid configuration. Otherwise, returns true.
    ///
    /// This is intended to be used as follows:
    /// ```dart
    ///   assert(myTextSpan.debugAssertValid());
    /// ```
    bool debugAssertValid() {
      assert(() {
        if (!visitTextSpan((TextSpan span) {
  