Remove AnalysisCallback.{beginSource, endSource} methods.

As pointed out by @harrah in #705, both beginSource and endSource are
not used in sbt internally for anything meaningful.

We've discussed an option of deprecating those methods but since they
are not doing anything meaningful Mark prefers to have compile-time
error in case somebody implements or calls those methods. I agree with
that hence removal.
This commit is contained in:
Grzegorz Kossakowski 2013-10-24 12:21:53 +02:00
parent 57306e6257
commit fea18a4fbe
5 changed files with 5 additions and 25 deletions

View File

@ -151,9 +151,6 @@ private final class AnalysisCallback(internalMap: File => Option[File], external
apis(sourceFile) = (HashAPI(source), savedSource) apis(sourceFile) = (HashAPI(source), savedSource)
} }
def endSource(sourcePath: File): Unit =
assert(apis.contains(sourcePath))
def get: Analysis = addCompilation( addExternals( addBinaries( addProducts( addSources(Analysis.Empty) ) ) ) ) def get: Analysis = addCompilation( addExternals( addBinaries( addProducts( addSources(Analysis.Empty) ) ) ) )
def addProducts(base: Analysis): Analysis = addAll(base, classes) { case (a, src, (prod, name)) => a.addProduct(src, prod, current product prod, name ) } def addProducts(base: Analysis): Analysis = addAll(base, classes) { case (a, src, (prod, name)) => a.addProduct(src, prod, current product prod, name ) }
def addBinaries(base: Analysis): Analysis = addAll(base, binaryDeps)( (a, src, bin) => a.addBinaryDep(src, bin, binaryClassName(bin), current binary bin) ) def addBinaries(base: Analysis): Analysis = addAll(base, binaryDeps)( (a, src, bin) => a.addBinaryDep(src, bin, binaryClassName(bin), current binary bin) )
@ -178,6 +175,4 @@ private final class AnalysisCallback(internalMap: File => Option[File], external
(outer /: bs) { (inner, b) => (outer /: bs) { (inner, b) =>
f(inner, a, b) f(inner, a, b)
} } } }
def beginSource(source: File) {}
} }

View File

@ -31,7 +31,6 @@ final class Analyzer(val global: CallbackGlobal) extends LocateClassFile
{ {
// build dependencies structure // build dependencies structure
val sourceFile = unit.source.file.file val sourceFile = unit.source.file.file
callback.beginSource(sourceFile)
for(on <- unit.depends) processDependency(on, inherited=false) for(on <- unit.depends) processDependency(on, inherited=false)
for(on <- inheritedDependencies.getOrElse(sourceFile, Nil: Iterable[Symbol])) processDependency(on, inherited=true) for(on <- inheritedDependencies.getOrElse(sourceFile, Nil: Iterable[Symbol])) processDependency(on, inherited=true)
def processDependency(on: Symbol, inherited: Boolean) def processDependency(on: Symbol, inherited: Boolean)
@ -75,7 +74,6 @@ final class Analyzer(val global: CallbackGlobal) extends LocateClassFile
else else
addGenerated(false) addGenerated(false)
} }
callback.endSource(sourceFile)
} }
} }
} }

View File

