Skip to content

Commit 136fc64

Browse files
committed
Polish
1 parent 1d068f7 commit 136fc64

3 files changed

Lines changed: 33 additions & 27 deletions

File tree

mypyc/irbuild/expression.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -364,18 +364,20 @@ def transform_call_expr(builder: IRBuilder, expr: CallExpr) -> Value:
364364
):
365365
item_type = builder.type_to_rtype(analyzed.types[0])
366366
vec_type = RVec(item_type)
367-
cap = _get_vec_cap(builder, expr)
367+
capacity = _get_vec_capacity(builder, expr)
368368
if len(expr.args) == 0 or (len(expr.args) == 1 and expr.arg_kinds == [ARG_NAMED]):
369-
# vec[T]() or vec[T](cap=N)
370-
return vec_create(builder.builder, vec_type, 0, expr.line, cap=cap)
369+
# vec[T]() or vec[T](capacity=N)
370+
return vec_create(builder.builder, vec_type, 0, expr.line, capacity=capacity)
371371
elif (
372372
len(expr.args) == 1
373373
and expr.arg_kinds == [ARG_POS]
374374
or len(expr.args) == 2
375375
and expr.arg_kinds == [ARG_POS, ARG_NAMED]
376376
):
377-
# vec[T](items) or vec[T](items, cap=N)
378-
return translate_vec_create_from_iterable(builder, vec_type, expr.args[0], cap=cap)
377+
# vec[T](items) or vec[T](items, capacity=N)
378+
return translate_vec_create_from_iterable(
379+
builder, vec_type, expr.args[0], capacity=capacity
380+
)
379381
callee = analyzed.expr # Unwrap type application
380382

