From 67c4bd04677413316e2b277228234daa4ce32e5c Mon Sep 17 00:00:00 2001 From: Gyubong Date: Sun, 16 Oct 2022 15:34:44 +0900 Subject: [PATCH 1/2] Fix #3934 --- compiler/codegen/src/compile.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/codegen/src/compile.rs b/compiler/codegen/src/compile.rs index ebfd454a543..555eb1adf87 100644 --- a/compiler/codegen/src/compile.rs +++ b/compiler/codegen/src/compile.rs @@ -2118,15 +2118,16 @@ impl Compiler { Name { id, .. } => self.load_name(id)?, Lambda { args, body } => { let prev_ctx = self.ctx; + + let name = "".to_owned(); + let mut funcflags = self.enter_function(&name, args)?; + self.ctx = CompileContext { loop_data: Option::None, in_class: prev_ctx.in_class, func: FunctionContext::Function, }; - let name = "".to_owned(); - let mut funcflags = self.enter_function(&name, args)?; - self.current_codeinfo() .constants .insert_full(ConstantData::None); From 117ae0a0ead2c89e5c38bfc6033379b081b3d659 Mon Sep 17 00:00:00 2001 From: Gyubong Date: Mon, 17 Oct 2022 10:00:57 +0900 Subject: [PATCH 2/2] Add example code as extra test --- extra_tests/snippets/scope_lambda.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 extra_tests/snippets/scope_lambda.py diff --git a/extra_tests/snippets/scope_lambda.py b/extra_tests/snippets/scope_lambda.py new file mode 100644 index 00000000000..b72a38c5fb9 --- /dev/null +++ b/extra_tests/snippets/scope_lambda.py @@ -0,0 +1,3 @@ +class X: + v = 10 + f = lambda x=v: x