contract C {
    C[] y = new C[](3);
    C[3] x;
    function f() public {
        C[3] memory z;
        y.push(this);
        x[0] = this;
        z[0] = this;
    }
}