diff options
Diffstat (limited to 'src/main/scala/firrtl/passes/CheckInitialization.scala')
| -rw-r--r-- | src/main/scala/firrtl/passes/CheckInitialization.scala | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/scala/firrtl/passes/CheckInitialization.scala b/src/main/scala/firrtl/passes/CheckInitialization.scala index 27857768..6d69b792 100644 --- a/src/main/scala/firrtl/passes/CheckInitialization.scala +++ b/src/main/scala/firrtl/passes/CheckInitialization.scala @@ -28,6 +28,7 @@ MODIFICATIONS. package firrtl.passes import firrtl._ +import firrtl.ir._ import firrtl.Utils._ import firrtl.Mappers._ @@ -41,16 +42,16 @@ import annotation.tailrec object CheckInitialization extends Pass { def name = "Check Initialization" - private case class VoidExpr(stmt: Stmt, voidDeps: Seq[Expression]) + private case class VoidExpr(stmt: Statement, voidDeps: Seq[Expression]) - class RefNotInitializedException(info: Info, mname: String, name: String, trace: Seq[Stmt]) extends PassException( + class RefNotInitializedException(info: Info, mname: String, name: String, trace: Seq[Statement]) extends PassException( s"$info : [module $mname] Reference $name is not fully initialized.\n" + trace.map(s => s" ${get_info(s)} : ${s.serialize}").mkString("\n") ) - private def getTrace(expr: WrappedExpression, voidExprs: Map[WrappedExpression, VoidExpr]): Seq[Stmt] = { + private def getTrace(expr: WrappedExpression, voidExprs: Map[WrappedExpression, VoidExpr]): Seq[Statement] = { @tailrec - def rec(e: WrappedExpression, map: Map[WrappedExpression, VoidExpr], trace: Seq[Stmt]): Seq[Stmt] = { + def rec(e: WrappedExpression, map: Map[WrappedExpression, VoidExpr], trace: Seq[Statement]): Seq[Statement] = { val voidExpr = map(e) val newTrace = voidExpr.stmt +: trace if (voidExpr.voidDeps.nonEmpty) rec(voidExpr.voidDeps.head, map, newTrace) else newTrace @@ -62,7 +63,7 @@ object CheckInitialization extends Pass { val errors = collection.mutable.ArrayBuffer[PassException]() - def checkInitM(m: InModule): Unit = { + def checkInitM(m: Module): Unit = { val voidExprs = collection.mutable.HashMap[WrappedExpression, VoidExpr]() def hasVoidExpr(e: Expression): (Boolean, Seq[Expression]) = { @@ -85,10 +86,10 @@ object CheckInitialization extends Pass { hasVoid(e) (void, voidDeps) } - def checkInitS(s: Stmt): Stmt = { + def checkInitS(s: Statement): Statement = { s match { case con: Connect => - val (hasVoid, voidDeps) = hasVoidExpr(con.exp) + val (hasVoid, voidDeps) = hasVoidExpr(con.expr) if (hasVoid) voidExprs(con.loc) = VoidExpr(con, voidDeps) con case node: DefNode => @@ -116,7 +117,7 @@ object CheckInitialization extends Pass { c.modules foreach { m => m match { - case m: InModule => checkInitM(m) + case m: Module => checkInitM(m) case m => // Do nothing } } |
