pragma experimental ABIEncoderV2; contract Test { struct S { int a; } function f(S calldata s) external { s = S(2); } function g(S calldata s) external { S memory m; s = m; } } // ---- // TypeError: (114-115): External function arguments of reference type are read-only. // TypeError: (118-122): Type "struct Test.S memory" is not implicitly convertible to expected type "struct Test.S calldata". // TypeError: (178-179): External function arguments of reference type are read-only. // TypeError: (182-183): Type "struct Test.S memory" is not implicitly convertible to expected type "struct Test.S calldata".