@@ -726,15 +726,11 @@ end
726
726
727
727
Base. copyto! (dest:: AnyTracedRArray , bc:: Broadcasted{Nothing} ) = _copyto! (dest, bc) # Keep it for ArrayConflict
728
728
729
- function Base. copyto! (dest:: TracedRArray {T,N} , src:: TracedRArray{T,N} ) where {T,N}
730
- dest . mlir_data = src. mlir_data
729
+ function Base. copyto! (dest:: AnyTracedRArray {T,N} , src:: TracedRArray{T,N} ) where {T,N}
730
+ TracedUtils . set_mlir_data! (dest, src. mlir_data)
731
731
return dest
732
732
end
733
733
734
- function Base. copyto! (dest:: TracedRArray , src:: AnyTracedRArray )
735
- return copyto! (dest, materialize_traced_array (src))
736
- end
737
-
738
734
function Base. copyto! (
739
735
dest:: Reactant.TracedRArray{T} ,
740
736
dstart:: Integer ,
@@ -747,14 +743,22 @@ function Base.copyto!(
747
743
end
748
744
749
745
function Base. copyto! (dest:: TracedRArray{T,N} , src:: TracedRArray{T2,N} ) where {T,T2,N}
750
- return copyto! (dest, Ops. convert (TracedRArray{T,N}, src))
746
+ src2 = if T != T2
747
+ Ops. convert (TracedRArray{T,N}, src)
748
+ else
749
+ src
750
+ end
751
+ TracedUtils. set_mlir_data! (dest, src2. mlir_data)
752
+ return dest
751
753
end
752
754
753
- function Base. copyto! (dest:: AnyTracedRArray , src:: AnyTracedRArray )
755
+ function Base. copyto! (
756
+ dest:: AnyTracedRArray{T1,N} where {T1}, src:: AnyTracedRArray{T2,N} where {T2}
757
+ ) where {N}
754
758
return copyto! (dest, materialize_traced_array (src))
755
759
end
756
760
757
- function Base. copyto! (dest:: TracedRArray {T,N} , src:: Array{T2,N} ) where {T,T2,N}
761
+ function Base. copyto! (dest:: AnyTracedRArray {T,N} , src:: Array{T2,N} ) where {T,T2,N}
758
762
return copyto! (dest, TracedUtils. promote_to (TracedRArray{T2,N}, src))
759
763
end
760
764
0 commit comments