diff --git a/libsolidity/ASTJsonConverter.cpp b/libsolidity/ASTJsonConverter.cpp index 3edcb77ef..d0f76fb8a 100644 --- a/libsolidity/ASTJsonConverter.cpp +++ b/libsolidity/ASTJsonConverter.cpp @@ -124,7 +124,10 @@ bool ASTJsonConverter::visit(FunctionDefinition const& _node) bool ASTJsonConverter::visit(VariableDeclaration const& _node) { - addJsonNode("VariableDeclaration", { make_pair("name", _node.name()) }, true); + addJsonNode("VariableDeclaration", { + make_pair("name", _node.name()), + make_pair("name", _node.name()), + }, true); return true; } @@ -444,5 +447,10 @@ string ASTJsonConverter::type(Expression const& _expression) return _expression.annotation().type ? _expression.annotation().type->toString() : "Unknown"; } +string ASTJsonConverter::type(VariableDeclaration const& _varDecl) +{ + return _varDecl.annotation().type ? _varDecl.annotation().type->toString() : "Unknown"; +} + } } diff --git a/libsolidity/ASTJsonConverter.h b/libsolidity/ASTJsonConverter.h index a44df876e..61f87860e 100644 --- a/libsolidity/ASTJsonConverter.h +++ b/libsolidity/ASTJsonConverter.h @@ -116,6 +116,7 @@ private: std::initializer_list> _list, bool _hasChildren); std::string type(Expression const& _expression); + std::string type(VariableDeclaration const& _varDecl); inline void goUp() { solAssert(!m_jsonNodePtrs.empty(), "Uneven json nodes stack. Internal error."); diff --git a/libsolidity/ASTPrinter.cpp b/libsolidity/ASTPrinter.cpp index 5762051d7..cebf6b8b0 100644 --- a/libsolidity/ASTPrinter.cpp +++ b/libsolidity/ASTPrinter.cpp @@ -105,6 +105,11 @@ bool ASTPrinter::visit(FunctionDefinition const& _node) bool ASTPrinter::visit(VariableDeclaration const& _node) { writeLine("VariableDeclaration \"" + _node.name() + "\""); + *m_ostream << indentation() << ( + _node.annotation().type ? + string(" Type: ") + _node.annotation().type->toString() : + string(" Type unknown.") + ) << "\n"; printSourcePart(_node); return goDeeper(); }