diff options
author | Christian <c@ethdev.com> | 2015-01-27 23:42:28 +0800 |
---|---|---|
committer | Christian <c@ethdev.com> | 2015-01-29 07:32:21 +0800 |
commit | 6ec9586de3ce96fafd3c9c7c6318e13f784e8d8f (patch) | |
tree | c2de7a5a7bd18edb7733fec23d33f720d8552631 /ExpressionCompiler.cpp | |
parent | ae5a6a235c9d0996a712903e0cfd0560b326bbad (diff) | |
download | dexon-solidity-6ec9586de3ce96fafd3c9c7c6318e13f784e8d8f.tar.gz dexon-solidity-6ec9586de3ce96fafd3c9c7c6318e13f784e8d8f.tar.zst dexon-solidity-6ec9586de3ce96fafd3c9c7c6318e13f784e8d8f.zip |
Style changes.
Diffstat (limited to 'ExpressionCompiler.cpp')
-rw-r--r-- | ExpressionCompiler.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ExpressionCompiler.cpp b/ExpressionCompiler.cpp index d2f709be..bcd90acf 100644 --- a/ExpressionCompiler.cpp +++ b/ExpressionCompiler.cpp @@ -365,23 +365,25 @@ void ExpressionCompiler::endVisit(MemberAccess const& _memberAccess) { case Type::Category::CONTRACT: { + bool alsoSearchInteger = false; ContractType const& type = dynamic_cast<ContractType const&>(*_memberAccess.getExpression().getType()); if (type.isSuper()) - { m_context << m_context.getSuperFunctionEntryLabel(member, type.getContractDefinition()).pushTag(); - break; - } else { + // ordinary contract type u256 identifier = type.getFunctionIdentifier(member); if (identifier != Invalid256) { appendTypeConversion(type, IntegerType(0, IntegerType::Modifier::ADDRESS), true); m_context << identifier; - break; } - // fall-through to "integer" otherwise (address) + else + // not found in contract, search in members inherited from address + alsoSearchInteger = true; } + if (!alsoSearchInteger) + break; } case Type::Category::INTEGER: if (member == "balance") |