diff options
| author | Albert Magyar | 2020-05-14 22:38:16 -0700 |
|---|---|---|
| committer | Albert Magyar | 2020-06-04 22:25:12 -0700 |
| commit | 4bedafce30b1efc2c2f22235fcf572ce4337205a (patch) | |
| tree | 8ce9620a89f212483b4bcd6d1afa6d8c55921053 /src | |
| parent | d7bd6d64fa9561d2049e565c61ee989eea1a61a5 (diff) | |
Make Utils.expandRef properly return intermediate expressions
* Switch to more idiomatic flatMap for Utils.expandRef
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/Utils.scala | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main/scala/firrtl/Utils.scala b/src/main/scala/firrtl/Utils.scala index c4f282bf..2264a0e4 100644 --- a/src/main/scala/firrtl/Utils.scala +++ b/src/main/scala/firrtl/Utils.scala @@ -280,10 +280,10 @@ object Utils extends LazyLogging { case ex: ValidIf => expandRef(ex.value) map (e1 => ValidIf(ex.cond, e1, e1.tpe)) case ex => ex.tpe match { case (_: GroundType) => Seq(ex) - case (t: BundleType) => (t.fields foldLeft Seq[Expression](ex))((exps, f) => - exps ++ create_exps(WSubField(ex, f.name, f.tpe,times(flow(ex), f.flip)))) - case (t: VectorType) => (0 until t.size foldLeft Seq[Expression](ex))((exps, i) => - exps ++ create_exps(WSubIndex(ex, i, t.tpe,flow(ex)))) + case (t: BundleType) => + ex +: t.fields.flatMap(f => expandRef(WSubField(ex, f.name, f.tpe, times(flow(ex), f.flip)))) + case (t: VectorType) => + ex +: (0 until t.size).flatMap(i => expandRef(WSubIndex(ex, i, t.tpe, flow(ex)))) } } def toTarget(main: String, module: String)(expression: Expression): ReferenceTarget = { |
