Original file line numberDiff line numberDiff line change@@ -108,6 +108,7 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty block,
108108ste->ste_id=k; /* ste owns reference to k */
109109110110ste->ste_name=Py_NewRef(name);
111+ste->ste_function_name=NULL;
111112112113ste->ste_symbols=NULL;
113114ste->ste_varnames=NULL;
@@ -186,6 +187,7 @@ ste_dealloc(PyObject *op)
186187ste->ste_table=NULL;
187188Py_XDECREF(ste->ste_id);
188189Py_XDECREF(ste->ste_name);
190+Py_XDECREF(ste->ste_function_name);
189191Py_XDECREF(ste->ste_symbols);
190192Py_XDECREF(ste->ste_varnames);
191193Py_XDECREF(ste->ste_children);
@@ -2918,6 +2920,7 @@ symtable_visit_annotations(struct symtable *st, stmt_ty o, arguments_ty a, expr_
29182920 (void*)a, LOCATION(o))) {
29192921return0;
29202922 }
2923+Py_XSETREF(st->st_cur->ste_function_name, Py_NewRef(function_ste->ste_name));
29212924if (is_in_class||current_type==ClassBlock) {
29222925st->st_cur->ste_can_see_class_scope=1;
29232926if (!symtable_add_def(st, &_Py_ID(__classdict__), USE, LOCATION(o))) {