From 7cc075438aa8b67fb52f0556ac9a5bc07bcca232 Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Thu, 9 Nov 2017 23:33:10 -0800 Subject: Improve MultiInfo emission, add apply that squashes NoInfo --- src/main/scala/firrtl/ir/IR.scala | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/main') diff --git a/src/main/scala/firrtl/ir/IR.scala b/src/main/scala/firrtl/ir/IR.scala index 090ad8ec..a3ad4231 100644 --- a/src/main/scala/firrtl/ir/IR.scala +++ b/src/main/scala/firrtl/ir/IR.scala @@ -29,10 +29,23 @@ case class MultiInfo(infos: Seq[Info]) extends Info { case MultiInfo(seq) => seq flatMap collectStringLits case NoInfo => Seq.empty } - override def toString: String = - collectStringLits(this).map(_.serialize).mkString(" @[", " ", "]") + override def toString: String = { + val parts = collectStringLits(this) + if (parts.nonEmpty) parts.map(_.serialize).mkString(" @[", " ", "]") + else "" + } def ++(that: Info): Info = MultiInfo(Seq(this, that)) } +object MultiInfo { + def apply(infos: Info*) = { + val infosx = infos.filterNot(_ == NoInfo) + infosx.size match { + case 0 => NoInfo + case 1 => infosx.head + case _ => new MultiInfo(infosx) + } + } +} trait HasName { val name: String -- cgit v1.2.3