anchor.diff:        new List.from(AnalyzerOptions.ignoreSynonyms)
           ..addAll(AnalyzerOptions.includeSynonyms));
   
  -  bool recognizedErrorCode(String name) =>
  -      ErrorCode.values.any((ErrorCode code) => code.name == name) ||
  -          StaticInfo.names.contains(name);
  +  /// Lazily populated set of error codes (hashed for speedy lookup).
  +  static HashSet<String> _errorCodes;
  +
  +  /// Legal error code names.
  +  static Set<String> get errorCodes {
  +    if (_errorCodes == null) {
  +      _errorCodes = new HashSet<String>();
  +      // Engine codes.
  +      _errorCodes.addAll(ErrorCode.values.map((ErrorCode code) => code.name));
  +      // Strong-mode codes.
  +      _errorCodes.addAll(StaticInfo.names);
  +    }
  +    return _errorCodes;
  +  }
   
     @override
     void validate(ErrorReporter reporter, Map<String, YamlNode> options) {
  
positive.code:       filters.nodes.forEach((k, v) {
          if (k is YamlScalar) {
            value = toUpperCase(k.value);
            if (!recognizedErrorCode(value)) {
              reporter.reportErrorForSpan(
                  AnalysisOptionsWarningCode.UNRECOGNIZED_ERROR_CODE,
                  k.span,
  
negative.code: // BSD-style license that can be found in the LICENSE file.
  
  library analyzer.src.task.options;
  
  import 'dart:collection';
  
  import 'package:analyzer/analyzer.dart';
  import 'package:analyzer/plugin/options.dart';
  