How to implement static cast on array of enum while using bitstream operator

In reply to NaveenReddy:

The streaming cast assignment to prev is legal, while the static variable initialization to act is not. You should report both these issues to your tool vendor.

The streaming operators work on the same bitstream types allowed with a static cast. The streaming operators give you more flexibility in bit ordering with less type safety. A bitstream cast gives you the same functionality of a simple left-to-right streaming operator.

typedef enum {unset, wr, rd} cmd;
typedef cmd cmd8_t[8];
module main;
  cmd prev[8];
  cmd act[2][4] = '{0: '{default: rd}, 1: '{default: wr}};
  initial begin
    prev = cmd8_t'(act);
    $display("%0p", prev);
  end
endmodule