(builder: LowLevelIRBuilder, vec: Value, item: Value, line: int)
| 507 | |
| 508 | |
| 509 | def vec_remove(builder: LowLevelIRBuilder, vec: Value, item: Value, line: int) -> Value: |
| 510 | assert isinstance(vec.type, RVec) |
| 511 | vec_type = vec.type |
| 512 | item_type = vec_type.item_type |
| 513 | coerced_item = builder.coerce(item, item_type, line) |
| 514 | |
| 515 | if item_type in vec_api_by_item_type: |
| 516 | name = f"{vec_api_by_item_type[item_type]}.remove" |
| 517 | elif vec_type.depth() == 0: |
| 518 | name = "VecTApi.remove" |
| 519 | else: |
| 520 | coerced_item = convert_to_t_ext_item(builder, coerced_item) |
| 521 | name = "VecNestedApi.remove" |
| 522 | call = builder.add( |
| 523 | CallC( |
| 524 | name, |
| 525 | [vec, coerced_item], |
| 526 | vec_type, |
| 527 | steals=[True, False], |
| 528 | is_borrowed=False, |
| 529 | error_kind=ERR_MAGIC, |
| 530 | line=line, |
| 531 | ) |
| 532 | ) |
| 533 | if vec_type.depth() > 0: |
| 534 | builder.keep_alive([item], line) |
| 535 | return call |
| 536 | |
| 537 | |
| 538 | def vec_contains(builder: LowLevelIRBuilder, vec: Value, target: Value, line: int) -> Value: |
no test coverage detected
searching dependent graphs…