mirror of https://github.com/sbt/sbt.git
Merge pull request #6158 from eed3si9n/wip/pure-expression
Work around "a pure expression does nothing" warning, take 2
This commit is contained in:
commit
909c5aa2c6
|
|
@ -312,17 +312,6 @@ final class ContextUtil[C <: blackbox.Context](val ctx: C) {
|
|||
case Converted.Failure(p, m) => ctx.abort(p, m)
|
||||
case _: Converted.NotApplicable[_] => super.transform(tree)
|
||||
}
|
||||
// try to workaround https://github.com/scala/bug/issues/12112 by removing raw Ident(_) in blocks
|
||||
case Block(stats0, expr0) =>
|
||||
val stats = stats0 flatMap { stat0 =>
|
||||
val stat = super.transform(stat0)
|
||||
stat match {
|
||||
case Typed(ident @ Ident(_), _) if ident.symbol.isSynthetic => None
|
||||
case _ => Some(stat)
|
||||
}
|
||||
}
|
||||
val expr = super.transform(expr0)
|
||||
Block(stats, expr).setType(expr.tpe)
|
||||
case _ => super.transform(tree)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,10 +204,11 @@ object BuildServerProtocol {
|
|||
val converter = fileConverter.value
|
||||
val underlying = (Keys.compile / compilerReporter).value
|
||||
val logger = streams.value.log
|
||||
val meta = isMetaBuild.value
|
||||
if (bspEnabled.value) {
|
||||
new BuildServerReporterImpl(targetId, converter, logger, underlying)
|
||||
new BuildServerReporterImpl(targetId, converter, meta, logger, underlying)
|
||||
} else {
|
||||
new BuildServerForwarder(logger, underlying)
|
||||
new BuildServerForwarder(meta, logger, underlying)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ import scala.collection.mutable
|
|||
|
||||
sealed trait BuildServerReporter extends Reporter {
|
||||
private final val sigFilesWritten = "[sig files written]"
|
||||
private final val pureExpression = "a pure expression does nothing in statement position"
|
||||
|
||||
protected def isMetaBuild: Boolean
|
||||
|
||||
protected def logger: ManagedLogger
|
||||
|
||||
|
|
@ -52,6 +55,9 @@ sealed trait BuildServerReporter extends Reporter {
|
|||
override def log(problem: Problem): Unit = {
|
||||
if (problem.message == sigFilesWritten) {
|
||||
logger.debug(sigFilesWritten)
|
||||
} else if (isMetaBuild && problem.message.startsWith(pureExpression)) {
|
||||
// work around https://github.com/scala/bug/issues/12112 by ignoring it in the reporter
|
||||
logger.debug(problem.message)
|
||||
} else {
|
||||
publishDiagnostic(problem)
|
||||
underlying.log(problem)
|
||||
|
|
@ -64,6 +70,7 @@ sealed trait BuildServerReporter extends Reporter {
|
|||
final class BuildServerReporterImpl(
|
||||
buildTarget: BuildTargetIdentifier,
|
||||
converter: FileConverter,
|
||||
protected override val isMetaBuild: Boolean,
|
||||
protected override val logger: ManagedLogger,
|
||||
protected override val underlying: Reporter
|
||||
) extends BuildServerReporter {
|
||||
|
|
@ -159,6 +166,7 @@ final class BuildServerReporterImpl(
|
|||
}
|
||||
|
||||
final class BuildServerForwarder(
|
||||
protected override val isMetaBuild: Boolean,
|
||||
protected override val logger: ManagedLogger,
|
||||
protected override val underlying: Reporter
|
||||
) extends BuildServerReporter {
|
||||
|
|
|
|||
Loading…
Reference in New Issue