aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/ir/IR.scala17
1 files changed, 15 insertions, 2 deletions
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