aboutsummaryrefslogtreecommitdiffstats
path: root/Types.cpp
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2014-12-11 21:19:11 +0800
committerChristian <c@ethdev.com>2014-12-11 21:19:11 +0800
commita7352280790f1b88048b4879c46748d2082b1325 (patch)
treeaaf4f0a40e18abbd8264305e714a1bd50ac3e9d7 /Types.cpp
parent8b54d1afb2b3ad897330258367b2ce67c8a56940 (diff)
downloaddexon-solidity-a7352280790f1b88048b4879c46748d2082b1325.tar.gz
dexon-solidity-a7352280790f1b88048b4879c46748d2082b1325.tar.zst
dexon-solidity-a7352280790f1b88048b4879c46748d2082b1325.zip
Support empty strings.
Diffstat (limited to 'Types.cpp')
-rw-r--r--Types.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/Types.cpp b/Types.cpp
index 543c27c2..00e530c3 100644
--- a/Types.cpp
+++ b/Types.cpp
@@ -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)));
}