MCPcopy Index your code
hub / github.com/python/mypy / vec_append

Function vec_append

mypyc/irbuild/vec.py:407–435  ·  view source on GitHub ↗
(builder: LowLevelIRBuilder, vec: Value, item: Value, line: int)

Source from the content-addressed store, hash-verified

405
406
407def vec_append(builder: LowLevelIRBuilder, vec: Value, item: Value, line: int) -> Value:
408 vec_type = vec.type
409 assert isinstance(vec_type, RVec)
410 item_type = vec_type.item_type
411 coerced_item = builder.coerce(item, item_type, line)
412 item_type_arg = []
413 api_name = vec_api_by_item_type.get(item_type)
414 if api_name is not None:
415 name = f"{api_name}.append"
416 elif vec_type.depth() == 0:
417 name = "VecTApi.append"
418 item_type_arg = [vec_item_type(builder, item_type, line)]
419 else:
420 coerced_item = convert_to_t_ext_item(builder, coerced_item)
421 name = "VecNestedApi.append"
422 call = builder.add(
423 CallC(
424 name,
425 [vec, coerced_item] + item_type_arg,
426 vec_type,
427 steals=[True, False] + ([False] if item_type_arg else []),
428 is_borrowed=False,
429 error_kind=ERR_MAGIC,
430 line=line,
431 )
432 )
433 if vec_type.depth() > 0:
434 builder.keep_alive([item], line)
435 return call
436
437
438def vec_extend(builder: LowLevelIRBuilder, vec: Value, iterable: Value, line: int) -> Value:

Callers 3

gen_inner_stmtsFunction · 0.90
translate_vec_appendFunction · 0.90
gen_inner_stmtsFunction · 0.90

Calls 9

CallCClass · 0.90
isinstanceFunction · 0.85
vec_item_typeFunction · 0.85
convert_to_t_ext_itemFunction · 0.85
depthMethod · 0.80
keep_aliveMethod · 0.80
coerceMethod · 0.45
getMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…