@@ -903,7 +903,12 @@ fn function_last_expressions<'a>(
903903 sys_info : & SysInfo ,
904904 constrained_typevars : Option < & ConstrainedTypeVarParams > ,
905905) -> Option < Vec < ( LastStmt , & ' a Expr ) > > {
906- fn f< ' a > ( sys_info : & SysInfo , x : & ' a [ Stmt ] , res : & mut Vec < ( LastStmt , & ' a Expr ) > ) -> Option < ( ) > {
906+ fn f < ' a > (
907+ sys_info : & SysInfo ,
908+ x : & ' a [ Stmt ] ,
909+ res : & mut Vec < ( LastStmt , & ' a Expr ) > ,
910+ constrained_typevars : Option < & ConstrainedTypeVarParams > ,
911+ ) -> Option < ( ) > {
907912 fn loop_body_has_break_statement ( statement : & Stmt , has_break : & mut bool ) {
908913 match statement {
909914 Stmt :: Break ( _) => {
@@ -915,13 +920,6 @@ fn function_last_expressions<'a>(
915920 }
916921 }
917922
918- fn f < ' a > ( sys_info : & SysInfo , x : & ' a [ Stmt ] , res : & mut Vec < ( LastStmt , & ' a Expr ) > ) -> Option < ( ) > {
919- fn f < ' a > (
920- sys_info : & SysInfo ,
921- x : & ' a [ Stmt ] ,
922- res : & mut Vec < ( LastStmt , & ' a Expr ) > ,
923- constrained_typevars : Option < & ConstrainedTypeVarParams > ,
924- ) -> Option < ( ) > {
925923 match x. last ( ) ? {
926924 Stmt :: Expr ( x) => res. push ( ( LastStmt :: Expr , & x. value ) ) ,
927925 Stmt :: Return ( _) | Stmt :: Raise ( _) => { }
@@ -952,7 +950,7 @@ fn function_last_expressions<'a>(
952950 if has_break || x. orelse . is_empty ( ) {
953951 return None ;
954952 }
955- f ( sys_info, & x. orelse , res) ?;
953+ f ( sys_info, & x. orelse , res, constrained_typevars ) ?;
956954 }
957955 Stmt :: If ( x) => {
958956 let mut last_test = None ;
0 commit comments