aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/ExpressionCompiler.cpp
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-11-20 01:02:04 +0800
committerchriseth <c@ethdev.com>2015-11-26 22:37:55 +0800
commit86495dfc57dde9b825ffd8c219ea809446e978f9 (patch)
tree99003d3865a0fbb9c08bd20c6b290f0702f31821 /libsolidity/codegen/ExpressionCompiler.cpp
parentc498dcce22b2921ee57f280da9117e491c021e1b (diff)
downloaddexon-solidity-86495dfc57dde9b825ffd8c219ea809446e978f9.tar.gz
dexon-solidity-86495dfc57dde9b825ffd8c219ea809446e978f9.tar.zst
dexon-solidity-86495dfc57dde9b825ffd8c219ea809446e978f9.zip
Make members context-sensitive.
Diffstat (limited to 'libsolidity/codegen/ExpressionCompiler.cpp')
-rw-r--r--libsolidity/codegen/ExpressionCompiler.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/libsolidity/codegen/ExpressionCompiler.cpp b/libsolidity/codegen/ExpressionCompiler.cpp
index c94c988b..6c288ae7 100644
--- a/libsolidity/codegen/ExpressionCompiler.cpp
+++ b/libsolidity/codegen/ExpressionCompiler.cpp
@@ -888,10 +888,6 @@ void ExpressionCompiler::endVisit(MemberAccess const& _memberAccess)
case Type::Category::TypeType:
{
TypeType const& type = dynamic_cast<TypeType const&>(*_memberAccess.expression().annotation().type);
- solAssert(
- !type.members().membersByName(_memberAccess.memberName()).empty(),
- "Invalid member access to " + type.toString(false)
- );
if (dynamic_cast<ContractType const*>(type.actualType().get()))
{
@@ -1043,11 +1039,11 @@ void ExpressionCompiler::endVisit(Identifier const& _identifier)
Declaration const* declaration = _identifier.annotation().referencedDeclaration;
if (MagicVariableDeclaration const* magicVar = dynamic_cast<MagicVariableDeclaration const*>(declaration))
{
- switch (magicVar->type(_identifier.annotation().contractScope)->category())
+ switch (magicVar->type()->category())
{
case Type::Category::Contract:
// "this" or "super"
- if (!dynamic_cast<ContractType const&>(*magicVar->type(_identifier.annotation().contractScope)).isSuper())
+ if (!dynamic_cast<ContractType const&>(*magicVar->type()).isSuper())
m_context << eth::Instruction::ADDRESS;
break;
case Type::Category::Integer: