Skip to content

Commit df0942f

Browse files
DelegatingReporter code review suggestions
1 parent 251b385 commit df0942f

File tree

3 files changed

+23
-26
lines changed

3 files changed

+23
-26
lines changed

bridge/src/main/scala/xsbt/CompilerInterface.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,10 @@ class CachedCompilerImpl(args: Array[String], output: Output, resident: Boolean)
5454
}
5555
private[this] def run(sources: List[File], changes: DependencyChanges, callback: AnalysisCallback, log: Logger, delegate: Reporter, compileProgress: CompileProgress): Unit = {
5656
debug(log, args.mkString("Calling Dotty compiler with arguments (CompilerInterface):\n\t", "\n\t", ""))
57-
val freshContext = (new ContextBase).initialCtx.fresh
58-
val ctx = freshContext.setSbtCallback(callback).setReporter(DelegatingReporter(delegate))
57+
val ctx = (new ContextBase).initialCtx.fresh
58+
.setSbtCallback(callback)
59+
.setReporter(new DelegatingReporter(delegate))
60+
5961
val cl = getClass.getClassLoader.asInstanceOf[URLClassLoader]
6062

6163
val reporter = DottyMain.process(commandArguments(sources.toArray), ctx)

bridge/src/main/scala/xsbt/DelegatingReporter.scala

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@ import dotc._
88
import reporting._
99
import core.Contexts._
1010

11-
import xsbti.Maybe
12-
13-
object DelegatingReporter {
14-
def apply(delegate: xsbti.Reporter) = new DelegatingReporter(delegate)
15-
}
11+
import xsbti.{Maybe, Position}
1612

1713
final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter
1814
with UniqueMessagePositions
@@ -27,28 +23,24 @@ final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter
2723
case _: Reporter.Warning => xsbti.Severity.Warn
2824
case _ => xsbti.Severity.Info
2925
}
30-
val pos =
31-
if(d.pos.exists) Some(d.pos)
26+
val pos =
27+
if (d.pos.exists) Some(d.pos)
3228
else None
3329

3430
val file =
35-
if(d.pos.source.file.exists) {
36-
val r = d.pos.source.file.file
37-
if(r == null) None
38-
else Some(r)
39-
}
31+
if (d.pos.source.file.exists) Option(d.pos.source.file.file)
4032
else None
4133

4234
val offset0 = pos.map(_.point)
4335

44-
val position = new xsbti.Position {
36+
val position = new Position {
4537
def line: Maybe[Integer] = maybe(pos.map(_.line))
46-
def lineContent(): String = pos.map(_.lineContent).getOrElse("")
47-
def offset(): xsbti.Maybe[Integer] = maybeInt(offset0)
48-
def pointer(): xsbti.Maybe[Integer] = offset()
49-
def pointerSpace(): xsbti.Maybe[String] = maybe(offset0.map(" " * _))
50-
def sourceFile(): xsbti.Maybe[java.io.File] = maybe(file)
51-
def sourcePath(): xsbti.Maybe[String] = maybe(file.map(_.getPath))
38+
def lineContent: String = pos.map(_.lineContent).getOrElse("")
39+
def offset: Maybe[Integer] = maybeInt(offset0)
40+
def pointer: Maybe[Integer] = offset
41+
def pointerSpace: Maybe[String] = maybe(offset0.map(" " * _))
42+
def sourceFile: Maybe[java.io.File] = maybe(file)
43+
def sourcePath: Maybe[String] = maybe(file.map(_.getPath))
5244
}
5345

5446
delegate.log(position, d.message, severity)

project/Build.scala

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ object DottyBuild extends Build {
208208
settings(publishing)
209209

210210
// until sbt/sbt#2402 is fixed (https://github.com/sbt/sbt/issues/2402)
211-
lazy val cleanBridge = TaskKey[Unit]("clean-sbt-bridge", "delete dotty-sbt-bridge cache")
211+
lazy val cleanBridge = TaskKey[Unit]("cleanSbtBridge", "delete dotty-sbt-bridge cache")
212212

213213
lazy val `dotty-bridge` = project.in(file("bridge")).
214214
dependsOn(dotty).
@@ -219,16 +219,19 @@ object DottyBuild extends Build {
219219
val dottyBridgeVersion = version.value
220220
val dottyVersion = (version in dotty).value
221221
val classVersion = System.getProperty("java.class.version")
222+
222223
val sbtV = sbtVersion.value
224+
val sbtOrg = "org.scala-sbt"
225+
val sbtScalaVersion = "2.10.6"
226+
223227
val home = System.getProperty("user.home")
224228
val org = organization.value
225229
val artifact = moduleName.value
226230

227-
IO.delete(file(home) / ".ivy2" / "cache" / "org.scala-sbt" / s"$org-$artifact-$dottyBridgeVersion-bin_${dottyVersion}__$classVersion")
228-
IO.delete(file(home) / ".sbt" / "boot" / "scala-2.10.6" / "org.scala-sbt" / "sbt" / sbtV / s"$org-$artifact-$dottyBridgeVersion-bin_${dottyVersion}__$classVersion")
231+
IO.delete(file(home) / ".ivy2" / "cache" / sbtOrg / s"$org-$artifact-$dottyBridgeVersion-bin_${dottyVersion}__$classVersion")
232+
IO.delete(file(home) / ".sbt" / "boot" / s"scala-$sbtScalaVersion" / sbtOrg / "sbt" / sbtV / s"$org-$artifact-$dottyBridgeVersion-bin_${dottyVersion}__$classVersion")
229233
},
230-
publishLocal <<= publishLocal.dependsOn(cleanBridge),
231-
234+
publishLocal := (publishLocal.dependsOn(cleanBridge)).value,
232235
description := "sbt compiler bridge for Dotty",
233236
resolvers += Resolver.typesafeIvyRepo("releases"),
234237
libraryDependencies ++= Seq(

0 commit comments

Comments
 (0)