Browse Source

Various small fixes for Sol Automatic Accessors

cl-refactor
Lefteris Karapetsas 10 years ago
parent
commit
3732d42ce8
  1. 14
      libsolidity/AST.cpp
  2. 3
      libsolidity/AST.h
  3. 2
      libsolidity/Types.cpp
  4. 2
      libsolidity/Types.h
  5. 6
      test/SolidityNameAndTypeResolution.cpp
  6. 2
      test/SolidityParser.cpp

14
libsolidity/AST.cpp

@ -519,17 +519,6 @@ void Literal::checkTypeRequirements()
BOOST_THROW_EXCEPTION(createTypeError("Invalid literal value."));
}
bool ParamDescription::operator!=(ParamDescription const& _other) const
{
return m_description.first == _other.getName() && m_description.second == _other.getType();
}
std::ostream& ParamDescription::operator<<(std::ostream& os) const
{
return os << m_description.first << ":" << m_description.second;
}
std::string ParamDescription::getName() const
{
return m_description.first;
@ -540,7 +529,6 @@ std::string ParamDescription::getType() const
return m_description.second;
}
ASTPointer<ASTString> FunctionDescription::getDocumentation() const
{
auto function = dynamic_cast<FunctionDefinition const*>(m_description.second);
@ -575,7 +563,7 @@ vector<ParamDescription> const FunctionDescription::getParameters() const
if (function)
{
vector<ParamDescription> paramsDescription;
for (auto const& param: function->getParameters())
for (auto const& param: function->getReturnParameters())
paramsDescription.push_back(ParamDescription(param->getName(), param->getType()->toString()));
return paramsDescription;

3
libsolidity/AST.h

@ -166,9 +166,6 @@ struct ParamDescription
ParamDescription(std::string const& _name, std::string const& _type):
m_description(_name, _type){}
bool operator!=(ParamDescription const& _other) const;
std::ostream& operator<<(std::ostream& os) const;
std::string getName() const;
std::string getType() const;

2
libsolidity/Types.cpp

@ -606,7 +606,7 @@ FunctionType::FunctionType(FunctionDefinition const& _function, bool _isInternal
}
FunctionType::FunctionType(VariableDeclaration const& _varDecl):
m_location(Location::INTERNAL)
m_location(Location::EXTERNAL)
{
TypePointers params;
vector<string> paramNames;

2
libsolidity/Types.h

@ -378,7 +378,7 @@ public:
virtual MemberList const& getMembers() const override;
Location const& getLocation() const { return m_location; }
std::string getCanonicalSignature(std::string const &_name) const;
std::string getCanonicalSignature(std::string const& _name) const;
bool gasSet() const { return m_gasSet; }
bool valueSet() const { return m_valueSet; }

6
test/SolidityNameAndTypeResolution.cpp

@ -645,9 +645,9 @@ BOOST_AUTO_TEST_CASE(state_variable_accessors)
BOOST_CHECK((contract = retrieveContract(source, 0)) != nullptr);
FunctionDescription function = retrieveFunctionBySignature(contract, "foo()");
BOOST_CHECK_MESSAGE(function.getDeclaration() != nullptr, "Could not find the accessor function");
// vector<ParamDescription> const expected({ParamDescription("", "uint256")});
// BOOST_CHECK_EQUAL_COLLECTIONS(function.getReturnParameters().begin(), function.getReturnParameters().end(),
// expected.begin(), expected.end());
auto returnParams = function.getReturnParameters();
BOOST_CHECK_EQUAL(returnParams.at(0).getType(), "uint256");
BOOST_CHECK(function.isConstant());
}
BOOST_AUTO_TEST_CASE(private_state_variable)

2
test/SolidityParser.cpp

@ -204,7 +204,7 @@ BOOST_AUTO_TEST_CASE(multiline_function_documentation)
BOOST_REQUIRE_NO_THROW(contract = parseText(text));
auto functions = contract->getDefinedFunctions();
BOOST_REQUIRE_NO_THROW(function = functions.at(1)); // 1 since, 0 is the index of stateVar accessor
BOOST_REQUIRE_NO_THROW(function = functions.at(0));
checkFunctionNatspec(function, "This is a test function\n"
" and it has 2 lines");
}

Loading…
Cancel
Save