interface I;
    task x;
        input logic [31:0] i;
        $display("I x(%0d)", i);
    endtask
endinterface

module top;
    I i();
    logic [31:0] w = 31;
    logic [31:0] y = 42;
    typedef struct packed { logic [31:0] x, y; } E;
    task x;
        input E i;
        $display("x('{%0d, %0d})", i.x, i.y);
    endtask
    task automatic z;
        input E t;
        begin : foo
            E i = t;
            $display("z('{%0d, %0d})", i.x, i.y);
        end
    endtask
    initial begin
        i.x(y);
        x({w, y});
        z({w, y});
    end
endmodule