All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xsbti.compile.ScalaCompiler Maven / Gradle / Ivy

There is a newer version: 1.1.7
Show newest version
package xsbti.compile;

import xsbti.AnalysisCallback;
import xsbti.Logger;
import xsbti.Maybe;
import xsbti.Reporter;
import java.io.File;

/**
* Interface to a Scala compiler.
*/
public interface ScalaCompiler
{
	/**
	 * The `ScalaInstance` used by this compiler.
	 */
	ScalaInstance scalaInstance();

	/**
	 * The `ClasspathOptions` used by this compiler.
	 */
	ClasspathOptions classpathOptions();

	/**
	 * Recompile the subset of `sources` impacted by `changes` and collect new APIs.
	 *
	 * @param sources  All the sources of the project.
	 * @param changes  The changes that have been detected at the previous step.
	 * @param callback The callback to which the extracted information should be reported.
	 * @param log      Logger to use for compilation.
	 * @param reporter The reporter to which errors and warnings should be reported during compilation.
	 * @param progress Where to report the file being currently compiled.
	 * @param compiler The actual compiler that will perform the compilation step.
	 */
	void compile(File[] sources, DependencyChanges changes, AnalysisCallback callback, Logger log, Reporter reporter, CompileProgress progress, CachedCompiler compiler);

	/**
	 * Recompile the subset of `sources` impacted by `changes` and collect new APIs.
	 *
	 * @param sources     All the sources of the project.
	 * @param changes     The changes that have been detected at the previous step.
	 * @param options     Arguments to give to the compiler (-Xfatal-warnings, ...).
	 * @param output      Location where generated class files should be put.
	 * @param callback    The callback to which the extracted information should be reported.
	 * @param reporter    The reporter to which errors and warnings should be reported during compilation.
	 * @param cache       The cache from where we retrieve the compiler to use.
	 * @param log         Logger to use for compilation.
	 * @param progressOpt The `CompileProgress` to use to report the file being compile.
	 */
	void compile(File[] sources, DependencyChanges changes, String[] options, Output output, AnalysisCallback callback, Reporter reporter, GlobalsCache cache, Logger log, Maybe progressOpt);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy