MCPcopy
hub / github.com/python/mypy / call_classmethod

Function call_classmethod

mypyc/irbuild/expression.py:481–504  ·  view source on GitHub ↗
(builder: IRBuilder, ir: ClassIR, expr: CallExpr, callee: MemberExpr)

Source from the content-addressed store, hash-verified

479
480
481def call_classmethod(builder: IRBuilder, ir: ClassIR, expr: CallExpr, callee: MemberExpr) -> Value:
482 decl = ir.method_decl(callee.name)
483 args = []
484 arg_kinds, arg_names = expr.arg_kinds.copy(), expr.arg_names.copy()
485 # Add the class argument for class methods in extension classes
486 if decl.kind == FUNC_CLASSMETHOD and ir.is_ext_class:
487 args.append(builder.load_native_type_object(ir.fullname))
488 arg_kinds.insert(0, ARG_POS)
489 arg_names.insert(0, None)
490 args += [builder.accept(arg) for arg in expr.args]
491
492 if ir.is_ext_class:
493 return builder.builder.call(decl, args, arg_kinds, arg_names, expr.line)
494 else:
495 obj = builder.accept(callee.expr)
496 return builder.gen_method_call(
497 obj,
498 callee.name,
499 args,
500 builder.node_type(expr),
501 expr.line,
502 expr.arg_kinds,
503 expr.arg_names,
504 )
505
506
507def translate_super_method_call(builder: IRBuilder, expr: CallExpr, callee: SuperExpr) -> Value:

Callers 1

translate_method_callFunction · 0.85

Calls 9

method_declMethod · 0.80
appendMethod · 0.80
insertMethod · 0.80
callMethod · 0.80
node_typeMethod · 0.80
copyMethod · 0.45
acceptMethod · 0.45
gen_method_callMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…