mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #11456 from ethereum/ice-abstract-contract-mapping-constructor
Fix ICE related to mapping types in abstract contract constructor
This commit is contained in:
@@ -588,7 +588,12 @@ bool TypeChecker::visit(VariableDeclaration const& _variable)
|
||||
if (result)
|
||||
{
|
||||
bool isLibraryStorageParameter = (_variable.isLibraryFunctionParameter() && referenceType->location() == DataLocation::Storage);
|
||||
bool callDataCheckRequired = ((_variable.isConstructorParameter() || _variable.isPublicCallableParameter()) && !isLibraryStorageParameter);
|
||||
// We skip the calldata check for abstract contract constructors.
|
||||
bool isAbstractConstructorParam = _variable.isConstructorParameter() && m_currentContract && m_currentContract->abstract();
|
||||
bool callDataCheckRequired =
|
||||
!isAbstractConstructorParam &&
|
||||
(_variable.isConstructorParameter() || _variable.isPublicCallableParameter()) &&
|
||||
!isLibraryStorageParameter;
|
||||
if (callDataCheckRequired)
|
||||
{
|
||||
if (!referenceType->interfaceType(false))
|
||||
|
||||
Reference in New Issue
Block a user