aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/ExpressionCompiler.cpp
diff options
context:
space:
mode:
authorLianaHus <liana@ethdev.com>2015-08-21 23:57:57 +0800
committerLianaHus <liana@ethdev.com>2015-08-21 23:57:57 +0800
commit1af8ff01215f4d6ab5d5b3b1c4e2d1785a69c9c9 (patch)
tree8be884acdc58815c5463860c6ff147f37f548793 /libsolidity/ExpressionCompiler.cpp
parent289b8146703521943e6106e5d3f178deb0117652 (diff)
downloaddexon-solidity-1af8ff01215f4d6ab5d5b3b1c4e2d1785a69c9c9.tar
dexon-solidity-1af8ff01215f4d6ab5d5b3b1c4e2d1785a69c9c9.tar.gz
dexon-solidity-1af8ff01215f4d6ab5d5b3b1c4e2d1785a69c9c9.tar.bz2
dexon-solidity-1af8ff01215f4d6ab5d5b3b1c4e2d1785a69c9c9.tar.lz
dexon-solidity-1af8ff01215f4d6ab5d5b3b1c4e2d1785a69c9c9.tar.xz
dexon-solidity-1af8ff01215f4d6ab5d5b3b1c4e2d1785a69c9c9.tar.zst
dexon-solidity-1af8ff01215f4d6ab5d5b3b1c4e2d1785a69c9c9.zip
add tests for state variables accessors. normal and constant
fixed the issue with accessors for constant state variables
Diffstat (limited to 'libsolidity/ExpressionCompiler.cpp')
-rw-r--r--libsolidity/ExpressionCompiler.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/libsolidity/ExpressionCompiler.cpp b/libsolidity/ExpressionCompiler.cpp
index 0841089b..acb056ed 100644
--- a/libsolidity/ExpressionCompiler.cpp
+++ b/libsolidity/ExpressionCompiler.cpp
@@ -67,8 +67,19 @@ void ExpressionCompiler::appendStateVariableInitialization(VariableDeclaration c
StorageItem(m_context, _varDecl).storeValue(*type, _varDecl.getLocation(), true);
}
+void ExpressionCompiler::appendConstStateVariableAccessor(VariableDeclaration const& _varDecl)
+{
+ solAssert(_varDecl.isConstant(), "");
+ _varDecl.getValue()->accept(*this);
+
+ // append return
+ m_context << eth::dupInstruction(_varDecl.getType()->getSizeOnStack() + 1);
+ m_context.appendJump(eth::AssemblyItem::JumpType::OutOfFunction);
+}
+
void ExpressionCompiler::appendStateVariableAccessor(VariableDeclaration const& _varDecl)
{
+ solAssert(!_varDecl.isConstant(), "");
CompilerContext::LocationSetter locationSetter(m_context, _varDecl);
FunctionType accessorType(_varDecl);