@@ -76,7 +76,7 @@ impl Node for FuncDefNode {
7676        } 
7777    } 
7878    fn  emit < ' a ,  ' ctx > ( & ' a  mut  self ,  ctx :  & mut  Ctx < ' a ,  ' ctx > )  -> NodeResult < ' ctx >  { 
79-         ctx. save_if_comment_doc_hover ( self . range ,  Some ( self . typenode . doc . clone ( ) ) ) ; 
79+         ctx. save_if_comment_doc_hover ( self . typenode . id . range ,  Some ( self . typenode . doc . clone ( ) ) ) ; 
8080        for  c in  self . typenode . doc . iter_mut ( )  { 
8181            c. emit ( ctx) ?; 
8282        } 
@@ -105,7 +105,7 @@ impl Node for FuncDefNode {
105105            } ; 
106106        } 
107107        ctx. push_semantic_token ( self . typenode . ret . range ( ) ,  SemanticTokenType :: TYPE ,  0 ) ; 
108-         let  res = ctx. get_type ( self . typenode . id . name . as_str ( ) ,  self . range ) ; 
108+         let  res = ctx. get_type ( self . typenode . id . name . as_str ( ) ,  self . typenode . id . range ) ; 
109109        if  res. is_err ( )  { 
110110            let  diag = res. unwrap_err ( ) ; 
111111            ctx. add_diag ( diag. clone ( ) ) ; 
@@ -285,6 +285,7 @@ impl Node for FuncCallNode {
285285        } 
286286    } 
287287    fn  emit < ' a ,  ' ctx > ( & ' a  mut  self ,  ctx :  & mut  Ctx < ' a ,  ' ctx > )  -> NodeResult < ' ctx >  { 
288+         let  id_range = self . id . range ( ) ; 
288289        let  mut  para_values = Vec :: new ( ) ; 
289290        let  ( func,  pltype,  _)  = self . id . emit ( ctx) ?; 
290291        if  pltype. is_none ( )  || !matches ! ( * RefCell :: borrow( & pltype. clone( ) . unwrap( ) ) ,  PLType :: FN ( _) ) 
@@ -325,7 +326,7 @@ impl Node for FuncCallNode {
325326                & para_values, 
326327                format ( format_args ! ( "call_{}" ,  RefCell :: borrow( & pltype) . get_name( ) ) ) . as_str ( ) , 
327328            ) ; 
328-             ctx. save_if_comment_doc_hover ( self . range ,  Some ( fv. doc . clone ( ) ) ) ; 
329+             ctx. save_if_comment_doc_hover ( id_range ,  Some ( fv. doc . clone ( ) ) ) ; 
329330            let  res = match  ret. try_as_basic_value ( ) . left ( )  { 
330331                Some ( v)  => Ok ( ( 
331332                    { 
@@ -338,8 +339,8 @@ impl Node for FuncCallNode {
338339                ) ) , 
339340                None  => Ok ( ( None ,  Some ( * fv. ret_pltype . clone ( ) ) ,  TerminatorEnum :: NONE ) ) , 
340341            } ; 
341-             ctx. set_if_refs_tp ( pltype. clone ( ) ,  self . range ) ; 
342-             ctx. send_if_go_to_def ( self . range ,  fv. range ,  ctx. plmod . path . clone ( ) ) ; 
342+             ctx. set_if_refs_tp ( pltype. clone ( ) ,  id_range ) ; 
343+             ctx. send_if_go_to_def ( id_range ,  fv. range ,  ctx. plmod . path . clone ( ) ) ; 
343344            return  res; 
344345        } 
345346        return  Err ( ctx. add_err ( self . range ,  ErrorCode :: NOT_A_FUNCTION ) ) ; 
@@ -359,7 +360,7 @@ impl FuncTypeNode {
359360        & ' a  mut  self , 
360361        ctx :  & mut  crate :: ast:: ctx:: Ctx < ' a ,  ' ctx > , 
361362    )  -> Result < FunctionValue < ' ctx > ,  PLDiag >  { 
362-         if  let  Ok ( _)  = ctx. get_type ( & self . id . name . as_str ( ) ,  self . range )  { 
363+         if  let  Ok ( _)  = ctx. get_type ( & self . id . name . as_str ( ) ,  self . id . range )  { 
363364            return  Err ( ctx. add_err ( self . range ,  ErrorCode :: REDEFINE_SYMBOL ) ) ; 
364365        } 
365366        let  mut  param_pltypes = Vec :: new ( ) ; 
@@ -381,7 +382,7 @@ impl FuncTypeNode {
381382            ret_pltype :  Box :: new ( self . ret . get_type ( ctx) ?) , 
382383            param_pltypes, 
383384            param_name, 
384-             range :  self . range , 
385+             range :  self . id . range , 
385386            refs :  Rc :: new ( RefCell :: new ( refs) ) , 
386387            doc :  self . doc . clone ( ) , 
387388            llvmname :  if  self . declare  { 
@@ -406,8 +407,8 @@ impl FuncTypeNode {
406407        let  res = ftp. get_or_insert_fn ( ctx) ; 
407408        let  pltype = PLType :: FN ( ftp) ; 
408409        let  pltype = Rc :: new ( RefCell :: new ( pltype) ) ; 
409-         ctx. set_if_refs_tp ( pltype. clone ( ) ,  self . range ) ; 
410-         ctx. add_type ( self . id . name . clone ( ) ,  pltype. clone ( ) ,  self . range ) ?; 
410+         ctx. set_if_refs_tp ( pltype. clone ( ) ,  self . id . range ) ; 
411+         ctx. add_type ( self . id . name . clone ( ) ,  pltype. clone ( ) ,  self . id . range ) ?; 
411412        ctx. add_doc_symbols ( pltype) ; 
412413        Ok ( res) 
413414    } 
0 commit comments