Browse Source

Fix some styling issues and remove comments

cl-refactor
Lefteris Karapetsas 10 years ago
parent
commit
29669c16a2
  1. 18
      libsolidity/AST.cpp
  2. 4
      test/SolidityNameAndTypeResolution.cpp

18
libsolidity/AST.cpp

@ -136,34 +136,20 @@ void ContractDefinition::checkAbstractFunctions()
// Search from base to derived
for (ContractDefinition const* contract: boost::adaptors::reverse(getLinearizedBaseContracts()))
{
for (ASTPointer<FunctionDefinition> const& function: contract->getDefinedFunctions())
{
string const& name = function->getName();
if (!function->isFullyImplemented() && functions.count(name) && functions[name])
BOOST_THROW_EXCEPTION(function->createTypeError("Redeclaring an already implemented function as abstract"));
// if (functions.count(name) && !functions[name] && function->isFullyImplemented())
// functions.insert(make_pair(name, true);
// if (functions.count(name) && !functions[name] && function->isFullyImplemented)
// functions.insert(make_pair(name, true));
// functions.insert(make_pair(name, function->isFullyImplemented()));
functions[name] = function->isFullyImplemented();
// if (function->isFullyImplemented())
// full_functions.insert(make_pair(name, function.get()));
// else
// abs_functions.insert(make_pair(name, function.get()));
}
}
for (auto const& it: functions)
if (!it.second)
{
setFullyImplemented(false);
break;
}
}
void ContractDefinition::checkIllegalOverrides() const
@ -682,7 +668,7 @@ void NewExpression::checkTypeRequirements()
if (!m_contract)
BOOST_THROW_EXCEPTION(createTypeError("Identifier is not a contract."));
if (!m_contract->isFullyImplemented())
BOOST_THROW_EXCEPTION(m_contract->createTypeError("Trying to create an object of an abstract contract."));
BOOST_THROW_EXCEPTION(m_contract->createTypeError("Trying to create an instance of an abstract contract."));
shared_ptr<ContractType const> contractType = make_shared<ContractType>(*m_contract);
TypePointers const& parameterTypes = contractType->getConstructorType()->getParameterTypes();
m_type = make_shared<FunctionType>(parameterTypes, TypePointers{contractType},

4
test/SolidityNameAndTypeResolution.cpp

@ -386,8 +386,8 @@ BOOST_AUTO_TEST_CASE(create_abstract_contract)
contract base { function foo(); }
contract derived {
base b;
function foo() { b = new base();}
}
function foo() { b = new base();}
}
)";
BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
}

Loading…
Cancel
Save