aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/scala/firrtl/transforms/MustDedup.scala17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/main/scala/firrtl/transforms/MustDedup.scala b/src/main/scala/firrtl/transforms/MustDedup.scala
index 0d2dd569..cde77b2f 100644
--- a/src/main/scala/firrtl/transforms/MustDedup.scala
+++ b/src/main/scala/firrtl/transforms/MustDedup.scala
@@ -11,8 +11,6 @@ import firrtl.options.Dependency
import firrtl.stage.Forms
import firrtl.graph.DiGraph
-import java.io.{File, FileWriter}
-
/** Marks modules as "must deduplicate" */
case class MustDeduplicateAnnotation(modules: Seq[IsModule]) extends Annotation {
@@ -219,25 +217,22 @@ class MustDeduplicateTransform extends Transform with DependencyAPIMigration {
// Write reports and modules to disk
val dirName = state.annotations.collectFirst { case MustDeduplicateReportDirectory(dir) => dir }
.getOrElse("dedup_failures")
- val dir = new File(dirName)
+ val dir = FileUtils.getPath(dirName)
logger.error(s"Writing error report(s) to ${dir}...")
FileUtils.makeDirectory(dir.toString)
for ((report, idx) <- reports.zipWithIndex) {
- val f = new File(dir, s"report_$idx.rpt")
+ val f = dir / s"report_$idx.rpt"
logger.error(s"Writing $f...")
- val fw = new FileWriter(f)
- fw.write(report)
- fw.close()
+ os.write(f, report)
}
- val modsDir = new File(dir, "modules")
+ val modsDir = dir / "modules"
FileUtils.makeDirectory(modsDir.toString)
logger.error(s"Writing relevant modules to $modsDir...")
val relevantModule = dedupFailures.flatMap(_.relevantMods.map(_.value)).toSet
for (mod <- state.circuit.modules if relevantModule(mod.name)) {
- val fw = new FileWriter(new File(modsDir, s"${mod.name}.fir"))
- fw.write(mod.serialize)
- fw.close()
+ val f = modsDir / s"${mod.name}.fir"
+ os.write(f, mod.serialize)
}
val msg = s"Modules marked 'must deduplicate' failed to deduplicate! See error reports in $dirName"