contract C { uint public i; constructor(uint newI) { i = newI; } } contract D { C c; constructor(uint v) { c = new C{salt: "abc"}(v); } function f() public returns (uint r) { return c.i(); } } // ==== // EVMVersion: >=constantinople // ---- // constructor(): 2 -> // gas irOptimized: 195421 // gas legacy: 246202 // gas legacyOptimized: 195914 // f() -> 2