aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/passes/ExpandWhens.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/firrtl/passes/ExpandWhens.scala')
-rw-r--r--src/main/scala/firrtl/passes/ExpandWhens.scala13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/main/scala/firrtl/passes/ExpandWhens.scala b/src/main/scala/firrtl/passes/ExpandWhens.scala
index 3665590f..9136c913 100644
--- a/src/main/scala/firrtl/passes/ExpandWhens.scala
+++ b/src/main/scala/firrtl/passes/ExpandWhens.scala
@@ -204,14 +204,13 @@ object ExpandWhens extends Pass {
/** Returns all references to all Female leaf subcomponents of a reference */
private def getFemaleRefs(n: String, t: Type, g: Gender): Seq[Expression] = {
- def getGender(t: Type, i: Int, g: Gender): Gender = times(g, get_flip(t, i, Default))
val exps = create_exps(WRef(n, t, ExpKind, g))
- (exps.zipWithIndex foldLeft Seq[Expression]()){
- case (expsx, (exp, j)) => exp.tpe match {
- case AnalogType(w) => expsx
- case _ => getGender(t, j, g) match {
- case (BIGENDER | FEMALE) => expsx :+ exp
- case _ => expsx
+ exps.flatMap { case exp =>
+ exp.tpe match {
+ case AnalogType(w) => None
+ case _ => gender(exp) match {
+ case (BIGENDER | FEMALE) => Some(exp)
+ case _ => None
}
}
}