anchor.diff:    /// This occurs because the Dart parser expects expressions to occur in a
     /// larger context (a Dart file). It stops parsing on certain conditions such
     /// as semi-colons. We must report the excess, ie, `{{foo;}}`.
  -  static const TRAILING_EXPRESSION = const AngularWarningCode(
  +  static const TRAILING_EXPRESSION = AngularWarningCode(
         'TRAILING_EXPRESSION', 'Unexpected expression contents');
   
     /// An error for when an `@Output` is not an Stream.
  -  static const OUTPUT_MUST_BE_STREAM = const AngularWarningCode(
  +  static const OUTPUT_MUST_BE_STREAM = AngularWarningCode(
         'OUTPUT_MUST_BE_STREAM', 'Output (of name {0}) must return a Stream');
   
     /// An error for when a two-way binding expression is not assignable.
  -  static const TWO_WAY_BINDING_NOT_ASSIGNABLE = const AngularWarningCode(
  +  static const TWO_WAY_BINDING_NOT_ASSIGNABLE = AngularWarningCode(
         'TWO_WAY_BINDING_NOT_ASSIGNABLE',
         'Only assignable expressions can be two-way bound');
   
     /// An error for when an `@Input` annotation was used in the wrong place.
  -  static const INPUT_ANNOTATION_PLACEMENT_INVALID = const AngularWarningCode(
  +  static const INPUT_ANNOTATION_PLACEMENT_INVALID = AngularWarningCode(
         'INPUT_ANNOTATION_PLACEMENT_INVALID',
         'The @Input() annotation can only be put on properties and setters');
   
     /// An error for when an `@Output` annotation was used in the wrong place.
  -  static const OUTPUT_ANNOTATION_PLACEMENT_INVALID = const AngularWarningCode(
  +  static const OUTPUT_ANNOTATION_PLACEMENT_INVALID = AngularWarningCode(
         'OUTPUT_ANNOTATION_PLACEMENT_INVALID',
         'The @Output() annotation can only be put on properties and getters');
   
  
positive.code:   ///
    /// For instance, using `x="y"` rather than `[x]="y"`, where input `x` is not
    /// a string input.
    static const STRING_STYLE_INPUT_BINDING_INVALID = const AngularWarningCode(
        'STRING_STYLE_INPUT_BINDING_INVALID',
        'Input {0} is not a string input, but is not bound with [bracket] syntax.'
            ' This binds the String attribute value directly, resulting  in a type '
  
negative.code:   /// An error for when a `@ContentChild` was matched multiple times.
    ///
    /// TODO(b/129880606): Support `@ViewChild` analysis as well.
    static const SINGULAR_CHILD_QUERY_MATCHED_MULTIPLE_TIMES = AngularWarningCode(
        'SINGULAR_CHILD_QUERY_MATCHED_MULTIPLE_TIMES',
        'A containing {0} expects a single child matching {1}, but this is'
            ' not the first match. Use (Content or View)Children to allow'
            ' multiple matches.');
  
    /// An error for when the exports array got a non-identifier.
    static const EXPORTS_MUST_BE_PLAIN_IDENTIFIERS = AngularWarningCode(
        'EXPORTS_MUST_BE_PLAIN_IDENTIFIERS', 'Exports must be plain identifiers');
  
    /// An error for when an identifier was exported multiple times.
    static const DUPLICATE_EXPORT = AngularWarningCode(
        'DUPLICATE_EXPORT', 'Duplicate export of identifier {0}');
  
    /// An error for when an identifier was used in a template, but not exported
    /// in the component.
    static const IDENTIFIER_NOT_EXPORTED = AngularWarningCode(
        'IDENTIFIER_NOT_EXPORTED',
        'Identifier {0} was not exported by the component and therefore cannot be'
            ' used in its template. Add it to the exports property on the component'
            ' definition to use it here.');
  
    /// An error for when component `Foo` exports `Foo`, which is unnecessary.
    static const COMPONENTS_CANT_EXPORT_THEMSELVES = AngularWarningCode(
        'COMPONENTS_CANT_EXPORT_THEMSELVES',
        'Components export their class by default, and therefore should not be'
            ' specified in the exports list');
  
    /// An error for when a Pipe class is abstract.
    static const PIPE_CANNOT_BE_ABSTRACT = AngularWarningCode(
        'PIPE_CANNOT_BE_ABSTRACT', r'Pipe classes cannot be abstract');
  
    /// An error for when a Pipe annotation does not include a name.
    static const PIPE_SINGLE_NAME_REQUIRED = AngularWarningCode(
        'PIPE_NAME_MISSING',
        r'@Pipe declarations must contain exactly one'
            r' non-named argument of String type for pipe name');
  
    /// An error for when a declared Pipe does not extend [PipeTransform] class.
    static const PIPE_REQUIRES_PIPETRANSFORM = AngularWarningCode(
        'PIPE_REQUIRES_PIPETRANSFORM',
        "@Pipe declared classes need to extend 'PipeTransform'");
  
    /// An error for when a declared Pipe does not have a 'transform' method.
    static const PIPE_REQUIRES_TRANSFORM_METHOD = AngularWarningCode(
      'PIPE_REQUIRES_TRANSFORM_METHOD',
      "@Pipe declared classes must contain a 'transform' method",
    );
  
    /// An error for when a Pipe's 'transform' method has named arguments.
    static const PIPE_TRANSFORM_NO_NAMED_ARGS = AngularWarningCode(
        'PIPE_TRANSFORM_NO_NAMED_ARGS',
        "'transform' method for pipe should not have named arguments");
  
    /// An error for when a Pipe's 'transform' method does not have at least one
    /// argument.
    static const PIPE_TRANSFORM_REQ_ONE_ARG = AngularWarningCode(
        'PIPE_TRANSFORM_REQ_ONE_ARG',
        "'transform' method requires at least one argument");
  
    /// An error for when pipe syntax is used but does not match a pipe name.
    static const PIPE_NOT_FOUND = AngularWarningCode(
        'PIPE_NOT_FOUND',
        "Pipe by name of {0} not found. Did you reference it in your @Component"
            " configuration?");
  
    /// An error for when pipe syntax is used but the name matches multiple pipes.
    static const AMBIGUOUS_PIPE = AngularWarningCode(
        'AMBIGUOUS_PIPE',
        "Multiple pipes by name of {0} found. Check the `pipes` field of your "
            "@Component annotation for duplicates and/or conflicts.");
  
    /// An error for when a security exception will be thrown by an input binding.
    static const UNSAFE_BINDING = AngularWarningCode(
        'UNSAFE_BINDING',
        'A security exception will be thrown by this binding. You must use the '
            ' security service to get an instance of {0} and bind that result.');
  