Pārlūkot izejas kodu

[display] add helper to test doc

Dmitry Maganov 5 gadi atpakaļ
vecāks
revīzija
568ef2a357

+ 3 - 0
tests/display/src/DisplayTestCase.hx

@@ -35,6 +35,9 @@ class DisplayTestCase implements utest.ITest {
 	inline function signature(pos1)
 	inline function signature(pos1)
 		return ctx.signature(pos1);
 		return ctx.signature(pos1);
 
 
+	inline function doc(pos1)
+		return ctx.doc(pos1);
+
 	inline function metadataDoc(pos1)
 	inline function metadataDoc(pos1)
 		return ctx.metadataDoc(pos1);
 		return ctx.metadataDoc(pos1);
 
 

+ 13 - 0
tests/display/src/DisplayTestContext.hx

@@ -84,6 +84,10 @@ class DisplayTestContext {
 		return haxe.Json.parse(callHaxe('$pos@signature'));
 		return haxe.Json.parse(callHaxe('$pos@signature'));
 	}
 	}
 
 
+	public function doc(pos:Position):String {
+		return extractDoc(callHaxe('$pos@type'));
+	}
+
 	public function metadataDoc(pos:Position):String {
 	public function metadataDoc(pos:Position):String {
 		return extractMetadata(callHaxe('$pos@type'));
 		return extractMetadata(callHaxe('$pos@type'));
 	}
 	}
@@ -173,6 +177,15 @@ class DisplayTestContext {
 		return ret;
 		return ret;
 	}
 	}
 
 
+	static function extractDoc(result:String) {
+		var xml = Xml.parse(result);
+		xml = xml.firstElement();
+		if (xml.nodeName != "type") {
+			return null;
+		}
+		return StringTools.trim(xml.get('d'));
+	}
+
 	static function extractMetadata(result:String) {
 	static function extractMetadata(result:String) {
 		var xml = Xml.parse(result);
 		var xml = Xml.parse(result);
 		xml = xml.firstElement();
 		xml = xml.firstElement();

+ 1 - 0
tests/display/src/Macro.hx

@@ -21,6 +21,7 @@ class Macro {
 			} else {
 			} else {
 				doc += field.doc;
 				doc += field.doc;
 			}
 			}
+			doc = StringTools.replace(doc, "**\\/", "**/");
 			var transform = Marker.extractMarkers(doc);
 			var transform = Marker.extractMarkers(doc);
 			var markers = transform.markers.length > 0 ? macro $a{transform.markers} : macro new Map();
 			var markers = transform.markers.length > 0 ? macro $a{transform.markers} : macro new Map();
 			var filename = Context.getPosInfos(c.pos).file;
 			var filename = Context.getPosInfos(c.pos).file;

+ 40 - 0
tests/display/src/cases/Issue9401.hx

@@ -0,0 +1,40 @@
+package cases;
+
+class Issue9401 extends DisplayTestCase {
+	/**
+		class Foo {
+			/** a0 **\/ public var a(get, set): Int;
+			/** a1 **\/ function get_a() return 0;
+			/** a2 **\/ function set_a(a: Int) return a;
+			public function new() {}
+		}
+
+		@:forward abstract Bar(Foo) from Foo {
+			/** b0 **\/ public var b(get, set): Int;
+			/** b1 **\/ function get_b() return this.a;
+			/** b2 **\/ function set_b(b: Int) return this.a = b;
+		}
+
+		class Main {
+			public static function main() {
+				var foo: Foo = new Foo();
+				var bar: Bar = foo;
+
+				foo.{-1-}a;
+				foo.{-2-}a = 0;
+				bar.{-3-}a;
+				bar.{-4-}a = 0;
+				bar.{-5-}b;
+				bar.{-6-}b = 0;
+			}
+		}
+	**/
+	function testCatch_noTypeHint() {
+		eq("a0", doc(pos(1)));
+		eq("a0", doc(pos(2)));
+		eq("a0", doc(pos(3)));
+		eq("a0", doc(pos(4)));
+		eq("b0", doc(pos(5)));
+		eq("b0", doc(pos(6)));
+	}
+}