Fixed subscripting of channel bundles to be corrected like record field subscripts are
This commit is contained in:
parent
084861e0be
commit
2d232dd322
|
@ -645,6 +645,16 @@ addDirections = occamOnlyPass "Add direction specifiers to inputs and outputs"
|
||||||
|
|
||||||
makeEnd :: Meta -> A.Direction -> Transform A.Variable
|
makeEnd :: Meta -> A.Direction -> Transform A.Variable
|
||||||
makeEnd m dir v
|
makeEnd m dir v
|
||||||
|
= case v of
|
||||||
|
A.SubscriptedVariable _ _ innerV
|
||||||
|
-> do t <- astTypeOf innerV
|
||||||
|
case t of
|
||||||
|
A.ChanDataType {} -> return v
|
||||||
|
_ -> makeEnd'
|
||||||
|
_ -> makeEnd'
|
||||||
|
where
|
||||||
|
makeEnd' :: PassM A.Variable
|
||||||
|
makeEnd'
|
||||||
= do t <- astTypeOf v
|
= do t <- astTypeOf v
|
||||||
case t of
|
case t of
|
||||||
A.ChanEnd {} -> return v
|
A.ChanEnd {} -> return v
|
||||||
|
@ -1074,6 +1084,9 @@ inferTypes = occamOnlyPass "Infer types"
|
||||||
A.Record _ ->
|
A.Record _ ->
|
||||||
do n <- nameToUnscoped wrong
|
do n <- nameToUnscoped wrong
|
||||||
return $ A.SubscriptField m n
|
return $ A.SubscriptField m n
|
||||||
|
A.ChanDataType {} ->
|
||||||
|
do n <- nameToUnscoped wrong
|
||||||
|
return $ A.SubscriptField m n
|
||||||
_ -> return s
|
_ -> return s
|
||||||
fixSubscript _ s = return s
|
fixSubscript _ s = return s
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user