From 4eff1727e3017f1b05e030bfd0ed9c6674d61e2d Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Fri, 9 May 2025 01:17:37 +0900 Subject: [PATCH] ZJIT: More tests for parsing param forms --- zjit/src/hir.rs | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/zjit/src/hir.rs b/zjit/src/hir.rs index f0ea14f67b..de9b993dea 100644 --- a/zjit/src/hir.rs +++ b/zjit/src/hir.rs @@ -3139,15 +3139,49 @@ mod opt_tests { } #[test] - fn test_rest_param_get_bb_param() { + fn test_param_forms_get_bb_param() { eval(" def rest(*array) = array + def kw(k:) = k + def kw_rest(**k) = k + def post(*rest, post) = post + def block(&b) = nil + def forwardable(...) = nil "); + assert_optimized_method_hir("rest", expect![[r#" fn rest: bb0(v0:ArrayExact): Return v0 "#]]); + // extra hidden param for the set of specified keywords + assert_optimized_method_hir("kw", expect![[r#" + fn kw: + bb0(v0:BasicObject, v1:BasicObject): + Return v0 + "#]]); + assert_optimized_method_hir("kw_rest", expect![[r#" + fn kw_rest: + bb0(v0:BasicObject): + Return v0 + "#]]); + assert_optimized_method_hir("block", expect![[r#" + fn block: + bb0(v0:BasicObject): + v2:NilClassExact = Const Value(nil) + Return v2 + "#]]); + assert_optimized_method_hir("post", expect![[r#" + fn post: + bb0(v0:ArrayExact, v1:BasicObject): + Return v1 + "#]]); + assert_optimized_method_hir("forwardable", expect![[r#" + fn forwardable: + bb0(v0:BasicObject): + v2:NilClassExact = Const Value(nil) + Return v2 + "#]]); } #[test]