@@ -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