diff --git a/netmisc.cc b/netmisc.cc index 75892b257..def9f0d6d 100644 --- a/netmisc.cc +++ b/netmisc.cc @@ -1017,6 +1017,11 @@ NetExpr* elab_and_eval(Design*des, NetScope*scope, PExpr*pe, switch (cast_type) { case IVL_VT_DARRAY: case IVL_VT_QUEUE: + if (NetESignal*net = dynamic_cast(tmp)) { + ivl_variable_type_t type = net->expr_type(); + if ((type == IVL_VT_DARRAY) || (type == IVL_VT_QUEUE)) + return tmp; + } if (dynamic_cast(pe)) return tmp; // fall through