@@ -21,7 +21,7 @@ use lsp_types::MarkupContent;
2121use  lsp_types:: MarkupKind ; 
2222use  starlark:: collections:: SmallMap ; 
2323use  starlark:: docs:: markdown:: render_doc_item; 
24- use  starlark:: docs:: DocItem ; 
24+ use  starlark:: docs:: DocMember ; 
2525use  starlark:: syntax:: AstModule ; 
2626use  starlark_syntax:: syntax:: ast:: AstAssignIdent ; 
2727use  starlark_syntax:: syntax:: ast:: Stmt ; 
@@ -38,7 +38,7 @@ impl From<Symbol> for CompletionItem {
3838        let  documentation = value. doc . map ( |doc| { 
3939            Documentation :: MarkupContent ( MarkupContent  { 
4040                kind :  MarkupKind :: Markdown , 
41-                 value :  render_doc_item ( & value. name ,  & doc) , 
41+                 value :  render_doc_item ( & value. name ,  & doc. to_doc_item ( ) ) , 
4242            } ) 
4343        } ) ; 
4444        Self  { 
@@ -63,17 +63,16 @@ impl AstModuleExportedSymbols for AstModule {
6363        let  mut  result:  SmallMap < & str ,  _ >  = SmallMap :: new ( ) ; 
6464
6565        fn  add < ' a > ( 
66-             me :  & AstModule , 
6766            result :  & mut  SmallMap < & ' a  str ,  Symbol > , 
6867            name :  & ' a  AstAssignIdent , 
6968            kind :  SymbolKind , 
70-             resolve_docs :  impl  FnOnce ( )  -> Option < DocItem > , 
69+             resolve_docs :  impl  FnOnce ( )  -> Option < DocMember > , 
7170        )  { 
7271            if  !name. ident . starts_with ( '_' )  { 
7372                result. entry ( & name. ident ) . or_insert ( Symbol  { 
7473                    name :  name. ident . clone ( ) , 
7574                    detail :  None , 
76-                     span :  name. span , 
75+                     span :  Some ( name. span ) , 
7776                    kind, 
7877                    doc :  resolve_docs ( ) , 
7978                    param :  None , 
@@ -87,25 +86,24 @@ impl AstModuleExportedSymbols for AstModule {
8786                Stmt :: Assign ( assign)  => { 
8887                    assign. lhs . visit_lvalue ( |name| { 
8988                        let  kind = SymbolKind :: from_expr ( & assign. rhs ) ; 
90-                         add ( self ,   & mut  result,  name,  kind,  || { 
89+                         add ( & mut  result,  name,  kind,  || { 
9190                            last_node
9291                                . and_then ( |last| get_doc_item_for_assign ( last,  & assign. lhs ) ) 
93-                                 . map ( DocItem :: Property ) 
92+                                 . map ( DocMember :: Property ) 
9493                        } ) ; 
9594                    } ) ; 
9695                } 
9796                Stmt :: AssignModify ( dest,  _,  _)  => { 
9897                    dest. visit_lvalue ( |name| { 
99-                         add ( self ,   & mut  result,  name,  SymbolKind :: Variable ,  || { 
98+                         add ( & mut  result,  name,  SymbolKind :: Variable ,  || { 
10099                            last_node
101100                                . and_then ( |last| get_doc_item_for_assign ( last,  dest) ) 
102-                                 . map ( DocItem :: Property ) 
101+                                 . map ( DocMember :: Property ) 
103102                        } ) ; 
104103                    } ) ; 
105104                } 
106105                Stmt :: Def ( def)  => { 
107106                    add ( 
108-                         self , 
109107                        & mut  result, 
110108                        & def. name , 
111109                        SymbolKind :: Method  { 
@@ -115,7 +113,7 @@ impl AstModuleExportedSymbols for AstModule {
115113                                . filter_map ( |param| param. split ( ) . 0 . map ( |name| name. to_string ( ) ) ) 
116114                                . collect ( ) , 
117115                        } , 
118-                         || get_doc_item_for_def ( def) . map ( DocItem :: Function ) , 
116+                         || get_doc_item_for_def ( def) . map ( DocMember :: Function ) , 
119117                    ) ; 
120118                } 
121119                _ => { } 
@@ -150,7 +148,11 @@ d = 2
150148        ) ; 
151149        let  res = modu. exported_symbols ( ) ; 
152150        assert_eq ! ( 
153-             res. map( |symbol| format!( "{} {}" ,  modu. file_span( symbol. span) ,  symbol. name) ) , 
151+             res. map( |symbol| format!( 
152+                 "{} {}" , 
153+                 modu. file_span( symbol. span. expect( "span should be set" ) ) , 
154+                 symbol. name
155+             ) ) , 
154156            & [ "X:3:5-6 b" ,  "X:4:1-2 d" ] 
155157        ) ; 
156158    } 
0 commit comments