// This tests skipping the extcodesize check.

contract T {
    constructor() { this.f(); }
    function f() external {}
}
contract U {
    constructor() { this.f(); }
    function f() external returns (uint) {}
}

contract C {
    function f(uint c) external returns (uint) {
        if (c == 0) new T();
        else if (c == 1) new U();
        return 1 + c;
    }
}

// ====
// EVMVersion: >=byzantium
// ----
// f(uint256): 0 -> FAILURE
// f(uint256): 1 -> FAILURE
// f(uint256): 2 -> 3
