Merge pull request #6158 from eed3si9n/wip/pure-expression

Work around "a pure expression does nothing" warning, take 2
This commit is contained in:
eugene yokota 2020-11-22 17:35:01 -05:00 committed by GitHub
commit 909c5aa2c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 13 deletions

View File

@ -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)
}
}

View File

@ -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)
}
}
)

View File

@ -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 {