diff options
author | chriseth <c@ethdev.com> | 2015-06-30 17:54:51 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-07-03 23:25:29 +0800 |
commit | cad3379306cd4f32f51bc9f993498a830d134226 (patch) | |
tree | 06f9b50fbb7e796551acc68a334ecd091370f851 /ExpressionCompiler.cpp | |
parent | ad459207a3c219d60918545de4a0f34040f3388f (diff) | |
download | dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.gz dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.bz2 dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.lz dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.xz dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.tar.zst dexon-solidity-cad3379306cd4f32f51bc9f993498a830d134226.zip |
Memory structs.
Diffstat (limited to 'ExpressionCompiler.cpp')
-rw-r--r-- | ExpressionCompiler.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/ExpressionCompiler.cpp b/ExpressionCompiler.cpp index 59907b14..b36c7283 100644 --- a/ExpressionCompiler.cpp +++ b/ExpressionCompiler.cpp @@ -155,8 +155,6 @@ bool ExpressionCompiler::visit(Assignment const& _assignment) TypePointer type = _assignment.getRightHandSide().getType(); if (!_assignment.getType()->dataStoredIn(DataLocation::Storage)) { - //@todo we should delay conversion here if RHS is not in memory, LHS is a MemoryItem - // and not dynamically-sized. utils().convertType(*type, *_assignment.getType()); type = _assignment.getType(); } @@ -691,7 +689,8 @@ void ExpressionCompiler::endVisit(MemberAccess const& _memberAccess) } case DataLocation::Memory: { - solAssert(false, "Member access for memory structs not yet implemented."); + m_context << type.memoryOffsetOfMember(member) << eth::Instruction::ADD; + setLValue<MemoryItem>(_memberAccess, *_memberAccess.getType()); break; } default: |