/*
 * Copyright (c) 2018, 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.
 *
 * This file has been automatically generated. Please do not edit it manually.
 * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
 */
package org.dartlang.analysis.server.protocol;

/**
 * An enumeration of the possible types of analysis errors.
 *
 * @coverage dart.server.generated.types
 */
public class AnalysisErrorType {

  public static final String CHECKED_MODE_COMPILE_TIME_ERROR = "CHECKED_MODE_COMPILE_TIME_ERROR";

  public static final String COMPILE_TIME_ERROR = "COMPILE_TIME_ERROR";

  public static final String HINT = "HINT";

  public static final String LINT = "LINT";

  public static final String STATIC_TYPE_WARNING = "STATIC_TYPE_WARNING";

  public static final String STATIC_WARNING = "STATIC_WARNING";

  public static final String SYNTACTIC_ERROR = "SYNTACTIC_ERROR";

  public static final String TODO = "TODO";

}
