diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2017-08-10 06:16:58 +0800 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2017-08-11 02:14:33 +0800 |
commit | 3dcf089c3fd92e5f1c8323826fd5d28e470e1059 (patch) | |
tree | 42e96f8edf55d446e4c411906ac52df23b8533f0 | |
parent | abe6eb983073d5a8e6d5ac469e4c437ea421c79d (diff) | |
download | dexon-solidity-3dcf089c3fd92e5f1c8323826fd5d28e470e1059.tar dexon-solidity-3dcf089c3fd92e5f1c8323826fd5d28e470e1059.tar.gz dexon-solidity-3dcf089c3fd92e5f1c8323826fd5d28e470e1059.tar.bz2 dexon-solidity-3dcf089c3fd92e5f1c8323826fd5d28e470e1059.tar.lz dexon-solidity-3dcf089c3fd92e5f1c8323826fd5d28e470e1059.tar.xz dexon-solidity-3dcf089c3fd92e5f1c8323826fd5d28e470e1059.tar.zst dexon-solidity-3dcf089c3fd92e5f1c8323826fd5d28e470e1059.zip |
Simplify if/else statements in Types
-rw-r--r-- | libsolidity/ast/Types.cpp | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp index cf43d3fe..abcfeb25 100644 --- a/libsolidity/ast/Types.cpp +++ b/libsolidity/ast/Types.cpp @@ -525,19 +525,20 @@ bool FixedPointType::isExplicitlyConvertibleTo(Type const& _convertTo) const TypePointer FixedPointType::unaryOperatorResult(Token::Value _operator) const { - // "delete" is ok for all fixed types - if (_operator == Token::Delete) + switch(_operator) + { + case Token::Delete: + // "delete" is ok for all fixed types return make_shared<TupleType>(); - // for fixed, we allow +, -, ++ and -- - else if ( - _operator == Token::Add || - _operator == Token::Sub || - _operator == Token::Inc || - _operator == Token::Dec - ) + case Token::Add: + case Token::Sub: + case Token::Inc: + case Token::Dec: + // for fixed, we allow +, -, ++ and -- return shared_from_this(); - else + default: return TypePointer(); + } } bool FixedPointType::operator==(Type const& _other) const @@ -2354,14 +2355,26 @@ unsigned FunctionType::sizeOnStack() const } unsigned size = 0; - if (kind == Kind::External || kind == Kind::CallCode || kind == Kind::DelegateCall) + + switch(kind) + { + case Kind::External: + case Kind::CallCode: + case Kind::DelegateCall: size = 2; - else if (kind == Kind::BareCall || kind == Kind::BareCallCode || kind == Kind::BareDelegateCall) - size = 1; - else if (kind == Kind::Internal) - size = 1; - else if (kind == Kind::ArrayPush || kind == Kind::ByteArrayPush) + break; + case Kind::BareCall: + case Kind::BareCallCode: + case Kind::BareDelegateCall: + case Kind::Internal: + case Kind::ArrayPush: + case Kind::ByteArrayPush: size = 1; + break; + default: + break; + } + if (m_gasSet) size++; if (m_valueSet) |