@@ -166,11 +166,12 @@ def build_classical_array(self, elems: list[Wire]) -> Wire:
166166
167167 def build_linear_array (self , elems : list [Wire ]) -> Wire :
168168 """Lowers a call to `array.__new__` for linear arrays."""
169- elem_opt_ty = ht .Option (self .elem_ty )
170169 elem_opts = [
171- self .builder .add_op (ops .Tag ( 1 , elem_opt_ty ), elem ) for elem in elems
170+ self .builder .add_op (ops .Some ( self . elem_ty ), elem ) for elem in elems
172171 ]
173- return self .builder .add_op (array_new (elem_opt_ty , len (elems )), * elem_opts )
172+ return self .builder .add_op (
173+ array_new (ht .Option (self .elem_ty ), len (elems )), * elem_opts
174+ )
174175
175176 def compile (self , args : list [Wire ]) -> list [Wire ]:
176177 if self .elem_ty .type_bound () == ht .TypeBound .Any :
@@ -232,7 +233,7 @@ def build_classical_setitem(
232233 # See https://github.com/CQCL/guppylang/issues/629
233234 elem_opt_ty = ht .Option (self .elem_ty )
234235 idx = self .builder .add_op (convert_itousize (), idx )
235- elem_opt = self .builder .add_op (ops .Tag ( 1 , elem_opt_ty ), elem )
236+ elem_opt = self .builder .add_op (ops .Some ( self . elem_ty ), elem )
236237 result = self .builder .add_op (
237238 array_set (elem_opt_ty , self .length ), array , idx , elem_opt
238239 )
@@ -246,7 +247,7 @@ def build_linear_setitem(
246247 """Lowers a call to `array.__setitem__` for linear arrays."""
247248 # Embed the element into an optional
248249 elem_opt_ty = ht .Option (self .elem_ty )
249- elem = self .builder .add_op (ops .Tag ( 1 , elem_opt_ty ), elem )
250+ elem = self .builder .add_op (ops .Some ( self . elem_ty ), elem )
250251 idx = self .builder .add_op (convert_itousize (), idx )
251252 result = self .builder .add_op (
252253 array_set (elem_opt_ty , self .length ), array , idx , elem
0 commit comments