aboutsummaryrefslogtreecommitdiff
path: root/sbt-bridge
diff options
context:
space:
mode:
authorGuillaume Massé <masgui@gmail.com>2017-01-06 17:42:11 +0100
committerGuillaume Massé <masgui@gmail.com>2017-01-06 17:42:11 +0100
commit437cdf31679c73e10c6ab82721313cd7214c6128 (patch)
tree4b31b6ef3664a1b8962ee8c47910f97d83ef1c11 /sbt-bridge
parent42eb864dc752254fc3b8b0428570fe94aa1dafc7 (diff)
downloaddotty-437cdf31679c73e10c6ab82721313cd7214c6128.tar.gz
dotty-437cdf31679c73e10c6ab82721313cd7214c6128.tar.bz2
dotty-437cdf31679c73e10c6ab82721313cd7214c6128.zip
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)
+ }
}