Browse Source

Fallback to FKAnonymous when getting null EFunction kind (#8705)

* Fallback to FKAnonymous when getting null EFunction kind

* Add test for #8705
Rudy Ges 6 years ago
parent
commit
373f3bc4f1

+ 1 - 1
src/macro/macroApi.ml

@@ -724,7 +724,7 @@ and decode_display_kind v = match (decode_enum v) with
 	| 4, [outermost] -> DKPattern (decode_bool outermost)
 	| _ -> raise Invalid_expr
 
-and decode_function_kind kind = match decode_enum kind with
+and decode_function_kind kind = if kind = vnull then FKAnonymous else match decode_enum kind with
 	| 0, [] -> FKAnonymous
 	| 1, [name;inline] -> FKNamed ((decode_string name,Globals.null_pos), decode_bool inline)
 	| 2, [] -> FKArrow

+ 12 - 0
tests/misc/projects/Issue8705/Main.hx

@@ -0,0 +1,12 @@
+class Main {
+	public static function main():Void {
+		testMacro()();
+	}
+
+	static macro function testMacro() {
+		return {
+			expr: EFunction(null, {args: [], expr: macro {}, ret: null}),
+			pos: haxe.macro.Context.currentPos()
+		};
+	}
+}

+ 1 - 0
tests/misc/projects/Issue8705/compile.hxml

@@ -0,0 +1 @@
+Main