浏览代码

[display] fix name of module-level fields being repeated in containerName

Jens Fischer 5 年之前
父节点
当前提交
5d48282d2e
共有 2 个文件被更改,包括 10 次插入1 次删除
  1. 1 1
      src/context/display/documentSymbols.ml
  2. 9 0
      tests/display/src/cases/DocumentSymbols.hx

+ 1 - 1
src/context/display/documentSymbols.ml

@@ -109,7 +109,7 @@ let collect_module_symbols mname with_locals (pack,decls) =
 			List.iter (field parent kind) d.d_data
 		| EStatic d ->
 			let path, name = get_decl_path d in
-			let dotpath = string_of_path (path @ [name]) in
+			let dotpath = string_of_path path in
 			field' dotpath Class d.d_name d.d_data d.d_flags p d.d_meta
 	) decls;
 	begin match mname with

+ 9 - 0
tests/display/src/cases/DocumentSymbols.hx

@@ -116,6 +116,15 @@ class DocumentSymbols extends DisplayTestCase {
 		], ctx.documentSymbols());
 	}
 
+	/**
+		function main() {}
+	**/
+	function testModuleLevelFields() {
+		checkDocumentSymbols([
+			{name: "main", kind: Method, containerName: null},
+		], ctx.documentSymbols());
+	}
+
 	function checkDocumentSymbols(expected:Array<ModuleSymbolEntry>, actual:Array<ModuleSymbolEntry>, ?pos:haxe.PosInfos) {
 		for (entry in expected) {
 			entry.containerName = "cases.DocumentSymbols" + if (entry.containerName == null) {