anchor.diff:         assert(decoration == null || decoration.debugAssertIsValid()),
          assert(color == null || decoration == null,
            'Cannot provide both a color and a decoration\n'
  -         'The color argument is just a shorthand for "decoration: new BoxDecoration(color: color)".'
  +         'The color argument is just a shorthand for "decoration: BoxDecoration(color: color)".'
          ),
          decoration = decoration ?? (color != null ? BoxDecoration(color: color) : null),
          super(key: key);
  
positive.code:   ///
    /// The [height] and [width] values include the [padding].
    ///
    /// The `color` argument is a shorthand for `decoration: new
    /// BoxDecoration(color: color)`, which means you cannot supply both a `color`
    /// and a `decoration` argument. If you want to have both a `color` and a
    /// `decoration`, you can pass the color as the `color` argument to the
    /// `BoxDecoration`.
    Ink({
      Key key,
      this.padding,
  
negative.code:   /// a [Material].
    ///
    /// This argument is a shorthand for passing a [BoxDecoration] that has only
    /// its [BoxDecoration.image] property set to the [Ink] constructor. The
    /// properties of the [DecorationImage] of that [BoxDecoration] are set
    /// according to the arguments passed to this method.
    ///
    /// The `image` argument must not be null. If there is no
    /// intention to render anything on this image, consider using a
    /// [Container] with a [BoxDecoration.image] instead.
    ///
    /// The `alignment`, `repeat`, and `matchTextDirection` arguments must not
    /// be null either, but they have default values.
    ///
    /// See [paintImage] for a description of the meaning of these arguments.
    Ink.image({
  