diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2017-03-11 17:14:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-11 17:14:16 +0100 |
commit | b2d3b8938391516e81f18962e67f5bacf0aa2440 (patch) | |
tree | a151dece1c245695d0cd0d62ee35852bd6d84404 /sbt-bridge | |
parent | e28d8ee6819f39eb8e0479a53c63c241affe864c (diff) | |
parent | 437cdf31679c73e10c6ab82721313cd7214c6128 (diff) | |
download | dotty-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.scala | 3 | ||||
-rw-r--r-- | sbt-bridge/src/xsbt/DelegatingReporter.scala | 19 |
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) + } } |