瀏覽代碼

[display] fix completion for fields named iterator, closes #7998

Jens Fischer 6 年之前
父節點
當前提交
144bca5940
共有 2 個文件被更改,包括 18 次插入2 次删除
  1. 2 2
      src/typing/typerDisplay.ml
  2. 16 0
      tests/display/src/cases/Issue7998.hx

+ 2 - 2
src/typing/typerDisplay.ml

@@ -385,7 +385,7 @@ and display_expr ctx e_ast e dk with_type p =
 			match follow it.it_type with
 			match follow it.it_type with
 				| TDynamic _ ->  None
 				| TDynamic _ ->  None
 				| t -> Some t
 				| t -> Some t
-			with Not_found ->
+			with Error _ | Not_found ->
 				None
 				None
 		in
 		in
 		let keyValueIterator =
 		let keyValueIterator =
@@ -398,7 +398,7 @@ and display_expr ctx e_ast e dk with_type p =
 						Some (key.cf_type,value.cf_type)
 						Some (key.cf_type,value.cf_type)
 					| _ ->
 					| _ ->
 						None
 						None
-			end with Not_found ->
+			end with Error _ | Not_found ->
 				None
 				None
 		in
 		in
 		raise_fields fields (CRField(item,e.epos,iterator,keyValueIterator)) None
 		raise_fields fields (CRField(item,e.epos,iterator,keyValueIterator)) None

+ 16 - 0
tests/display/src/cases/Issue7998.hx

@@ -0,0 +1,16 @@
+package cases;
+
+class Issue7998 extends DisplayTestCase {
+	/**
+		var subject:{
+			var iterator:Int;
+			var keyValueIterator:Float;
+		};
+		subject.{-1-}
+	**/
+	@:funcCode function test() {
+		var fields = fields(pos(1));
+		eq(true, hasField(fields, "iterator", "Int", "var"));
+		eq(true, hasField(fields, "keyValueIterator", "Float", "var"));
+	}
+}