File tree Expand file tree Collapse file tree 3 files changed +35
-5
lines changed Expand file tree Collapse file tree 3 files changed +35
-5
lines changed Original file line number Diff line number Diff line change @@ -196,11 +196,13 @@ let expr_mapper ~async_context ~in_function_def (self : mapper)
196196        ({
197197           pmod_desc = 
198198             Pmod_constraint 
199-                ({pmod_desc =  Pmod_ident  _}, {pmty_desc =  Pmty_ident  mtyp_lid});
200-            pmod_attributes;
199+                ( {pmod_desc =  Pmod_ident  _; pmod_attributes =  attrs1},
200+                  {pmty_desc =  Pmty_ident  mtyp_lid} );
201+            pmod_attributes =  attrs2;
201202         } as  me),
202203        expr )
203-     when  Res_parsetree_viewer. has_await_attribute pmod_attributes ->
204+     when  Res_parsetree_viewer. has_await_attribute attrs1
205+          ||  Res_parsetree_viewer. has_await_attribute attrs2 ->
204206    {
205207      e with 
206208      pexp_desc = 
@@ -224,14 +226,20 @@ let expr_mapper ~async_context ~in_function_def (self : mapper)
224226  in 
225227  match  e.pexp_desc with 
226228  |  Pexp_letmodule  (_, {pmod_desc =  Pmod_ident  _; pmod_attributes}, _)
229+     when  Ast_attributes. has_await_payload pmod_attributes ->
230+     check_await () ;
231+     result
227232  |  Pexp_letmodule 
228233      ( _,
229234        {
230235          pmod_desc = 
231-             Pmod_constraint  ({pmod_desc =  Pmod_ident  _; pmod_attributes}, _);
236+             Pmod_constraint 
237+               ({pmod_desc =  Pmod_ident  _; pmod_attributes =  attrs1}, _);
238+           pmod_attributes =  attrs2;
232239        },
233240        _ )
234-     when  Ast_attributes. has_await_payload pmod_attributes ->
241+     when  Ast_attributes. has_await_payload attrs1
242+          ||  Ast_attributes. has_await_payload attrs2 ->
235243    check_await () ;
236244    result
237245  |  _  when  Ast_attributes. has_await_payload e.pexp_attributes ->
Original file line number Diff line number Diff line change @@ -34,6 +34,14 @@ async function f(value) {
3434  return  await  Promise . resolve ( 1 ) ; 
3535} 
3636
37+ async  function  f0 ( )  { 
38+   return  ( await  import ( "rescript/lib/es6/Belt_Option.js" ) ) . forEach ; 
39+ } 
40+ 
41+ async  function  f1 ( )  { 
42+   return  ( await  import ( "rescript/lib/es6/Belt_Option.js" ) ) . forEach ; 
43+ } 
44+ 
3745export  { 
3846  next , 
3947  useNext , 
@@ -43,5 +51,7 @@ export {
4351  toplevelAwait , 
4452  toplevelAwait2 , 
4553  f , 
54+   f0 , 
55+   f1 , 
4656} 
4757/* toplevelAwait Not a pure module */ 
Original file line number Diff line number Diff line change @@ -18,3 +18,15 @@ let toplevelAwait2 = arr[await topFoo()]
1818let  f  =  async  (type  input , value : input ) =>  {
1919  await  Js .Promise .resolve (1 )
2020}
21+ 
22+ module  type  MT  =  module  type of  Belt .Option 
23+ 
24+ let  f0  =  async  () =>  {
25+   module  O  =  await  Belt .Option 
26+   O .forEach 
27+ }
28+ 
29+ let  f1  =  async  () =>  {
30+   module  O : MT  =  await  Belt .Option 
31+   O .forEach 
32+ }
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments