@@ -188,8 +188,10 @@ def extract_array(aryty, obj):
188
188
189
189
if isinstance (scalar_signature .return_type , (types .Tuple , types .UniTuple )):
190
190
output_values = cgutils .unpack_tuple (builder , output_values )
191
+ func_output_types = scalar_signature .return_type .types
191
192
else :
192
193
output_values = [output_values ]
194
+ func_output_types = [scalar_signature .return_type ]
193
195
194
196
# Update output value or accumulators respectively
195
197
for i , ((accu , _ ), value ) in enumerate (zip (output_accumulator , output_values )):
@@ -206,6 +208,7 @@ def extract_array(aryty, obj):
206
208
idxs_bc = [zero if bc else idx for idx , bc in zip (idxs , output_bc [i ])]
207
209
ptr = cgutils .get_item_pointer2 (context , builder , * outputs [i ], idxs_bc )
208
210
# store = builder.store(value, ptr)
211
+ value = context .cast (builder , value , func_output_types [i ], output_types [i ].dtype )
209
212
arrayobj .store_item (context , builder , output_types [i ], value , ptr )
210
213
# store.set_metadata("alias.scope", output_scope_set)
211
214
# store.set_metadata("noalias", input_scope_set)
0 commit comments