@@ -1082,7 +1082,12 @@ impl Compiler {
10821082 }
10831083 for var in & * code. freevars {
10841084 let table = self . symbol_table_stack . last ( ) . unwrap ( ) ;
1085- let symbol = table. lookup ( var) . unwrap ( ) ;
1085+ let symbol = table. lookup ( var) . unwrap_or_else ( || {
1086+ panic ! (
1087+ "couldn't look up var {} in {} in {}" ,
1088+ var, code. obj_name, self . source_path
1089+ )
1090+ } ) ;
10861091 let parent_code = self . code_stack . last ( ) . unwrap ( ) ;
10871092 let vars = match symbol. scope {
10881093 SymbolScope :: Free => & parent_code. freevar_cache ,
@@ -1984,7 +1989,7 @@ impl Compiler {
19841989 unpack : false ,
19851990 } ) ,
19861991 generators,
1987- & mut |compiler| {
1992+ & |compiler| {
19881993 compiler. compile_comprehension_element ( elt) ?;
19891994 compiler. emit ( Instruction :: ListAppend {
19901995 i : ( 1 + generators. len ( ) ) as u32 ,
@@ -2001,7 +2006,7 @@ impl Compiler {
20012006 unpack : false ,
20022007 } ) ,
20032008 generators,
2004- & mut |compiler| {
2009+ & |compiler| {
20052010 compiler. compile_comprehension_element ( elt) ?;
20062011 compiler. emit ( Instruction :: SetAdd {
20072012 i : ( 1 + generators. len ( ) ) as u32 ,
@@ -2023,7 +2028,7 @@ impl Compiler {
20232028 unpack : false ,
20242029 } ) ,
20252030 generators,
2026- & mut |compiler| {
2031+ & |compiler| {
20272032 // changed evaluation order for Py38 named expression PEP 572
20282033 compiler. compile_expression ( key) ?;
20292034 compiler. compile_expression ( value) ?;
@@ -2037,7 +2042,7 @@ impl Compiler {
20372042 ) ?;
20382043 }
20392044 GeneratorExp { elt, generators } => {
2040- self . compile_comprehension ( "<genexpr>" , None , generators, & mut |compiler| {
2045+ self . compile_comprehension ( "<genexpr>" , None , generators, & |compiler| {
20412046 compiler. compile_comprehension_element ( elt) ?;
20422047 compiler. mark_generator ( ) ;
20432048 compiler. emit ( Instruction :: YieldValue ) ;
@@ -2046,9 +2051,6 @@ impl Compiler {
20462051 Ok ( ( ) )
20472052 } ) ?;
20482053 }
2049- // Comprehension { kind, generators } => {
2050- // self.compile_comprehension(kind, generators)?;
2051- // }
20522054 Starred { .. } => {
20532055 return Err ( self . error ( CompileErrorType :: InvalidStarExpr ) ) ;
20542056 }
0 commit comments