GH-105678: Split MAKE_FUNCTION into MAKE_FUNCTION and SET_FUNCTION_ATTRIBUTE (GH-105680)

This commit is contained in:
Mark Shannon 2023-06-13 09:51:05 +01:00 committed by GitHub
parent 217589d4f3
commit 09ffa69e2e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 480 additions and 430 deletions

View file

@ -1823,7 +1823,21 @@ compiler_make_closure(struct compiler *c, location loc,
ADDOP_I(c, loc, BUILD_TUPLE, co->co_nfreevars);
}
ADDOP_LOAD_CONST(c, loc, (PyObject*)co);
ADDOP_I(c, loc, MAKE_FUNCTION, flags);
ADDOP(c, loc, MAKE_FUNCTION);
if (flags & MAKE_FUNCTION_CLOSURE) {
ADDOP_I(c, loc, SET_FUNCTION_ATTRIBUTE, MAKE_FUNCTION_CLOSURE);
}
if (flags & MAKE_FUNCTION_ANNOTATIONS) {
ADDOP_I(c, loc, SET_FUNCTION_ATTRIBUTE, MAKE_FUNCTION_ANNOTATIONS);
}
if (flags & MAKE_FUNCTION_KWDEFAULTS) {
ADDOP_I(c, loc, SET_FUNCTION_ATTRIBUTE, MAKE_FUNCTION_KWDEFAULTS);
}
if (flags & MAKE_FUNCTION_DEFAULTS) {
ADDOP_I(c, loc, SET_FUNCTION_ATTRIBUTE, MAKE_FUNCTION_DEFAULTS);
}
return SUCCESS;
}