/*
 * 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";

}
