@@ -217,29 +217,27 @@ let expr_mapper ~async_context ~in_function_def (self : mapper)
217217  let  async_saved =  ! async_context in 
218218  let  result =  expr_mapper ~async_context  ~in_function_def  self e in 
219219  async_context :=  async_saved;
220-   let  is_module, has_await = 
221-     match  e.pexp_desc with 
222-     |  Pexp_letmodule  (_, {pmod_desc =  Pmod_ident  _; pmod_attributes}, _)
223-     |  Pexp_letmodule 
224-         ( _,
225-           {
226-             pmod_desc = 
227-               Pmod_constraint 
228-                 ({pmod_desc =  Pmod_ident  _}, {pmty_desc =  Pmty_ident  _});
229-             pmod_attributes;
230-           },
231-           _ ) ->
232-       (true , Ast_attributes. has_await_payload pmod_attributes)
233-     |  _  -> (false , Ast_attributes. has_await_payload e.pexp_attributes)
234-   in 
235-   match  has_await with 
236-   |  None  -> result
237-   |  Some  _  ->
220+   let  check_await  ()  = 
238221    if  ! async_context =  false  then 
239222      Location. raise_errorf ~loc: e.pexp_loc
240-         " Await on expression not in an async context"  ;
241-     if  is_module =  false  then  Ast_await. create_await_expression result
242-     else  result
223+         " Await on expression not in an async context" 
224+   in 
225+   match  e.pexp_desc with 
226+   |  Pexp_letmodule  (_, {pmod_desc =  Pmod_ident  _; pmod_attributes}, _)
227+   |  Pexp_letmodule 
228+       ( _,
229+         {
230+           pmod_desc = 
231+             Pmod_constraint  ({pmod_desc =  Pmod_ident  _; pmod_attributes}, _);
232+         },
233+         _ )
234+     when  Ast_attributes. has_await_payload pmod_attributes ->
235+     check_await () ;
236+     result
237+   |  _  when  Ast_attributes. has_await_payload e.pexp_attributes ->
238+     check_await () ;
239+     Ast_await. create_await_expression result
240+   |  _  -> result
243241
244242let  typ_mapper  (self  : mapper ) (typ  : Parsetree.core_type ) = 
245243  Ast_core_type_class_type. typ_mapper self typ
0 commit comments