Allowing conversion from bytes to bytesNN in type checker.

This commit is contained in:
Djordje Mijovic
2021-04-23 13:19:19 +02:00
parent 15decd2413
commit b40c3bcc32
3 changed files with 26 additions and 14 deletions
+9 -2
View File
@@ -1570,9 +1570,9 @@ BoolResult ArrayType::isExplicitlyConvertibleTo(Type const& _convertTo) const
{
if (isImplicitlyConvertibleTo(_convertTo))
return true;
// allow conversion bytes <-> string
// allow conversion bytes <-> string and bytes -> bytesNN
if (_convertTo.category() != category())
return false;
return isByteArray() && !isString() && _convertTo.category() == Type::Category::FixedBytes;
auto& convertTo = dynamic_cast<ArrayType const&>(_convertTo);
if (convertTo.location() != location())
return false;
@@ -1929,6 +1929,13 @@ BoolResult ArraySliceType::isImplicitlyConvertibleTo(Type const& _other) const
);
}
BoolResult ArraySliceType::isExplicitlyConvertibleTo(Type const& _convertTo) const
{
return
isImplicitlyConvertibleTo(_convertTo) ||
m_arrayType.isExplicitlyConvertibleTo(_convertTo);
}
string ArraySliceType::richIdentifier() const
{
return m_arrayType.richIdentifier() + "_slice";