// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. /// @docImport 'package:analyzer/error/listener.dart'; library; import 'dart:collection'; import 'package:_fe_analyzer_shared/src/base/errors.dart'; import 'package:analyzer/diagnostic/diagnostic.dart'; import 'package:analyzer/src/diagnostic/diagnostic_code_values.dart'; export 'package:_fe_analyzer_shared/src/base/errors.dart' show DiagnosticCode, DiagnosticSeverity, DiagnosticType; export 'package:analyzer/src/dart/error/lint_codes.dart' show LintCode; export 'package:analyzer/src/diagnostic/diagnostic_code_values.dart' show diagnosticCodeValues, errorCodeValues; /// The lazy initialized map from [DiagnosticCode.lowerCaseUniqueName] to the /// [DiagnosticCode] instance. final HashMap _uniqueNameToCodeMap = _computeUniqueNameToCodeMap(); /// Return the [DiagnosticCode] with the given [uniqueName], or `null` if not /// found. DiagnosticCode? errorCodeByUniqueName(String uniqueName) { return _uniqueNameToCodeMap[uniqueName]; } /// The map from [DiagnosticCode.lowerCaseUniqueName] to the [DiagnosticCode] /// instance for all [diagnosticCodeValues]. HashMap _computeUniqueNameToCodeMap() { var result = HashMap(); for (DiagnosticCode diagnosticCode in diagnosticCodeValues) { var uniqueName = diagnosticCode.lowerCaseUniqueName; assert(() { if (result.containsKey(uniqueName)) { throw StateError('Not unique: $uniqueName'); } return true; }()); result[uniqueName] = diagnosticCode; } return result; } /// A deprecated name for [Diagnostic]. Please use [Diagnostic]. @Deprecated("Use 'Diagnostic' instead.") typedef AnalysisError = Diagnostic;