aboutsummaryrefslogtreecommitdiff
path: root/sbt-bridge
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-03-11 17:14:16 +0100
committerGitHub <noreply@github.com>2017-03-11 17:14:16 +0100
commitb2d3b8938391516e81f18962e67f5bacf0aa2440 (patch)
treea151dece1c245695d0cd0d62ee35852bd6d84404 /sbt-bridge
parente28d8ee6819f39eb8e0479a53c63c241affe864c (diff)
parent437cdf31679c73e10c6ab82721313cd7214c6128 (diff)
downloaddotty-b2d3b8938391516e81f18962e67f5bacf0aa2440.tar.gz
dotty-b2d3b8938391516e81f18962e67f5bacf0aa2440.tar.bz2
dotty-b2d3b8938391516e81f18962e67f5bacf0aa2440.zip
Merge pull request #1884 from MasseGuillaume/restore-delegating-reporter
restore position offset in DelegatingReporter
Diffstat (limited to 'sbt-bridge')
-rw-r--r--sbt-bridge/sbt-test/compilerReporter/simple/project/Reporter.scala3
-rw-r--r--sbt-bridge/src/xsbt/DelegatingReporter.scala19
2 files changed, 14 insertions, 8 deletions
diff --git a/sbt-bridge/sbt-test/compilerReporter/simple/project/Reporter.scala b/sbt-bridge/sbt-test/compilerReporter/simple/project/Reporter.scala
index c0a56ec82..877da566c 100644
--- a/sbt-bridge/sbt-test/compilerReporter/simple/project/Reporter.scala
+++ b/sbt-bridge/sbt-test/compilerReporter/simple/project/Reporter.scala
@@ -37,8 +37,9 @@ object Reporter {
val problems = reporter.get.problems
println(problems.toList)
assert(problems.size == 2)
+ assert(problems.forall(_.position.offset.isDefined))
assert(problems.count(_.severity == Severity.Error) == 1) // not found: er1,
assert(problems.count(_.severity == Severity.Warn) == 1) // `with' as a type operator has been deprecated; use `&' instead,
})
)
-} \ No newline at end of file
+}
diff --git a/sbt-bridge/src/xsbt/DelegatingReporter.scala b/sbt-bridge/src/xsbt/DelegatingReporter.scala
index 770d6b2c7..e704a29c9 100644
--- a/sbt-bridge/src/xsbt/DelegatingReporter.scala
+++ b/sbt-bridge/src/xsbt/DelegatingReporter.scala
@@ -28,13 +28,13 @@ final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter
}
val position = new Position {
- def line: Maybe[Integer] = Maybe.nothing()
- def lineContent: String = ""
- def offset: Maybe[Integer] = Maybe.nothing()
- def pointer: Maybe[Integer] = Maybe.nothing()
- def pointerSpace: Maybe[String] = Maybe.nothing()
- def sourceFile: Maybe[java.io.File] = Maybe.nothing()
- def sourcePath: Maybe[String] = Maybe.nothing()
+ def line: Maybe[Integer] = Maybe.just(cont.pos.line)
+ def lineContent: String = cont.pos.lineContent
+ def offset: Maybe[Integer] = Maybe.just(cont.pos.point)
+ def pointer: Maybe[Integer] = Maybe.just(cont.pos.point)
+ def pointerSpace: Maybe[String] = Maybe.just(" " * cont.pos.point)
+ def sourceFile: Maybe[java.io.File] = maybe(Option(cont.pos.source.file.file))
+ def sourcePath: Maybe[String] = maybe(Option(cont.pos.source.file.file).map(_.getPath))
}
val sb = new StringBuilder()
@@ -45,4 +45,9 @@ final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter
delegate.log(position, sb.toString(), severity)
}
+
+ private[this] def maybe[T](opt: Option[T]): Maybe[T] = opt match {
+ case None => Maybe.nothing[T]
+ case Some(s) => Maybe.just[T](s)
+ }
}