The alternative is fully implemented now.
To elaborate a bit:
We recently introduced new syntax for specifying gas and value for external function calls. The old syntax was:
contract C {
function g() external payable {}
function f() public payable {
this.g.value(42).gas(23)();
}
}
The new syntax is:
contract C {
function g() external payable {}
function f() public payable {
this.g{value: 42, gas: 23}();
}
}
Similarly, the syntax for contract creation new C.value(42)() was replaced by new C{ value: 42}().
While we need to support the old syntax until the next breaking release, we should add a deprecation warning for it now.
The first part for function calls will entail modifying TypeChecker::visit(MemberAccess const&) to emit a warning along the lines of "
@mijovic will be working on this.
With https://github.com/ethereum/solidity/pull/8413 we started issuing warnings about this. I'll keep the issue open for turning this into errors for 0.7, though.
Most helpful comment
To elaborate a bit:
We recently introduced new syntax for specifying gas and value for external function calls. The old syntax was:
The new syntax is:
Similarly, the syntax for contract creation.value(...)() is deprecated. Use {value: ...}() instead." (we can discuss the precise wording) and to update the tests accordingly. Contract creation we can either handle in the same or in a separate PR.
new C.value(42)()was replaced bynew C{ value: 42}().While we need to support the old syntax until the next breaking release, we should add a deprecation warning for it now.
The first part for function calls will entail modifying
TypeChecker::visit(MemberAccess const&)to emit a warning along the lines of "