// 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.

import 'package:analyzer/error/error.dart';

/**
 * Defines style and best practice recommendations.
 *
 * Unlike [HintCode]s, which are akin to traditional static warnings from a
 * compiler, lint recommendations focus on matters of style and practices that
 * might aggregated to define a project's style guide.
 */
class LintCode extends ErrorCode {
  const LintCode(String name, String message, {String correction})
      : super.temporary(name, message, correction: correction);

  @override
  ErrorSeverity get errorSeverity => ErrorSeverity.INFO;

  @override
  ErrorType get type => ErrorType.LINT;

  /**
   * Overridden so that [LintCode] and its subclasses share the same uniqueName
   * pattern (we know how to identify a lint even if we don't know the specific
   * subclass the lint's code is defined in.
   */
  String get uniqueName => "LintCode.$name";
}
