mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Do now disallow assigning to external parameters.
This commit is contained in:
parent
1cb02af240
commit
98e5923e3a
@ -11,6 +11,7 @@ Compiler Features:
|
||||
Bugfixes:
|
||||
* NatSpec: Do not consider ``////`` and ``/***`` as NatSpec comments.
|
||||
* Type Checker: Fix internal error related to ``using for`` applied to non-libraries.
|
||||
* Type Checker: Do not disallow assigning to calldata variables.
|
||||
* Yul: Fix source location of variable multi-assignment.
|
||||
|
||||
|
||||
|
@ -492,12 +492,7 @@ DeclarationAnnotation& Declaration::annotation() const
|
||||
bool VariableDeclaration::isLValue() const
|
||||
{
|
||||
// Constant declared variables are Read-Only
|
||||
if (isConstant())
|
||||
return false;
|
||||
// External function arguments of reference type are Read-Only
|
||||
if (isExternalCallableParameter() && dynamic_cast<ReferenceType const*>(type()))
|
||||
return false;
|
||||
return true;
|
||||
return !isConstant();
|
||||
}
|
||||
|
||||
bool VariableDeclaration::isLocalVariable() const
|
||||
|
@ -4,4 +4,3 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// TypeError 7128: (96-97): External function arguments of reference type are read-only.
|
||||
|
@ -5,7 +5,5 @@ contract Test {
|
||||
function g(S calldata s) external { S memory m; s = m; }
|
||||
}
|
||||
// ----
|
||||
// TypeError 7128: (114-115): External function arguments of reference type are read-only.
|
||||
// TypeError 7407: (118-122): Type struct Test.S memory is not implicitly convertible to expected type struct Test.S calldata.
|
||||
// TypeError 7128: (178-179): External function arguments of reference type are read-only.
|
||||
// TypeError 7407: (182-183): Type struct Test.S memory is not implicitly convertible to expected type struct Test.S calldata.
|
||||
|
Loading…
Reference in New Issue
Block a user