anchor.diff:    /// be sometimes useful, but may not always apply). Other [DiagnosticsNode]
     /// subclasses, such as [DiagnosticsStackTrace], may
     /// also be used.
  +  ///
  +  /// When using an [ErrorSummary], [ErrorDescription]s, and [ErrorHint]s, in
  +  /// debug builds, values interpolated into the `message` arguments of those
  +  /// classes' constructors are expanded and placed into the
  +  /// [DiagnosticsProperty.value] property of those objects (which is of type
  +  /// [List<Object>]). This allows IDEs to examine values interpolated into
  +  /// error messages.
  +  ///
  +  /// Alternatively, to include a specific [Diagnosticable] object into the
  +  /// error message and have the object describe itself in detail (see
  +  /// [DiagnosticsNode.toStringDeep]), consider calling
  +  /// [Diagnosticable.toDiagnosticsNode] on that object and using that as one of
  +  /// the values passed to this constructor.
  +  ///
  +  /// {@tool snippet}
  +  /// In this example, an error is thrown in debug mode if certain conditions
  +  /// are not met. The error message includes a description of an object that
  +  /// implements the [Diagnosticable] interface, `draconis`.
  +  ///
  +  /// ```dart
  +  /// void controlDraconis() {
  +  ///   assert(() {
  +  ///     if (!draconisAlive || !draconisAmulet) {
  +  ///       throw FlutterError.fromParts(<DiagnosticsNode>[
  +  ///         ErrorSummary('Cannot control Draconis in current state.'),
  +  ///         ErrorDescription('Draconis can only be controlled while alive and while the amulet is wielded.'),
  +  ///         if (!draconisAlive)
  +  ///           ErrorHint('Draconis is currently not alive.'),
  +  ///         if (!draconisAmulet)
  +  ///           ErrorHint('The Amulet of Draconis is currently not wielded.'),
  +  ///         draconis.toDiagnosticsNode(name: 'Draconis'),
  +  ///       ]);
  +  ///     }
  +  ///     return true;
  +  ///   }());
  +  ///   // ...
  +  /// }
  +  /// ```
  +  /// {@end-tool}
     FlutterError.fromParts(this.diagnostics) : assert(diagnostics.isNotEmpty, FlutterError.fromParts(<DiagnosticsNode>[ErrorSummary('Empty FlutterError')])) {
       assert(
         diagnostics.first.level == DiagnosticLevel.summary,
  
positive.code: 
  // Examples can assume:
  // String runtimeType;
  
  /// Signature for [FlutterError.onError] handler.
  typedef FlutterExceptionHandler = void Function(FlutterErrorDetails details);
  
negative.code: 
  /// Class for information provided to [FlutterExceptionHandler] callbacks.
  ///
  /// {@tool snippet}
  /// This is an example of using [FlutterErrorDetails] when calling
  /// [FlutterError.reportError].
  ///
  