mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Support empty strings.
This commit is contained in:
@@ -53,8 +53,8 @@ shared_ptr<Type const> Type::fromElementaryTypeName(Token::Value _typeToken)
|
||||
return make_shared<IntegerType const>(0, IntegerType::Modifier::ADDRESS);
|
||||
else if (_typeToken == Token::BOOL)
|
||||
return make_shared<BoolType const>();
|
||||
else if (Token::STRING1 <= _typeToken && _typeToken <= Token::STRING32)
|
||||
return make_shared<StaticStringType const>(int(_typeToken) - int(Token::STRING1) + 1);
|
||||
else if (Token::STRING0 <= _typeToken && _typeToken <= Token::STRING32)
|
||||
return make_shared<StaticStringType const>(int(_typeToken) - int(Token::STRING0));
|
||||
else
|
||||
BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Unable to convert elementary typename " +
|
||||
std::string(Token::toString(_typeToken)) + " to type."));
|
||||
@@ -199,14 +199,14 @@ const MemberList IntegerType::AddressMemberList =
|
||||
|
||||
shared_ptr<StaticStringType> StaticStringType::smallestTypeForLiteral(string const& _literal)
|
||||
{
|
||||
if (0 < _literal.length() && _literal.length() <= 32)
|
||||
if (_literal.length() <= 32)
|
||||
return make_shared<StaticStringType>(_literal.length());
|
||||
return shared_ptr<StaticStringType>();
|
||||
}
|
||||
|
||||
StaticStringType::StaticStringType(int _bytes): m_bytes(_bytes)
|
||||
{
|
||||
if (asserts(m_bytes > 0 && m_bytes <= 32))
|
||||
if (asserts(m_bytes >= 0 && m_bytes <= 32))
|
||||
BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Invalid byte number for static string type: " +
|
||||
dev::toString(m_bytes)));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user