Similar to $cast, it is up to the user to check for compatibility at runtime with
if ( $bits(bit_queue) == $bits(logic_array) )
logic_array = logic_array_t'(bit_queue);
else
$error("sizes do not match");
For casts involving dynamically sized variables, you can get a compile time error if no possible array size would produce a valid assignment, but if there is a possible size, you cannot perform that check until the cast occurs, because the size can change up until the time the cast occurs.