@ -7,8 +7,6 @@ import java.io.File;
public interface AnalysisCallback public interface AnalysisCallback
{ {
/** Called before the source at the given location is processed. */
public void beginSource(File source);
/** Called to indicate that the source file <code>source</code> depends on the source file /** Called to indicate that the source file <code>source</code> depends on the source file
* <code>dependsOn</code>. Note that only source files included in the current compilation will * <code>dependsOn</code>. Note that only source files included in the current compilation will
* passed to this method. Dependencies on classes generated by sources not in the current compilation will * passed to this method. Dependencies on classes generated by sources not in the current compilation will
@ -24,8 +22,6 @@ public interface AnalysisCallback
/** Called to indicate that the source file <code>source</code> produces a class file at /** Called to indicate that the source file <code>source</code> produces a class file at
* <code>module</code> contain class <code>name</code>.*/ * <code>module</code> contain class <code>name</code>.*/
public void generatedClass(File source, File module, String name); public void generatedClass(File source, File module, String name);
/** Called after the source at the given location has been processed. */
public void endSource(File sourcePath);
/** Called when the public API of a source file is extracted. */ /** Called when the public API of a source file is extracted. */
public void api(File sourceFile, xsbti.api.SourceAPI source); public void api(File sourceFile, xsbti.api.SourceAPI source);
/** Provides problems discovered during compilation. These may be reported (logged) or unreported. /** Provides problems discovered during compilation. These may be reported (logged) or unreported.

View File

@ -5,19 +5,14 @@ package xsbti
class TestCallback extends AnalysisCallback class TestCallback extends AnalysisCallback
{ {
val beganSources = new ArrayBuffer[File]
val endedSources = new ArrayBuffer[File]
val sourceDependencies = new ArrayBuffer[(File, File, Boolean)] val sourceDependencies = new ArrayBuffer[(File, File, Boolean)]
val binaryDependencies = new ArrayBuffer[(File, String, File, Boolean)] val binaryDependencies = new ArrayBuffer[(File, String, File, Boolean)]
val products = new ArrayBuffer[(File, File, String)] val products = new ArrayBuffer[(File, File, String)]
val apis = new ArrayBuffer[(File, xsbti.api.SourceAPI)] val apis = new ArrayBuffer[(File, xsbti.api.SourceAPI)]
def beginSource(source: File) { beganSources += source }
def sourceDependency(dependsOn: File, source: File, inherited: Boolean) { sourceDependencies += ((dependsOn, source, inherited)) } def sourceDependency(dependsOn: File, source: File, inherited: Boolean) { sourceDependencies += ((dependsOn, source, inherited)) }
def binaryDependency(binary: File, name: String, source: File, inherited: Boolean) { binaryDependencies += ((binary, name, source, inherited)) } def binaryDependency(binary: File, name: String, source: File, inherited: Boolean) { binaryDependencies += ((binary, name, source, inherited)) }
def generatedClass(source: File, module: File, name: String) { products += ((source, module, name)) } def generatedClass(source: File, module: File, name: String) { products += ((source, module, name)) }
def endSource(source: File) { endedSources += source }
def api(source: File, sourceAPI: xsbti.api.SourceAPI) { apis += ((source, sourceAPI)) } def api(source: File, sourceAPI: xsbti.api.SourceAPI) { apis += ((source, sourceAPI)) }
def problem(category: String, pos: xsbti.Position, message: String, severity: xsbti.Severity, reported: Boolean) {} def problem(category: String, pos: xsbti.Position, message: String, severity: xsbti.Severity, reported: Boolean) {}

View File

@ -33,7 +33,6 @@ private[sbt] object Analyze
sourceFile <- classFile.sourceFile orElse guessSourceName(newClass.getName); sourceFile <- classFile.sourceFile orElse guessSourceName(newClass.getName);
source <- guessSourcePath(sourceMap, classFile, log)) source <- guessSourcePath(sourceMap, classFile, log))
{ {
analysis.beginSource(source)
analysis.generatedClass(source, newClass, classFile.className) analysis.generatedClass(source, newClass, classFile.className)
productToSource(newClass) = source productToSource(newClass) = source
sourceToClassFiles.getOrElseUpdate(source, new ArrayBuffer[ClassFile]) += classFile sourceToClassFiles.getOrElseUpdate(source, new ArrayBuffer[ClassFile]) += classFile
@ -69,13 +68,10 @@ private[sbt] object Analyze
val notInherited = classFiles.flatMap(_.types).toSet -- publicInherited val notInherited = classFiles.flatMap(_.types).toSet -- publicInherited
processDependencies(notInherited, false) processDependencies(notInherited, false)
processDependencies(publicInherited, true) processDependencies(publicInherited, true)
analysis.endSource(source)
} }
for( source <- sources filterNot sourceToClassFiles.keySet ) { for( source <- sources filterNot sourceToClassFiles.keySet ) {
analysis.beginSource(source)
analysis.api(source, new xsbti.api.SourceAPI(Array(), Array())) analysis.api(source, new xsbti.api.SourceAPI(Array(), Array()))
analysis.endSource(source)
} }
} }
private[this] def urlAsFile(url: URL, log: Logger): Option[File] = private[this] def urlAsFile(url: URL, log: Logger): Option[File] =