diff options
author | Yoichi Hirai <i@yoichihirai.com> | 2016-11-10 00:02:25 +0800 |
---|---|---|
committer | Yoichi Hirai <i@yoichihirai.com> | 2016-11-12 00:48:03 +0800 |
commit | 20c2ca39922f4230b504888644d04f4bc8d6b8f3 (patch) | |
tree | 0adf593efa8f5dae1ee66ed8628cdaaf053fdb68 /libsolidity | |
parent | 4b6e7e0677c9d5de50258fab39ed62e48778ac7a (diff) | |
download | dexon-solidity-20c2ca39922f4230b504888644d04f4bc8d6b8f3.tar.gz dexon-solidity-20c2ca39922f4230b504888644d04f4bc8d6b8f3.tar.zst dexon-solidity-20c2ca39922f4230b504888644d04f4bc8d6b8f3.zip |
ast, codegen: disallow conversion between different enum types
Diffstat (limited to 'libsolidity')
-rw-r--r-- | libsolidity/ast/Types.cpp | 2 | ||||
-rw-r--r-- | libsolidity/codegen/CompilerUtils.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp index a134a0bb..f0995393 100644 --- a/libsolidity/ast/Types.cpp +++ b/libsolidity/ast/Types.cpp @@ -1585,7 +1585,7 @@ size_t EnumType::numberOfMembers() const bool EnumType::isExplicitlyConvertibleTo(Type const& _convertTo) const { - return _convertTo.category() == category() || _convertTo.category() == Category::Integer; + return _convertTo == *this || _convertTo.category() == Category::Integer; } unsigned EnumType::memberValue(ASTString const& _member) const diff --git a/libsolidity/codegen/CompilerUtils.cpp b/libsolidity/codegen/CompilerUtils.cpp index ad155b13..2f30f53e 100644 --- a/libsolidity/codegen/CompilerUtils.cpp +++ b/libsolidity/codegen/CompilerUtils.cpp @@ -348,7 +348,7 @@ void CompilerUtils::convertType(Type const& _typeOnStack, Type const& _targetTyp } break; case Type::Category::Enum: - solAssert(targetTypeCategory == Type::Category::Integer || targetTypeCategory == Type::Category::Enum, ""); + solAssert(_targetType == _typeOnStack || targetTypeCategory == Type::Category::Integer, ""); break; case Type::Category::FixedPoint: solAssert(false, "Not yet implemented - FixedPointType."); |