Procházet zdrojové kódy

don't get_full_path on null_pos for findReferences request

Aleksandr Kuzmenko před 5 roky
rodič
revize
c35c91ab36

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

@@ -23,8 +23,14 @@ let parse_module ctx m p =
 
 module ReferencePosition = struct
 	let reference_position = ref ("",null_pos,SKOther)
-	let set (s,p,k) = reference_position := (s,{p with pfile = Path.get_full_path p.pfile},k)
+	let set (s,p,k) =
+		let p =
+			if p = null_pos then p
+			else {p with pfile = Path.get_full_path p.pfile}
+		in
+		reference_position := (s,p,k)
 	let get () = !reference_position
+	let reset () = reference_position := ("",null_pos,SKOther)
 end
 
 module ExprPreprocessing = struct

+ 2 - 2
src/context/display/findReferences.ml

@@ -27,7 +27,7 @@ let find_references tctx com with_definition pos_filters =
 		with Not_found -> acc)
 	) symbols [] in
 	t();
-	Display.ReferencePosition.set ("",null_pos,SKOther);
+	Display.ReferencePosition.reset();
 	usages
 
 let collect_reference_positions com =
@@ -129,7 +129,7 @@ let find_implementations tctx com name pos kind =
 		if c <> 0 then c else compare p1.pmin p2.pmin
 	) usages in
 	t();
-	Display.ReferencePosition.set ("",null_pos,SKOther);
+	Display.ReferencePosition.reset();
 	DisplayException.raise_positions usages
 
 let find_implementations tctx com =

+ 0 - 1
src/core/path.ml

@@ -133,7 +133,6 @@ let get_full_path =
 			let absolute_path =
 				if length > 0 && String.unsafe_get f 0 = '/' then f
 				else if length = 0 then Unix.getcwd()
-				else if f = "?" then f
 				else (Unix.getcwd()) ^ "/" ^ f
 			in
 			let has_trailing_slash =