diff options
Diffstat (limited to 'test/ripper/test_sexp.rb')
-rw-r--r-- | test/ripper/test_sexp.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/ripper/test_sexp.rb b/test/ripper/test_sexp.rb index 26d19b13a6..d3afbb2399 100644 --- a/test/ripper/test_sexp.rb +++ b/test/ripper/test_sexp.rb @@ -60,6 +60,21 @@ eot assert_equal clear_pos(sexp1), clear_pos(sexp2) end + def test_params_mlhs + sexp = Ripper.sexp("proc {|(w, *x, y), z|}") + _, ((mlhs, w, (rest, x), y), z) = search_sexp(:params, sexp) + assert_equal(:mlhs, mlhs) + assert_equal(:@ident, w[0]) + assert_equal("w", w[1]) + assert_equal(:rest_param, rest) + assert_equal(:@ident, x[0]) + assert_equal("x", x[1]) + assert_equal(:@ident, y[0]) + assert_equal("y", y[1]) + assert_equal(:@ident, z[0]) + assert_equal("z", z[1]) + end + def search_sexp(sym, sexp) return sexp if !sexp or sexp[0] == sym sexp.find do |e| |