Преглед на файлове

[typer] resolve typedefs in `make_typeexpr`

closes #7540
Simon Krajewski преди 7 години
родител
ревизия
5e915bd976
променени са 2 файла, в които са добавени 17 реда и са изтрити 1 реда
  1. 1 1
      src/core/texpr.ml
  2. 16 0
      tests/unit/src/unit/issues/Issue7540.hx

+ 1 - 1
src/core/texpr.ml

@@ -219,7 +219,7 @@ module Builder = struct
 
 	let make_typeexpr mt pos =
 		let t =
-			match mt with
+			match resolve_typedef mt with
 			| TClassDecl c -> TAnon { a_fields = c.cl_statics; a_status = ref (Statics c) }
 			| TEnumDecl e -> TAnon { a_fields = PMap.empty; a_status = ref (EnumStatics e) }
 			| TAbstractDecl a -> TAnon { a_fields = PMap.empty; a_status = ref (AbstractStatics a) }

+ 16 - 0
tests/unit/src/unit/issues/Issue7540.hx

@@ -0,0 +1,16 @@
+package unit.issues;
+
+class Issue7540 extends unit.Test {
+	function test() {
+		eq(1, get());
+	}
+
+	function get() {
+		return try throw new Error() catch (e:Error) 1;
+	}
+}
+
+private typedef Error = TypedError<Dynamic>;
+private class TypedError<T> {
+	public function new() { }
+}