mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
parent
df900c5583
commit
7cee39fc17
@ -861,11 +861,12 @@ bool ExpressionCompiler::visit(MemberAccess const& _memberAccess)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Special processing for TypeType because we do not want to visit the library itself
|
// Special processing for TypeType because we do not want to visit the library itself
|
||||||
// for internal functions.
|
// for internal functions, or enum/struct definitions.
|
||||||
if (TypeType const* type = dynamic_cast<TypeType const*>(_memberAccess.expression().annotation().type.get()))
|
if (TypeType const* type = dynamic_cast<TypeType const*>(_memberAccess.expression().annotation().type.get()))
|
||||||
{
|
{
|
||||||
if (dynamic_cast<ContractType const*>(type->actualType().get()))
|
if (dynamic_cast<ContractType const*>(type->actualType().get()))
|
||||||
{
|
{
|
||||||
|
solAssert(_memberAccess.annotation().type, "_memberAccess has no type");
|
||||||
if (auto funType = dynamic_cast<FunctionType const*>(_memberAccess.annotation().type.get()))
|
if (auto funType = dynamic_cast<FunctionType const*>(_memberAccess.annotation().type.get()))
|
||||||
{
|
{
|
||||||
if (funType->location() != FunctionType::Location::Internal)
|
if (funType->location() != FunctionType::Location::Internal)
|
||||||
@ -883,6 +884,10 @@ bool ExpressionCompiler::visit(MemberAccess const& _memberAccess)
|
|||||||
m_context << m_context.functionEntryLabel(*function).pushTag();
|
m_context << m_context.functionEntryLabel(*function).pushTag();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (dynamic_cast<TypeType const*>(_memberAccess.annotation().type.get()))
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
else
|
else
|
||||||
_memberAccess.expression().accept(*this);
|
_memberAccess.expression().accept(*this);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user