// Copyright (c) 2017, the R8 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.
package com.android.tools.r8;

/**
 * Exception thrown when compilation failed to complete because of errors previously reported
 * through {@link com.android.tools.r8.DiagnosticsHandler}.
 */
@Keep
public class CompilationFailedException extends Exception {

  private final boolean cancelled;

  CompilationFailedException(String message, Throwable cause, boolean cancelled) {
    super(message, cause);
    this.cancelled = cancelled;
  }

  /** True if the compilation was cancelled by {@link CancelCompilationChecker} otherwise false. */
  public boolean wasCancelled() {
    return cancelled;
  }
}
