diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp index ed3686b36..d32650383 100644 --- a/libsolidity/ast/Types.cpp +++ b/libsolidity/ast/Types.cpp @@ -2074,7 +2074,11 @@ std::unique_ptr ArrayType::copyForLocation(DataLocation _location BoolResult ArraySliceType::isImplicitlyConvertibleTo(Type const& _other) const { - if (m_arrayType.location() == DataLocation::CallData && m_arrayType.isDynamicallySized() && m_arrayType == _other) + if ( + m_arrayType.dataStoredIn(DataLocation::CallData) && + m_arrayType.isDynamicallySized() && + m_arrayType.isImplicitlyConvertibleTo(_other) + ) return true; return (*this) == _other; }