381383
if isinstance(callee, MemberExpr):
@@ -569,7 +571,7 @@ def translate_super_method_call(builder: IRBuilder, expr: CallExpr, callee: Supe
569571
return builder.builder.call(decl, arg_values, arg_kinds, arg_names, expr.line)
570572

571573

572-
def _get_vec_cap(builder: IRBuilder, expr: CallExpr) -> Value | None:
574+
def _get_vec_capacity(builder: IRBuilder, expr: CallExpr) -> Value | None:
573575
"""Extract the 'capacity' keyword argument value from a vec() call, or None."""
574576
for i, (kind, name) in enumerate(zip(expr.arg_kinds, expr.arg_names)):
575577
if kind == ARG_NAMED and name == "capacity":
@@ -578,7 +580,7 @@ def _get_vec_cap(builder: IRBuilder, expr: CallExpr) -> Value | None:
578580

579581

580582
def translate_vec_create_from_iterable(
581-
builder: IRBuilder, vec_type: RVec, arg: Expression, *, cap: Value | None = None
583+
builder: IRBuilder, vec_type: RVec, arg: Expression, *, capacity: Value | None = None
582584
) -> Value:
583585
line = arg.line
584586
item_type = vec_type.item_type
@@ -597,17 +599,19 @@ def translate_vec_create_from_iterable(
597599
if is_int64_rprimitive(other_type) or is_int_rprimitive(other_type):
598600
length = builder.accept(other)
599601
init = builder.accept(lst.items[0])
600-
return vec_create_initialized(builder.builder, vec_type, length, init, line, cap=cap)
602+
return vec_create_initialized(
603+
builder.builder, vec_type, length, init, line, capacity=capacity
604+
)
601605
assert False, other_type
602606
if isinstance(arg, ListExpr):
603607
items = []
604608
for item in arg.items:
605609
value = builder.accept(item)
606610
items.append(builder.coerce(value, item_type, line))
607-
return vec_create_from_values(builder.builder, vec_type, items, line, cap=cap)
611+
return vec_create_from_values(builder.builder, vec_type, items, line, capacity=capacity)
608612
if isinstance(arg, ListComprehension):
609-
return translate_vec_comprehension(builder, vec_type, arg.generator, cap=cap)
610-
return vec_from_iterable(builder, vec_type, arg, line, cap=cap)
613+
return translate_vec_comprehension(builder, vec_type, arg.generator, capacity=capacity)
614+
return vec_from_iterable(builder, vec_type, arg, line, capacity=capacity)
611615

612616

613617
def vec_from_iterable(
@@ -616,14 +620,14 @@ def vec_from_iterable(
616620
iterable: Expression,
617621
line: int,
618622
*,
619-
cap: Value | None = None,
623+
capacity: Value | None = None,
620624
) -> Value:
621625
"""Construct a vec from an arbitrary iterable."""
622626
# Translate it as a vec comprehension vec[t]([<name> for <name> in
623627
# iterable]). This way we can use various special casing supported
624628
# by for loops and comprehensions.
625629
vec = Register(vec_type)
626-
builder.assign(vec, vec_create(builder.builder, vec_type, 0, line, cap=cap), line)
630+
builder.assign(vec, vec_create(builder.builder, vec_type, 0, line, capacity=capacity), line)
627631
name = f"___tmp_{line}"
628632
var = Var(name)
629633
reg = builder.add_local(var, vec_type.item_type)

mypyc/irbuild/for_helpers.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ def gen_inner_stmts() -> None:
364364

365365

366366
def translate_vec_comprehension(
367-
builder: IRBuilder, vec_type: RVec, gen: GeneratorExpr, *, cap: Value | None = None
367+
builder: IRBuilder, vec_type: RVec, gen: GeneratorExpr, *, capacity: Value | None = None
368368
) -> Value:
369369
def set_item(x: Value, y: Value, z: Value, line: int) -> None:
370370
vec_init_item_unsafe(builder.builder, x, y, z, line)
@@ -374,15 +374,17 @@ def set_item(x: Value, y: Value, z: Value, line: int) -> None:
374374
builder,
375375
gen,
376376
empty_op_llbuilder=lambda length, line: vec_create(
377-
builder.builder, vec_type, length, line, cap=cap
377+
builder.builder, vec_type, length, line, capacity=capacity
378378
),
379379
set_item_op=set_item,
380380
)
381381
if val is not None:
382382
return val
383383

384384
vec = Register(vec_type)
385-
builder.assign(vec, vec_create(builder.builder, vec_type, 0, gen.line, cap=cap), gen.line)
385+
builder.assign(
386+
vec, vec_create(builder.builder, vec_type, 0, gen.line, capacity=capacity), gen.line
387+
)
386388
loop_params = list(zip(gen.indices, gen.sequences, gen.condlists, gen.is_async))
387389

388390
def gen_inner_stmts() -> None:

mypyc/irbuild/vec.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,22 +80,22 @@ def vec_create(
8080
length: int | Value,
8181
line: int,
8282
*,
83-
cap: Value | None = None,
83+
capacity: Value | None = None,
8484
) -> Value:
8585
if isinstance(length, int):
8686
length = Integer(length, c_pyssize_t_rprimitive)
8787
length = as_platform_int(builder, length, line)
88-
if cap is not None:
89-
cap = as_platform_int(builder, cap, line)
88+
if capacity is not None:
89+
capacity = as_platform_int(builder, capacity, line)
9090
else:
91-
cap = length
91+
capacity = length
9292

9393
item_type = vtype.item_type
9494
api_name = vec_api_by_item_type.get(item_type)
9595
if api_name is not None:
9696
call = CallC(
9797
f"{api_name}.alloc",
98-
[length, cap],
98+
[length, capacity],
9999
vtype,
100100
False,
101101
False,
@@ -121,7 +121,7 @@ def vec_create(
121121
if depth == 0:
122122
call = CallC(
123123
"VecTApi.alloc",
124-
[length, cap, typeval],
124+
[length, capacity, typeval],
125125
vtype,
126126
False,
127127
False,
@@ -132,7 +132,7 @@ def vec_create(
132132
else:
133133
call = CallC(
134134
"VecNestedApi.alloc",
135-
[length, cap, typeval, Integer(depth, int32_rprimitive)],
135+
[length, capacity, typeval, Integer(depth, int32_rprimitive)],
136136
vtype,
137137
False,
138138
False,
@@ -151,7 +151,7 @@ def vec_create_initialized(
151151
init: Value,
152152
line: int,
153153
*,
154-
cap: Value | None = None,
154+
capacity: Value | None = None,
155155
) -> Value:
156156
"""Create vec with items initialized to the given value."""
157157
if isinstance(length, int):
@@ -160,7 +160,7 @@ def vec_create_initialized(
160160

161161
item_type = vtype.item_type
162162
init = builder.coerce(init, item_type, line)
163-
vec = vec_create(builder, vtype, length, line, cap=cap)
163+
vec = vec_create(builder, vtype, length, line, capacity=capacity)
164164

165165
items_start = vec_items(builder, vec)
166166
step = step_size(item_type)
@@ -182,9 +182,9 @@ def vec_create_from_values(
182182
values: list[Value],
183183
line: int,
184184
*,
185-
cap: Value | None = None,
185+
capacity: Value | None = None,
186186
) -> Value:
187-
vec = vec_create(builder, vtype, len(values), line, cap=cap)
187+
vec = vec_create(builder, vtype, len(values), line, capacity=capacity)
188188
ptr = vec_items(builder, vec)
189189
item_type = vtype.item_type
190190
step = step_size(item_type)

0 commit comments

Comments
 (0)