From 096e90adebbb8fc259d32fb9baddee70a3d332bd Mon Sep 17 00:00:00 2001 From: Chris Kipp Date: Mon, 11 Oct 2021 14:33:00 +0200 Subject: [PATCH] Various fixes for config and encoding. After playing around with this a bit in the sbt plugin I realized I made some mistakes and also made things in a way that were a bit of a pain to actually use from the plugins. So I got rid of the implicits in favor of explicits, and fixed the config parsing --- .../src/main/scala/scoverage/IOUtils.scala | 12 +++++++++--- .../src/main/scala/scoverage/ScoverageOptions.scala | 5 ++--- .../scala/scoverage/report/BaseReportWriter.scala | 4 ---- .../scala/scoverage/report/CoverageAggregator.scala | 4 ---- .../src/test/scala/scoverage/IOUtilsTest.scala | 4 ---- .../src/test/scala/scoverage/LocationCompiler.scala | 3 +-- .../src/test/scala/scoverage/ScoverageCompiler.scala | 3 +-- 7 files changed, 13 insertions(+), 22 deletions(-) diff --git a/scalac-scoverage-plugin/src/main/scala/scoverage/IOUtils.scala b/scalac-scoverage-plugin/src/main/scala/scoverage/IOUtils.scala index 6c78ab39..5ecfee29 100644 --- a/scalac-scoverage-plugin/src/main/scala/scoverage/IOUtils.scala +++ b/scalac-scoverage-plugin/src/main/scala/scoverage/IOUtils.scala @@ -4,6 +4,7 @@ import java.io._ import scala.collection.Set import scala.collection.mutable +import scala.io.Codec import scala.io.Source /** @author Stephen Samuel */ @@ -36,7 +37,11 @@ object IOUtils { findMeasurementFiles(dataDir).foreach(_.delete) def clean(dataDir: String): Unit = clean(new File(dataDir)) - def writeToFile(file: File, str: String)(implicit encoding: String) = { + def writeToFile( + file: File, + str: String, + encoding: String = Codec.UTF8.name + ) = { val writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream(file), @@ -89,8 +94,9 @@ object IOUtils { // loads all the invoked statement ids from the given files def invoked( - files: Seq[File] - )(implicit encoding: String): Set[(Int, String)] = { + files: Seq[File], + encoding: String = Codec.UTF8.name + ): Set[(Int, String)] = { val acc = mutable.Set[(Int, String)]() files.foreach { file => val reader = diff --git a/scalac-scoverage-plugin/src/main/scala/scoverage/ScoverageOptions.scala b/scalac-scoverage-plugin/src/main/scala/scoverage/ScoverageOptions.scala index 13c2f367..bc3f12a2 100644 --- a/scalac-scoverage-plugin/src/main/scala/scoverage/ScoverageOptions.scala +++ b/scalac-scoverage-plugin/src/main/scala/scoverage/ScoverageOptions.scala @@ -99,14 +99,13 @@ object ScoverageOptions { options = options.copy(excludedSymbols = parseExclusionOption(symbols)) case DataDir(dir) => options = options.copy(dataDir = dir) - case SourceRoot(root) => - options.copy(sourceRoot = root) + case SourceRoot(root) => options = options.copy(sourceRoot = root) // NOTE that both the extra phases are actually parsed out early on, so // we just ignore them here case ExtraAfterPhase(afterPhase) => () case ExtraBeforePhase(beforePhase) => () case "reportTestName" => - options.copy(reportTestName = true) + options = options.copy(reportTestName = true) case opt => errFn("Unknown option: " + opt) } diff --git a/scalac-scoverage-plugin/src/main/scala/scoverage/report/BaseReportWriter.scala b/scalac-scoverage-plugin/src/main/scala/scoverage/report/BaseReportWriter.scala index 9185042e..3134b20c 100644 --- a/scalac-scoverage-plugin/src/main/scala/scoverage/report/BaseReportWriter.scala +++ b/scalac-scoverage-plugin/src/main/scala/scoverage/report/BaseReportWriter.scala @@ -2,16 +2,12 @@ package scoverage.report import java.io.File -import scala.io.Codec - class BaseReportWriter( sourceDirectories: Seq[File], outputDir: File, sourceEncoding: Option[String] ) { - implicit val encoding = sourceEncoding.fold(Codec.UTF8.name)(identity) - // Source paths in canonical form WITH trailing file separator private val formattedSourcePaths: Seq[String] = sourceDirectories filter (_.isDirectory) map (_.getCanonicalPath + File.separator) diff --git a/scalac-scoverage-plugin/src/main/scala/scoverage/report/CoverageAggregator.scala b/scalac-scoverage-plugin/src/main/scala/scoverage/report/CoverageAggregator.scala index 03cb1a96..27f9c564 100644 --- a/scalac-scoverage-plugin/src/main/scala/scoverage/report/CoverageAggregator.scala +++ b/scalac-scoverage-plugin/src/main/scala/scoverage/report/CoverageAggregator.scala @@ -2,16 +2,12 @@ package scoverage.report import java.io.File -import scala.io.Codec - import scoverage.Coverage import scoverage.IOUtils import scoverage.Serializer object CoverageAggregator { - implicit val encoding: String = Codec.UTF8.name - // to be used by gradle-scoverage plugin def aggregate(dataDirs: Array[File], sourceRoot: File): Option[Coverage] = aggregate( diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala index b0a660e6..538d6d63 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala @@ -4,15 +4,11 @@ import java.io.File import java.io.FileWriter import java.util.UUID -import scala.io.Codec - import munit.FunSuite /** @author Stephen Samuel */ class IOUtilsTest extends FunSuite { - implicit val encoding: String = Codec.UTF8.name - test("should parse measurement files") { val file = File.createTempFile("scoveragemeasurementtest", "txt") val writer = new FileWriter(file) diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/LocationCompiler.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/LocationCompiler.scala index f7eab86f..45803a4f 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/LocationCompiler.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/LocationCompiler.scala @@ -2,7 +2,6 @@ package scoverage import java.io.File -import scala.io.Codec import scala.tools.nsc.Global import scala.tools.nsc.plugins.PluginComponent import scala.tools.nsc.transform.Transform @@ -25,7 +24,7 @@ class LocationCompiler( def writeCodeSnippetToTempFile(code: String): File = { val file = File.createTempFile("code_snippet", ".scala") - IOUtils.writeToFile(file, code)(Codec.UTF8.name) + IOUtils.writeToFile(file, code) file.deleteOnExit() file } diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala index f4e51456..b83fcadb 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala @@ -5,7 +5,6 @@ import java.io.FileNotFoundException import java.net.URL import scala.collection.mutable.ListBuffer -import scala.io.Codec import scala.tools.nsc.Global import scala.tools.nsc.Settings import scala.tools.nsc.plugins.PluginComponent @@ -141,7 +140,7 @@ class ScoverageCompiler( def writeCodeSnippetToTempFile(code: String): File = { val file = File.createTempFile("scoverage_snippet", ".scala") - IOUtils.writeToFile(file, code)(Codec.UTF8.name) + IOUtils.writeToFile(file, code) file.deleteOnExit() file }