diff options
| author | Jemma Issroff <jemmaissroff@gmail.com> | 2023-06-20 11:53:02 -0400 |
|---|---|---|
| committer | Takashi Kokubun <takashikkbn@gmail.com> | 2023-06-21 11:25:39 -0700 |
| commit | cc7f765f2c12a9ba050b0d95f9d85f3923c8d944 (patch) | |
| tree | 5b5c60c1950240900dc749773083324a0e39748a /test | |
| parent | 08478fefca827276d68e33f2e6a5940c85957a51 (diff) | |
[Feature #19741] Sync all files in yarp
This commit is the initial sync of all files from ruby/yarp
into ruby/ruby. Notably, it does the following:
* Sync all ruby/yarp/lib/ files to ruby/ruby/lib/yarp
* Sync all ruby/yarp/src/ files to ruby/ruby/yarp/
* Sync all ruby/yarp/test/ files to ruby/ruby/test/yarp
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/7964
Diffstat (limited to 'test')
1821 files changed, 66213 insertions, 0 deletions
diff --git a/test/yarp/comments_test.rb b/test/yarp/comments_test.rb new file mode 100644 index 0000000000..bd8beead92 --- /dev/null +++ b/test/yarp/comments_test.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +class CommentsTest < Test::Unit::TestCase + include ::YARP::DSL + + def test_comment_inline + assert_comment "# comment", :inline + end + + def test_comment___END__ + source = <<~RUBY + __END__ + comment + RUBY + + assert_comment source, :__END__ + end + + def test_comment_embedded_document + source = <<~RUBY + =begin + comment + =end + RUBY + + assert_comment source, :embdoc + end + + def test_comment_embedded_document_with_content_on_same_line + source = <<~RUBY + =begin other stuff + =end + RUBY + + assert_comment source, :embdoc + end + + private + + def assert_comment(source, type) + result = YARP.parse(source) + assert result.errors.empty?, result.errors.map(&:message).join("\n") + result => YARP::ParseResult[comments: [YARP::Comment[type: type]]] + end +end diff --git a/test/yarp/compile_test.rb b/test/yarp/compile_test.rb new file mode 100644 index 0000000000..d0be863db5 --- /dev/null +++ b/test/yarp/compile_test.rb @@ -0,0 +1,212 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +class CompileTest < Test::Unit::TestCase + def test_AliasNode + assert_compiles("alias foo bar") + end + + def test_AndNode + assert_compiles("true && false") + end + + def test_ArrayNode + assert_compiles("[]") + assert_compiles("[foo, bar, baz]") + end + + def test_AssocNode + assert_compiles("{ foo: bar }") + end + + def test_BlockNode + assert_compiles("foo { bar }") + end + + def test_BlockNode_with_optionals + assert_compiles("foo { |x = 1| bar }") + end + + def test_CallNode + assert_compiles("foo") + assert_compiles("foo(bar)") + end + + def test_ClassVariableReadNode + assert_compiles("@@foo") + end + + def test_ClassVariableWriteNode + assert_compiles("@@foo = 1") + end + + def test_FalseNode + assert_compiles("false") + end + + def test_GlobalVariableReadNode + assert_compiles("$foo") + end + + def test_GlobalVariableWriteNode + assert_compiles("$foo = 1") + end + + def test_HashNode + assert_compiles("{ foo: bar }") + end + + def test_InstanceVariableReadNode + assert_compiles("@foo") + end + + def test_InstanceVariableWriteNode + assert_compiles("@foo = 1") + end + + def test_IntegerNode + assert_compiles("1") + assert_compiles("1_000") + end + + def test_InterpolatedStringNode + assert_compiles("\"foo \#{bar} baz\"") + end + + def test_LocalVariableWriteNode + assert_compiles("foo = 1") + end + + def test_LocalVariableReadNode + assert_compiles("[foo = 1, foo]") + end + + def test_NilNode + assert_compiles("nil") + end + + def test_OrNode + assert_compiles("true || false") + end + + def test_ParenthesesNode + assert_compiles("()") + end + + def test_ProgramNode + assert_compiles("") + end + + def test_RangeNode + assert_compiles("foo..bar") + assert_compiles("foo...bar") + assert_compiles("(foo..)") + assert_compiles("(foo...)") + assert_compiles("(..bar)") + assert_compiles("(...bar)") + end + + def test_SelfNode + assert_compiles("self") + end + + def test_StringNode + assert_compiles("\"foo\"") + end + + def test_SymbolNode + assert_compiles(":foo") + end + + def test_TrueNode + assert_compiles("true") + end + + def test_UndefNode + assert_compiles("undef :foo, :bar, :baz") + end + + def test_XStringNode + assert_compiles("`foo`") + end + + private + + def assert_compiles(source) + assert_equal_iseqs(rubyvm_compile(source), YARP.compile(source)) + end + + # Instruction sequences have 13 elements in their lists. We don't currently + # support all of the fields, so we can't compare the iseqs directly. Instead, + # we compare the elements that we do support. + def assert_equal_iseqs(expected, actual) + # The first element is the magic comment string. + assert_equal expected[0], actual[0] + + # The next three elements are the major, minor, and patch version numbers. + # TODO: Insert this check once Ruby 3.3 is released, and the TruffleRuby + # GitHub workflow also checks against Ruby 3.3 + # assert_equal expected[1...4], actual[1...4] + + # The next element is a set of options for the iseq. It has lots of + # different information, some of which we support and some of which we + # don't. + assert_equal expected[4][:arg_size], actual[4][:arg_size], "Unexpected difference in arg_size" + assert_equal expected[4][:stack_max], actual[4][:stack_max], "Unexpected difference in stack_max" + + assert_kind_of Integer, actual[4][:local_size] + assert_kind_of Integer, actual[4][:node_id] + + assert_equal expected[4][:code_location].length, actual[4][:code_location].length, "Unexpected difference in code_location length" + assert_equal expected[4][:node_ids].length, actual[4][:node_ids].length, "Unexpected difference in node_ids length" + + # Then we have the name of the iseq, the relative file path, the absolute + # file path, and the line number. We don't have this working quite yet. + assert_kind_of String, actual[5] + assert_kind_of String, actual[6] + assert_kind_of String, actual[7] + assert_kind_of Integer, actual[8] + + # Next we have the type of the iseq. + assert_equal expected[9], actual[9] + + # Next we have the list of local variables. We don't support this yet. + assert_kind_of Array, actual[10] + + # Next we have the argument options. These are used in block and method + # iseqs to reflect how the arguments are passed. + assert_equal expected[11], actual[11], "Unexpected difference in argument options" + + # Next we have the catch table entries. We don't have this working yet. + assert_kind_of Array, actual[12] + + # Finally we have the actual instructions. We support some of this, but omit + # line numbers and some tracepoint events. + expected[13].each do |insn| + case insn + in [:send, opnds, expected_block] unless expected_block.nil? + actual[13].shift => [:send, ^(opnds), actual_block] + assert_equal_iseqs expected_block, actual_block + in Array | :RUBY_EVENT_B_CALL | :RUBY_EVENT_B_RETURN | /^label_\d+/ + assert_equal insn, actual[13].shift + in Integer | /^RUBY_EVENT_/ + # skip these for now + else + flunk "Unexpected instruction: #{insn.inspect}" + end + end + end + + def rubyvm_compile(source) + options = { + peephole_optimization: false, + specialized_instruction: false, + operands_unification: false, + instructions_unification: false, + frozen_string_literal: false + } + + RubyVM::InstructionSequence.compile(source, **options).to_a + end +end diff --git a/test/yarp/encoding_test.rb b/test/yarp/encoding_test.rb new file mode 100644 index 0000000000..02ff97f4be --- /dev/null +++ b/test/yarp/encoding_test.rb @@ -0,0 +1,70 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +class EncodingTest < Test::Unit::TestCase + %w[ + ascii + ascii-8bit + big5 + binary + euc-jp + gbk + iso-8859-1 + iso-8859-2 + iso-8859-3 + iso-8859-4 + iso-8859-5 + iso-8859-6 + iso-8859-7 + iso-8859-8 + iso-8859-9 + iso-8859-10 + iso-8859-11 + iso-8859-13 + iso-8859-14 + iso-8859-15 + iso-8859-16 + koi8-r + shift_jis + sjis + us-ascii + utf-8 + windows-31j + windows-1251 + windows-1252 + CP1251 + CP1252 + ].each do |encoding| + define_method "test_encoding_#{encoding}" do + result = YARP.parse("# encoding: #{encoding}\nident") + actual = result.value.statements.body.first.name.encoding + assert_equal Encoding.find(encoding), actual + end + end + + def test_coding + result = YARP.parse("# coding: utf-8\nident") + actual = result.value.statements.body.first.name.encoding + assert_equal Encoding.find("utf-8"), actual + end + + def test_emacs_style + result = YARP.parse("# -*- coding: utf-8 -*-\nident") + actual = result.value.statements.body.first.name.encoding + assert_equal Encoding.find("utf-8"), actual + end + + def test_utf_8_variations + %w[ + utf-8-unix + utf-8-dos + utf-8-mac + utf-8-* + ].each do |encoding| + result = YARP.parse("# coding: #{encoding}\nident") + actual = result.value.statements.body.first.name.encoding + assert_equal Encoding.find("utf-8"), actual + end + end +end diff --git a/test/yarp/errors_test.rb b/test/yarp/errors_test.rb new file mode 100644 index 0000000000..4e5f8cb936 --- /dev/null +++ b/test/yarp/errors_test.rb @@ -0,0 +1,984 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +class ErrorsTest < Test::Unit::TestCase + include ::YARP::DSL + + def test_constant_path_with_invalid_token_after + assert_error_messages "A::$b", [ + "Expected identifier or constant after '::'", + "Expected a newline or semicolon after statement." + ] + end + + def test_module_name_recoverable + expected = ModuleNode( + [], + Location(), + ConstantReadNode(), + StatementsNode( + [ModuleNode([], Location(), MissingNode(), nil, Location())] + ), + Location() + ) + + assert_errors expected, "module Parent module end", [ + "Expected to find a module name after `module`." + ] + end + + def test_for_loops_index_missing + expected = ForNode( + MissingNode(), + expression("1..10"), + StatementsNode([expression("i")]), + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "for in 1..10\ni\nend", ["Expected index after for."] + end + + def test_for_loops_only_end + expected = ForNode( + MissingNode(), + MissingNode(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "for end", ["Expected index after for.", "Expected keyword in.", "Expected collection."] + end + + def test_pre_execution_missing_brace + expected = PreExecutionNode( + StatementsNode([expression("1")]), + Location(), + Location(), + Location() + ) + + assert_errors expected, "BEGIN 1 }", ["Expected '{' after 'BEGIN'."] + end + + def test_pre_execution_context + expected = PreExecutionNode( + StatementsNode([ + CallNode( + expression("1"), + nil, + Location(), + nil, + ArgumentsNode([MissingNode()]), + nil, + nil, + 0, + "+" + ) + ]), + Location(), + Location(), + Location() + ) + + assert_errors expected, "BEGIN { 1 + }", ["Expected a value after the operator."] + end + + def test_unterminated_embdoc + assert_errors expression("1"), "1\n=begin\n", ["Unterminated embdoc"] + end + + def test_unterminated_i_list + assert_errors expression("%i["), "%i[", ["Expected a closing delimiter for a `%i` list."] + end + + def test_unterminated_w_list + assert_errors expression("%w["), "%w[", ["Expected a closing delimiter for a `%w` list."] + end + + def test_unterminated_W_list + assert_errors expression("%W["), "%W[", ["Expected a closing delimiter for a `%W` list."] + end + + def test_unterminated_regular_expression + assert_errors expression("/hello"), "/hello", ["Expected a closing delimiter for a regular expression."] + end + + def test_unterminated_xstring + assert_errors expression("`hello"), "`hello", ["Expected a closing delimiter for an xstring."] + end + + def test_unterminated_string + assert_errors expression('"hello'), '"hello', ["Expected a closing delimiter for an interpolated string."] + end + + def test_unterminated_s_symbol + assert_errors expression("%s[abc"), "%s[abc", ["Expected a closing delimiter for a dynamic symbol."] + end + + def test_unterminated_parenthesized_expression + assert_errors expression('(1 + 2'), '(1 + 2', ["Expected to be able to parse an expression.", "Expected a closing parenthesis."] + end + + def test_1_2_3 + assert_errors expression("(1, 2, 3)"), "(1, 2, 3)", [ + "Expected to be able to parse an expression.", + "Expected a closing parenthesis.", + "Expected a newline or semicolon after statement.", + "Expected to be able to parse an expression.", + "Expected a newline or semicolon after statement.", + "Expected to be able to parse an expression.", + "Expected a newline or semicolon after statement.", + "Expected to be able to parse an expression." + ] + end + + def test_return_1_2_3 + assert_error_messages "return(1, 2, 3)", [ + "Expected to be able to parse an expression.", + "Expected a closing parenthesis.", + "Expected a newline or semicolon after statement.", + "Expected to be able to parse an expression." + ] + end + + def test_return_1 + assert_errors expression("return 1,;"), "return 1,;", ["Expected to be able to parse an argument."] + end + + def test_next_1_2_3 + assert_errors expression("next(1, 2, 3)"), "next(1, 2, 3)", [ + "Expected to be able to parse an expression.", + "Expected a closing parenthesis.", + "Expected a newline or semicolon after statement.", + "Expected to be able to parse an expression." + ] + end + + def test_next_1 + assert_errors expression("next 1,;"), "next 1,;", ["Expected to be able to parse an argument."] + end + + def test_break_1_2_3 + errors = [ + "Expected to be able to parse an expression.", + "Expected a closing parenthesis.", + "Expected a newline or semicolon after statement.", + "Expected to be able to parse an expression." + ] + + assert_errors expression("break(1, 2, 3)"), "break(1, 2, 3)", errors + end + + def test_break_1 + assert_errors expression("break 1,;"), "break 1,;", ["Expected to be able to parse an argument."] + end + + def test_argument_forwarding_when_parent_is_not_forwarding + assert_errors expression('def a(x, y, z); b(...); end'), 'def a(x, y, z); b(...); end', ["unexpected ... when parent method is not forwarding."] + end + + def test_argument_forwarding_only_effects_its_own_internals + assert_errors expression('def a(...); b(...); end; def c(x, y, z); b(...); end'), 'def a(...); b(...); end; def c(x, y, z); b(...); end', ["unexpected ... when parent method is not forwarding."] + end + + def test_top_level_constant_with_downcased_identifier + assert_error_messages "::foo", [ + "Expected a constant after ::.", + "Expected a newline or semicolon after statement." + ] + end + + def test_top_level_constant_starting_with_downcased_identifier + assert_error_messages "::foo::A", [ + "Expected a constant after ::.", + "Expected a newline or semicolon after statement." + ] + end + + def test_aliasing_global_variable_with_non_global_variable + assert_errors expression("alias $a b"), "alias $a b", ["Expected a global variable."] + end + + def test_aliasing_non_global_variable_with_global_variable + assert_errors expression("alias a $b"), "alias a $b", ["Expected a bare word or symbol argument."] + end + + def test_aliasing_global_variable_with_global_number_variable + assert_errors expression("alias $a $1"), "alias $a $1", ["Can't make alias for number variables."] + end + + def test_def_with_expression_receiver_and_no_identifier + assert_errors expression("def (a); end"), "def (a); end", [ + "Expected '.' or '::' after receiver" + ] + end + + def test_def_with_multiple_statements_receiver + assert_errors expression("def (\na\nb\n).c; end"), "def (\na\nb\n).c; end", [ + "Expected closing ')' for receiver.", + "Expected '.' or '::' after receiver", + "Expected to be able to parse an expression.", + "Expected to be able to parse an expression." + ] + end + + def test_def_with_empty_expression_receiver + assert_errors expression("def ().a; end"), "def ().a; end", ["Expected to be able to parse receiver."] + end + + def test_block_beginning_with_brace_and_ending_with_end + assert_error_messages "x.each { x end", [ + "Expected a newline or semicolon after statement.", + "Expected to be able to parse an expression.", + "Expected to be able to parse an expression.", + "Expected block beginning with '{' to end with '}'." + ] + end + + def test_double_splat_followed_by_splat_argument + expected = CallNode( + nil, + nil, + Location(), + Location(), + ArgumentsNode( + [KeywordHashNode( + [AssocSplatNode( + CallNode( + nil, + nil, + Location(), + nil, + nil, + nil, + nil, + 0, + "kwargs" + ), + Location() + )] + ), + SplatNode( + Location(), + CallNode(nil, nil, Location(), nil, nil, nil, nil, 0, "args") + )] + ), + Location(), + nil, + 0, + "a" + ) + + assert_errors expected, "a(**kwargs, *args)", ["Unexpected splat argument after double splat."] + end + + def test_arguments_after_block + expected = CallNode( + nil, + nil, + Location(), + Location(), + ArgumentsNode([ + BlockArgumentNode(expression("block"), Location()), + expression("foo") + ]), + Location(), + nil, + 0, + "a" + ) + + assert_errors expected, "a(&block, foo)", ["Unexpected argument after block argument."] + end + + def test_arguments_binding_power_for_and + assert_error_messages "foo(*bar and baz)", [ + "Expected a ')' to close the argument list.", + "Expected a newline or semicolon after statement.", + "Expected to be able to parse an expression." + ] + end + + def test_splat_argument_after_keyword_argument + expected = CallNode( + nil, + nil, + Location(), + Location(), + ArgumentsNode( + [KeywordHashNode( + [AssocNode( + SymbolNode(nil, Location(), Location(), "foo"), + CallNode(nil, nil, Location(), nil, nil, nil, nil, 0, "bar"), + nil + )] + ), + SplatNode( + Location(), + CallNode(nil, nil, Location(), nil, nil, nil, nil, 0, "args") + )] + ), + Location(), + nil, + 0, + "a" + ) + + assert_errors expected, "a(foo: bar, *args)", ["Unexpected splat argument after double splat."] + end + + def test_module_definition_in_method_body + expected = DefNode( + Location(), + nil, + nil, + StatementsNode([ModuleNode([], Location(), ConstantReadNode(), nil, Location())]), + [], + Location(), + nil, + nil, + nil, + nil, + Location() + ) + + assert_errors expected, "def foo;module A;end;end", ["Module definition in method body"] + end + + def test_module_definition_in_method_body_within_block + expected = DefNode( + Location(), + nil, + nil, + StatementsNode( + [CallNode( + nil, + nil, + Location(), + nil, + nil, + nil, + BlockNode( + [], + nil, + StatementsNode([ModuleNode([], Location(), ConstantReadNode(), nil, Location())]), + Location(), + Location() + ), + 0, + "bar" + )] + ), + [], + Location(), + nil, + nil, + nil, + nil, + Location() + ) + + assert_errors expected, " + def foo + bar do + module Foo;end + end + end + ", ["Module definition in method body"] + end + + def test_class_definition_in_method_body + expected = DefNode( + Location(), + nil, + nil, + StatementsNode( + [ClassNode( + [], + Location(), + ConstantReadNode(), + nil, + nil, + nil, + Location() + )] + ), + [], + Location(), + nil, + nil, + nil, + nil, + Location() + ) + + assert_errors expected, "def foo;class A;end;end", ["Class definition in method body"] + end + + def test_bad_arguments + expected = DefNode( + Location(), + nil, + ParametersNode([], [], [], nil, [], nil, nil), + nil, + [], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(A, @a, $A, @@a);end", [ + "Formal argument cannot be a constant", + "Formal argument cannot be an instance variable", + "Formal argument cannot be a global variable", + "Formal argument cannot be a class variable", + ] + end + + def test_cannot_assign_to_a_reserved_numbered_parameter + expected = BeginNode( + Location(), + StatementsNode([ + LocalVariableWriteNode(:_1, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_2, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_3, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_4, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_5, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_6, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_7, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_8, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_9, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()), + LocalVariableWriteNode(:_10, 0, SymbolNode(Location(), Location(), nil, "a"), Location(), Location()) + ]), + nil, + nil, + nil, + Location() + ) + + assert_errors expected, <<~RUBY, Array.new(9, "reserved for numbered parameter") + begin + _1=:a;_2=:a;_3=:a;_4=:a;_5=:a + _6=:a;_7=:a;_8=:a;_9=:a;_10=:a + end + RUBY + end + + def test_do_not_allow_trailing_commas_in_method_parameters + expected = DefNode( + Location(), + nil, + ParametersNode( + [RequiredParameterNode(:a), RequiredParameterNode(:b), RequiredParameterNode(:c)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a, :b, :c], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(a,b,c,);end", [ + "Unexpected ','." + ] + end + + def test_do_not_allow_trailing_commas_in_lambda_parameters + expected = LambdaNode( + [:a, :b], + Location(), + BlockParametersNode( + ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], [], nil, [], nil, nil), + [], + Location(), + Location() + ), + nil + ) + assert_errors expected, "-> (a, b, ) {}", [ + "Unexpected ','." + ] + end + + def test_do_not_allow_multiple_codepoints_in_a_single_character_literal + expected = StringNode(Location(), Location(), nil, "\u0001\u0002") + + assert_errors expected, '?\u{0001 0002}', [ + "Multiple codepoints at single character literal" + ] + end + + def test_do_not_allow_more_than_6_hexadecimal_digits_in_u_Unicode_character_notation + expected = StringNode(Location(), Location(), Location(), "\u0001") + + assert_errors expected, '"\u{0000001}"', [ + "invalid Unicode escape.", + "invalid Unicode escape." + ] + end + + def test_do_not_allow_characters_other_than_0_9_a_f_and_A_F_in_u_Unicode_character_notation + expected = StringNode(Location(), Location(), Location(), "\u0000z}") + + assert_errors expected, '"\u{000z}"', [ + "unterminated Unicode escape", + "unterminated Unicode escape" + ] + end + + def test_method_parameters_after_block + expected = DefNode( + Location(), + nil, + ParametersNode( + [], + [], + [RequiredParameterNode(:a)], + nil, + [], + nil, + BlockParameterNode(Location(), Location()) + ), + nil, + [:block, :a], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + assert_errors expected, "def foo(&block, a)\nend", ["Unexpected parameter order"] + end + + def test_method_with_arguments_after_anonymous_block + expected = DefNode( + Location(), + nil, + ParametersNode([], [], [RequiredParameterNode(:a)], nil, [], nil, BlockParameterNode(nil, Location())), + nil, + [:&, :a], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(&, a)\nend", ["Unexpected parameter order"] + end + + def test_method_parameters_after_arguments_forwarding + expected = DefNode( + Location(), + nil, + ParametersNode( + [], + [], + [RequiredParameterNode(:a)], + nil, + [], + ForwardingParameterNode(), + nil + ), + nil, + [:"...", :a], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + assert_errors expected, "def foo(..., a)\nend", ["Unexpected parameter order"] + end + + def test_keywords_parameters_before_required_parameters + expected = DefNode( + Location(), + nil, + ParametersNode( + [], + [], + [RequiredParameterNode(:a)], + nil, + [KeywordParameterNode(Location(), nil)], + nil, + nil + ), + nil, + [:b, :a], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + assert_errors expected, "def foo(b:, a)\nend", ["Unexpected parameter order"] + end + + def test_rest_keywords_parameters_before_required_parameters + expected = DefNode( + Location(), + nil, + ParametersNode( + [], + [], + [], + nil, + [KeywordParameterNode(Location(), nil)], + KeywordRestParameterNode(Location(), Location()), + nil + ), + nil, + [:rest, :b], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + assert_errors expected, "def foo(**rest, b:)\nend", ["Unexpected parameter order"] + end + + def test_double_arguments_forwarding + expected = DefNode( + Location(), + nil, + ParametersNode([], [], [], nil, [], ForwardingParameterNode(), nil), + nil, + [:"..."], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(..., ...)\nend", ["Unexpected parameter order"] + end + + def test_multiple_error_in_parameters_order + expected = DefNode( + Location(), + nil, + ParametersNode( + [], + [], + [RequiredParameterNode(:a)], + nil, + [KeywordParameterNode(Location(), nil)], + KeywordRestParameterNode(Location(), Location()), + nil + ), + nil, + [:args, :a, :b], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(**args, a, b:)\nend", ["Unexpected parameter order", "Unexpected parameter order"] + end + + def test_switching_to_optional_arguments_twice + expected = DefNode( + Location(), + nil, + ParametersNode( + [], + [], + [RequiredParameterNode(:a)], + nil, + [KeywordParameterNode(Location(), nil)], + KeywordRestParameterNode(Location(), Location()), + nil + ), + nil, + [:args, :a, :b], + Location(), + nil, + Location(), + Location(), + nil, + Location(), + ) + + assert_errors expected, "def foo(**args, a, b:)\nend", ["Unexpected parameter order", "Unexpected parameter order"] + end + + def test_switching_to_named_arguments_twice + expected = DefNode( + Location(), + nil, + ParametersNode( + [], + [], + [RequiredParameterNode(:a)], + nil, + [KeywordParameterNode(Location(), nil)], + KeywordRestParameterNode(Location(), Location()), + nil + ), + nil, + [:args, :a, :b], + Location(), + nil, + Location(), + Location(), + nil, + Location(), + ) + + assert_errors expected, "def foo(**args, a, b:)\nend", ["Unexpected parameter order", "Unexpected parameter order"] + end + + def test_returning_to_optional_parameters_multiple_times + expected = DefNode( + Location(), + nil, + ParametersNode( + [RequiredParameterNode(:a)], + [ + OptionalParameterNode(:b, Location(), Location(), IntegerNode()), + OptionalParameterNode(:d, Location(), Location(), IntegerNode()) + ], + [RequiredParameterNode(:c), RequiredParameterNode(:e)], + nil, + [], + nil, + nil + ), + nil, + [:a, :b, :c, :d, :e], + Location(), + nil, + Location(), + Location(), + nil, + Location(), + ) + + assert_errors expected, "def foo(a, b = 1, c, d = 2, e)\nend", ["Unexpected parameter order"] + end + + def test_case_without_when_clauses_errors_on_else_clause + expected = CaseNode( + SymbolNode(Location(), Location(), nil, "a"), + [], + ElseNode(Location(), nil, Location()), + Location(), + Location() + ) + + assert_errors expected, "case :a\nelse\nend", ["Unexpected else without no when clauses in case statement."] + end + + def test_setter_method_cannot_be_defined_in_an_endless_method_definition + expected = DefNode( + Location(), + nil, + nil, + StatementsNode([IntegerNode()]), + [], + Location(), + nil, + Location(), + Location(), + Location(), + nil + ) + + assert_errors expected, "def a=() = 42", ["Setter method cannot be defined in an endless method definition"] + end + + def test_do_not_allow_forward_arguments_in_lambda_literals + expected = LambdaNode( + [:"..."], + Location(), + BlockParametersNode(ParametersNode([], [], [], nil, [], ForwardingParameterNode(), nil), [], Location(), Location()), + nil + ) + + assert_errors expected, "->(...) {}", ["Unexpected ..."] + end + + def test_do_not_allow_forward_arguments_in_blocks + expected = CallNode( + nil, + nil, + Location(), + nil, + nil, + nil, + BlockNode( + [:"..."], + BlockParametersNode(ParametersNode([], [], [], nil, [], ForwardingParameterNode(), nil), [], Location(), Location()), + nil, + Location(), + Location() + ), + 0, + "a" + ) + + assert_errors expected, "a {|...|}", ["Unexpected ..."] + end + + def test_dont_allow_return_inside_class_body + expected = ClassNode( + [], + Location(), + ConstantReadNode(), + nil, + nil, + StatementsNode([ReturnNode(Location(), nil)]), + Location() + ) + + assert_errors expected, "class A; return; end", ["Invalid return in class/module body"] + end + + def test_dont_allow_return_inside_module_body + expected = ModuleNode( + [], + Location(), + ConstantReadNode(), + StatementsNode([ReturnNode(Location(), nil)]), + Location() + ) + + assert_errors expected, "module A; return; end", ["Invalid return in class/module body"] + end + + def test_dont_allow_setting_to_back_and_nth_reference + expected = BeginNode( + Location(), + StatementsNode([ + GlobalVariableWriteNode(Location(), Location(), NilNode()), + GlobalVariableWriteNode(Location(), Location(), NilNode()) + ]), + nil, + nil, + nil, + Location() + ) + + assert_errors expected, "begin\n$+ = nil\n$1466 = nil\nend", ["Can't set variable", "Can't set variable"] + end + + def test_duplicated_parameter_names + expected = DefNode( + Location(), + nil, + ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b), RequiredParameterNode(:a)], [], [], nil, [], nil, nil), + nil, + [:a, :b], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(a,b,a);end", ["Duplicated parameter name."] + + expected = DefNode( + Location(), + nil, + ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], [], RestParameterNode(Location(), Location()), [], nil, nil), + nil, + [:a, :b], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(a,b,*a);end", ["Duplicated parameter name."] + + expected = DefNode( + Location(), + nil, + ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], [], nil, [], KeywordRestParameterNode(Location(), Location()), nil), + nil, + [:a, :b], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(a,b,**a);end", ["Duplicated parameter name."] + + expected = DefNode( + Location(), + nil, + ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], [], nil, [], nil, BlockParameterNode(Location(), Location())), + nil, + [:a, :b], + Location(), + nil, + Location(), + Location(), + nil, + Location() + ) + + assert_errors expected, "def foo(a,b,&a);end", ["Duplicated parameter name."] + end + + private + + def assert_errors(expected, source, errors) + assert_nil Ripper.sexp_raw(source) + + result = YARP.parse(source) + result => YARP::ParseResult[value: YARP::ProgramNode[statements: YARP::StatementsNode[body: [*, node]]]] + + assert_equal_nodes(expected, node, compare_location: false) + assert_equal(errors, result.errors.map(&:message)) + end + + def assert_error_messages(source, errors) + assert_nil Ripper.sexp_raw(source) + result = YARP.parse(source) + assert_equal(errors, result.errors.map(&:message)) + end + + def expression(source) + YARP.parse(source) => YARP::ParseResult[value: YARP::ProgramNode[statements: YARP::StatementsNode[body: [*, node]]]] + node + end +end diff --git a/test/yarp/fixtures/alias.txt b/test/yarp/fixtures/alias.txt new file mode 100644 index 0000000000..376dacd7cc --- /dev/null +++ b/test/yarp/fixtures/alias.txt @@ -0,0 +1,23 @@ +alias :foo :bar + +alias %s[abc] %s[def] + +alias :'abc' :'def' + +alias :"abc#{1}" :'def' + +alias $a $' + +alias foo bar + +alias $foo $bar + +alias foo if + +alias foo <=> + +alias :== :eql? + +alias A B + +alias :A :B diff --git a/test/yarp/fixtures/arithmetic.txt b/test/yarp/fixtures/arithmetic.txt new file mode 100644 index 0000000000..6f86f92d47 --- /dev/null +++ b/test/yarp/fixtures/arithmetic.txt @@ -0,0 +1,8 @@ +foo !bar + +-foo*bar + ++foo**bar + +foo ~bar + diff --git a/test/yarp/fixtures/arrays.txt b/test/yarp/fixtures/arrays.txt new file mode 100644 index 0000000000..e277ad5b34 --- /dev/null +++ b/test/yarp/fixtures/arrays.txt @@ -0,0 +1,80 @@ +[*a] + +foo[bar, baz] = 1, 2, 3 + +[a: [:b, :c]] + + + +[:a, :b, +:c,1, + + + +:d, +] + + +[:a, :b, +:c,1, + + + +:d + + +] + +[foo => bar] + +foo[bar][baz] = qux + +foo[bar][baz] + +[ +] + +foo[bar, baz] + +foo[bar, baz] = qux + +foo[0], bar[0] = 1, 2 + +foo[bar[baz] = qux] + +foo[bar] + +foo[bar] = baz + +[**{}] + +[**kw] + +[1, **kw] + +[1, **kw, **{}, **kw] + +[ + foo => bar, +] + + +%i#one two three# + +%w#one two three# + +%x#one two three# + + +%i@one two three@ + +%w@one two three@ + +%x@one two three@ + + +%i{one two three} + +%w{one two three} + +%x{one two three} diff --git a/test/yarp/fixtures/begin_ensure.txt b/test/yarp/fixtures/begin_ensure.txt new file mode 100644 index 0000000000..1c6f9dac35 --- /dev/null +++ b/test/yarp/fixtures/begin_ensure.txt @@ -0,0 +1,14 @@ +begin +a +ensure +b +end + +begin; a; ensure; b; end + +begin a + ensure b + end + +begin a; ensure b; end + diff --git a/test/yarp/fixtures/begin_rescue.txt b/test/yarp/fixtures/begin_rescue.txt new file mode 100644 index 0000000000..0a56fbef9f --- /dev/null +++ b/test/yarp/fixtures/begin_rescue.txt @@ -0,0 +1,79 @@ +begin; a; rescue; b; else; c; end + +begin; a; rescue; b; else; c; ensure; d; end + +begin +a +end + +begin; a; end + +begin a + end + +begin a; end + +begin +a +rescue +b +rescue +c +rescue +d +end + +begin + a +rescue Exception => ex + b +rescue AnotherException, OneMoreException => ex + c +end + +begin + a +rescue Exception => ex + b +ensure + b +end + +%!abc! + +begin +a +rescue +b +end + +begin;a;rescue;b;end + +begin +a;rescue +b;end + +begin +a +rescue Exception +b +end + +begin +a +rescue Exception, CustomException +b +end + +begin + a +rescue Exception, CustomException => ex + b +end + +begin + a +rescue Exception => ex + b +end + diff --git a/test/yarp/fixtures/blocks.txt b/test/yarp/fixtures/blocks.txt new file mode 100644 index 0000000000..e33d95c150 --- /dev/null +++ b/test/yarp/fixtures/blocks.txt @@ -0,0 +1,54 @@ +foo[bar] { baz } + +foo[bar] do +baz +end + +x.reduce(0) { |x, memo| memo += x } + +foo do end + +foo bar, (baz do end) + +foo bar do end + +foo bar baz do end + +foo do |a = b[1]| +end + +foo do +rescue +end + +foo do + bar do + baz do + end + end +end + +foo[bar] { baz } + +foo { |x, y = 2, z:| x } + +foo { |x| } + +fork = 1 +fork do |a| +end + +fork { |a| } + +C do +end + +C {} + +foo lambda { | + a: 1, + b: 2 + | +} + +foo do |bar,| end diff --git a/test/yarp/fixtures/boolean_operators.txt b/test/yarp/fixtures/boolean_operators.txt new file mode 100644 index 0000000000..dd0b9c9f01 --- /dev/null +++ b/test/yarp/fixtures/boolean_operators.txt @@ -0,0 +1,5 @@ +a &&= b + +a += b + +a ||= b diff --git a/test/yarp/fixtures/booleans.txt b/test/yarp/fixtures/booleans.txt new file mode 100644 index 0000000000..d9417254b6 --- /dev/null +++ b/test/yarp/fixtures/booleans.txt @@ -0,0 +1,3 @@ +false + +true diff --git a/test/yarp/fixtures/break.txt b/test/yarp/fixtures/break.txt new file mode 100644 index 0000000000..61859d8a8a --- /dev/null +++ b/test/yarp/fixtures/break.txt @@ -0,0 +1,25 @@ +break + +break (1), (2), (3) + +break 1 + +break 1, 2, +3 + +break 1, 2, 3 + +break [1, 2, 3] + +break( + 1 + 2 +) + +break() + +break(1) + +foo { break 42 } == 42 + +foo { |a| break } == 42 diff --git a/test/yarp/fixtures/case.txt b/test/yarp/fixtures/case.txt new file mode 100644 index 0000000000..76d11313ee --- /dev/null +++ b/test/yarp/fixtures/case.txt @@ -0,0 +1,30 @@ +case :hi +when :hi +end + +case true; when true; puts :hi; when false; puts :bye; end + +case; when *foo; end + +case :hi +when :hi +else +:b +end + +case this; when FooBar, BazBonk; end + +case +when foo == bar +end + +case +when a +else + # empty +end + +case type; + ;when :b; + ; else; + end diff --git a/test/yarp/fixtures/classes.txt b/test/yarp/fixtures/classes.txt new file mode 100644 index 0000000000..056cb00e82 --- /dev/null +++ b/test/yarp/fixtures/classes.txt @@ -0,0 +1,35 @@ +class A a = 1 end + +class A; ensure; end + +class A; rescue; else; ensure; end + +class A < B +a = 1 +end + +class << not foo +end + +class A; class << self; ensure; end; end + +class A; class << self; rescue; else; ensure; end; end + +class << foo.bar +end + +class << foo.bar;end + +class << self +end + +class << self;end + +class << self +1 + 2 +end + +class << self;1 + 2;end + +class A < B[1] +end diff --git a/test/yarp/fixtures/comments.txt b/test/yarp/fixtures/comments.txt new file mode 100644 index 0000000000..9bd853e927 --- /dev/null +++ b/test/yarp/fixtures/comments.txt @@ -0,0 +1,24 @@ +a + # Comment +b + +c # Comment +d + +e +# Comment + .f + +g + # Comment +.h + +i # Comment +.j + +k # Comment + .l + +m + # Comment + &.n diff --git a/test/yarp/fixtures/constants.txt b/test/yarp/fixtures/constants.txt new file mode 100644 index 0000000000..8c7c6d227b --- /dev/null +++ b/test/yarp/fixtures/constants.txt @@ -0,0 +1,169 @@ +A::B + +A::B::C + +a::B + +A::B = 1 + +A = 1 + +ABC + +Foo 1 + +::A::foo + +::A = 1 + +::A::B = 1 + +::A::B + +::A + +A::false + +A::B::true + +A::& + +A::` + +A::! + +A::!= + +A::^ + +A::== + +A::=== + +A::=~ + +A::> + +A::>= + +A::>> + +A::<< + +A::\ + +A::alias + +A::and + +A::begin + +A::BEGIN + +A::break + +A::class + +A::def + +A::defined + +A::do + +A::else + +A::elsif + +A::end + +A::END + +A::ensure + +A::false + +A::for + +A::if + +A::in + +A::next + +A::nil + +A::not + +A::or + +A::redo + +A::rescue + +A::retry + +A::return + +A::self + +A::super + +A::then + +A::true + +A::undef + +A::unless + +A::until + +A::when + +A::while + +A::yield + +A::__ENCODING__ + +A::__FILE__ + +A::__LINE__ + +A::< + +A::<=> + +A::<< + +A::- + +A::% + +A::%i + +A::%w + +A::%x + +A::%I + +A::%W + +A::| + +A::+ + +A::/ + +A::* + +A::** + +A::~ + +A::_:: + +A::_.. + +A::__END__ diff --git a/test/yarp/fixtures/dash_heredocs.txt b/test/yarp/fixtures/dash_heredocs.txt new file mode 100644 index 0000000000..a05df93023 --- /dev/null +++ b/test/yarp/fixtures/dash_heredocs.txt @@ -0,0 +1,44 @@ +<<-EOF + a +EOF + +<<-FIRST + <<-SECOND + a +FIRST + b +SECOND + +<<-`EOF` + a +#{b} +EOF + +<<-EOF #comment + a +EOF + +<<-EOF + a + b + EOF + +<<-"EOF" + a +#{b} +EOF + +<<-EOF + a +#{b} +EOF + +%#abc# + +<<-EOF + a + b +EOF + +<<-'EOF' + a #{1} +EOF diff --git a/test/yarp/fixtures/defined.txt b/test/yarp/fixtures/defined.txt new file mode 100644 index 0000000000..9cf153a853 --- /dev/null +++ b/test/yarp/fixtures/defined.txt @@ -0,0 +1,7 @@ +defined? 1 and defined? 2 + +defined?(x %= 2) + +defined?(foo and bar) + +defined? 1 diff --git a/test/yarp/fixtures/dos_endings.txt b/test/yarp/fixtures/dos_endings.txt new file mode 100644 index 0000000000..c105522fa1 --- /dev/null +++ b/test/yarp/fixtures/dos_endings.txt @@ -0,0 +1,20 @@ +puts "hi"\
+ "there"
+
+%I{a\
+b}
+
+<<-E
+ 1 \
+ 2
+ 3
+E
+
+x = %
+
+
+
+a = foo(<<~EOF.chop)
+
+ baz
+ EOF
diff --git a/test/yarp/fixtures/embdoc_no_newline_at_end.txt b/test/yarp/fixtures/embdoc_no_newline_at_end.txt new file mode 100644 index 0000000000..7dc2e32d73 --- /dev/null +++ b/test/yarp/fixtures/embdoc_no_newline_at_end.txt @@ -0,0 +1,2 @@ +=begin +=end
\ No newline at end of file diff --git a/test/yarp/fixtures/for.txt b/test/yarp/fixtures/for.txt new file mode 100644 index 0000000000..b6eb2cb24f --- /dev/null +++ b/test/yarp/fixtures/for.txt @@ -0,0 +1,19 @@ +for i in 1..10 +i +end + +for i in 1..10; i; end + +for i,j in 1..10 +i +end + +for i,j,k in 1..10 +i +end + +for i in 1..10 do +i +end + +for i in 1..10; i; end diff --git a/test/yarp/fixtures/global_variables.txt b/test/yarp/fixtures/global_variables.txt new file mode 100644 index 0000000000..d2a631136f --- /dev/null +++ b/test/yarp/fixtures/global_variables.txt @@ -0,0 +1,89 @@ +$global_variable + +$_ + +$-w + +$LOAD_PATH + +$stdin + +$stdout + +$stderr + +$! + +$? + +$~ + +$& + +$` + +$' + +$+ + +$: + +$; + +$, + +$DEBUG + +$FILENAME + +$-0 + +$LOADED_FEATURES + +$VERBOSE + +$-K + +:$global_variable + +:$_ + +:$-w + +:$LOAD_PATH + +:$stdin + +:$stdout + +:$stderr + +:$! + +:$? + +:$~ + +:$& + +:$` + +:$' + +:$+ + +:$: + +:$; + +:$DEBUG + +:$FILENAME + +:$-0 + +:$LOADED_FEATURES + +:$VERBOSE + +:$-K diff --git a/test/yarp/fixtures/hashes.txt b/test/yarp/fixtures/hashes.txt new file mode 100644 index 0000000000..42c430e43e --- /dev/null +++ b/test/yarp/fixtures/hashes.txt @@ -0,0 +1,20 @@ +{} + +{ +} + +{ a => b, c => d } + +{ a => b, **c } + +{ + a: b, + c: d + + + + } + +{ a: b, c: d, **e, f: g } + +{ "a": !b? } diff --git a/test/yarp/fixtures/heredoc_with_trailing_newline.txt b/test/yarp/fixtures/heredoc_with_trailing_newline.txt new file mode 100644 index 0000000000..13771bf3ac --- /dev/null +++ b/test/yarp/fixtures/heredoc_with_trailing_newline.txt @@ -0,0 +1,2 @@ +<<-END +END
\ No newline at end of file diff --git a/test/yarp/fixtures/heredocs_nested.txt b/test/yarp/fixtures/heredocs_nested.txt new file mode 100644 index 0000000000..eef7206d69 --- /dev/null +++ b/test/yarp/fixtures/heredocs_nested.txt @@ -0,0 +1,9 @@ +<<~RUBY +pre +#{ +<<RUBY + hello +RUBY +} +post +RUBY diff --git a/test/yarp/fixtures/heredocs_with_ignored_newlines.txt b/test/yarp/fixtures/heredocs_with_ignored_newlines.txt new file mode 100644 index 0000000000..8e12546ec7 --- /dev/null +++ b/test/yarp/fixtures/heredocs_with_ignored_newlines.txt @@ -0,0 +1,14 @@ +<<-HERE\ +HERE + +<<~THERE\ + way over + <<HERE + not here + HERE + + <<~BUT\ + but + BUT + there +THERE diff --git a/test/yarp/fixtures/heredocs_with_ignored_newlines_and_non_empty.txt b/test/yarp/fixtures/heredocs_with_ignored_newlines_and_non_empty.txt new file mode 100644 index 0000000000..aeacbd8126 --- /dev/null +++ b/test/yarp/fixtures/heredocs_with_ignored_newlines_and_non_empty.txt @@ -0,0 +1,4 @@ +<<-EOE + some + heredocs +EOE
\ No newline at end of file diff --git a/test/yarp/fixtures/if.txt b/test/yarp/fixtures/if.txt new file mode 100644 index 0000000000..895d668094 --- /dev/null +++ b/test/yarp/fixtures/if.txt @@ -0,0 +1,31 @@ +if true; 1; end + +if true +1 else 2 end + +if true then true elsif false then false elsif nil then nil else self end + +1 if true + +break if true + +next if true + +return if true + +if exit_loop then break 42 end + +if foo +then bar +end + +a if b if c + +if true + a b: +else +end + +if type in 1 +elsif type in B +end diff --git a/test/yarp/fixtures/integer_operations.txt b/test/yarp/fixtures/integer_operations.txt new file mode 100644 index 0000000000..37163acf30 --- /dev/null +++ b/test/yarp/fixtures/integer_operations.txt @@ -0,0 +1,63 @@ +!1 + +~1 + +1 != 2 + +1 !~ 2 + +1 % 2 + +1 & 2 + +1 * 2 + +1**2 + +1 + 2 + +1 - 2 + +1 / 2 + +1/2/3 + +1 < 2 + +1 << 2 + +1 <= 2 + +1 <=> 2 + +1 == 2 + +1 === 2 + +1 =~ 2 + +1 > 2 + +1 >= 2 + +1 >> 2 + +1 ^ 2 + +1 | 2 + +1 && 2 + +1 and 2 + +1 * 2 ** 3 + +1 * 2 + 3 + +1 or 2 + +1 || 2 + +1 + 2 * 3 + +(1 + 1) diff --git a/test/yarp/fixtures/keyword_method_names.txt b/test/yarp/fixtures/keyword_method_names.txt new file mode 100644 index 0000000000..9154469441 --- /dev/null +++ b/test/yarp/fixtures/keyword_method_names.txt @@ -0,0 +1,29 @@ +def def +end + +def self.ensure +end + +private def foo + bar do + end +end + +def m(a, **nil) +end + +def __ENCODING__.a +end + +%{abc} + +%"abc" + +def __FILE__.a +end + +def __LINE__.a +end + +def nil::a +end diff --git a/test/yarp/fixtures/keywords.txt b/test/yarp/fixtures/keywords.txt new file mode 100644 index 0000000000..90cdfb41c7 --- /dev/null +++ b/test/yarp/fixtures/keywords.txt @@ -0,0 +1,11 @@ +redo + +retry + +self + +__ENCODING__ + +__FILE__ + +__LINE__ diff --git a/test/yarp/fixtures/lambda.txt b/test/yarp/fixtures/lambda.txt new file mode 100644 index 0000000000..1071810aa1 --- /dev/null +++ b/test/yarp/fixtures/lambda.txt @@ -0,0 +1,7 @@ +->( + foo +) {} + +->(x: "b#{a}") { } + +->(a: b * 3) {} diff --git a/test/yarp/fixtures/method_calls.txt b/test/yarp/fixtures/method_calls.txt new file mode 100644 index 0000000000..06ed1cb9cc --- /dev/null +++ b/test/yarp/fixtures/method_calls.txt @@ -0,0 +1,139 @@ +foo.bar %{baz} + +a.b(c, d) + +a.b() + +foo + .bar + &.baz + +a! + +a.() + +a.(1, 2, 3) + +a::b + +foo.bar = 1 + +a? + +a(&block) + +a(**kwargs) + +a.b.c + +a(b, c) + +a() + +a(*args) + +a b, c + +a.b c, d + +foo.foo, bar.bar = 1, 2 + +a&.b + +a&.() + +a&.b(c) + +a&.b() + +foo :a, :b if bar? or baz and qux + +foo(:a, + + :b +) + +foo(*rest) + +foo(:a, :h => [:x, :y], :a => :b, &:bar) + +hi 123, { :there => :friend, **{}, whatup: :dog } + +foo :a, b: true do |a, b| puts a end + +hi there: :friend + +hi :there => :friend, **{}, whatup: :dog + +hi(:there => :friend, **{}, whatup: :dog) + +foo({ a: true, b: false, }, &:block) + +hi :there => :friend + +foo(:a, +:b, +) + +foo( +:a, +b: :c, +) + +foo a: true, b: false, &:block + +some_func 1, kwarg: 2 + +Kernel.Integer(10) + +x.each { } + +foo.map { $& } + +A::B::C :foo + +A::B::C(:foo) + +A::B::C(:foo) { } + +foo("a": -1) + +foo bar: { baz: qux do end } + +foo bar: { **kw do end } + +foo "#{bar.map do "baz" end}" do end + +foo class Bar baz do end end + +foo module Bar baz do end end + +foo [baz do end] + +p begin 1.times do 1 end end + +foo :a, + if x + bar do |a| + a + end + end + +foo :a, + while x + bar do |a| + a + end + end, + until x + baz do + end + end + +{} + A {} + +{} + A { |a| a } + +A {} + A {} + +lst << A {} diff --git a/test/yarp/fixtures/methods.txt b/test/yarp/fixtures/methods.txt new file mode 100644 index 0000000000..de17645bb5 --- /dev/null +++ b/test/yarp/fixtures/methods.txt @@ -0,0 +1,165 @@ +def foo((bar, baz)) +end + +def foo((bar, baz), optional = 1, (bin, bag)) +end + + +def a; ensure; end + +def (b).a +end + +def (a)::b +end + +def false.a +end + +def a(...) +end + +def $var.a +end + +def a.b +end + +def @var.a +end + +def a b:; end + +%,abc, + +def a(b:) +end + +def a(**b) +end + +def a(**) +end + +a = 1; def a +end + +def a b, c, d +end + +def nil.a +end + +def a b:, c: 1 +end + +def a(b:, c: 1) +end + +def a(b: + 1, c:) +end + +%.abc. + +def a b = 1, c = 2 +end + +def a() +end + +def a b, c = 2 +end + +def a b +end + +def a; rescue; else; ensure; end + +def a *b +end + +def a(*) +end + +def a +b = 1 +end + +def self.a +end + +def true.a +end + +def a +end + +def hi +return :hi if true +:bye +end + +def foo = 1 +def bar = 2 + +def foo(bar) = 123 + +def foo = 123 + +def a(*); b(*); end + +def a(...); b(...); end + +def a(...); b(1, 2, ...); end + +def (c = b).a +end + +def a &b +end + +def a(&) +end + +def @@var.a +end + +def (a = b).C +end + +def self.Array_function; end + +Const = 1; def Const.a +end + +def a(...); "foo#{b(...)}"; end + +def foo + {}.merge **bar, **baz, **qux +end + +def bar(a: (1...10)) +end + +def bar(a: (...10)) +end + +def bar(a: (1...)) +end + +def bar(a = (1...10)) +end + +def bar(a = (...10)) +end + +def bar(a = (1...)) +end + +def method(a) + item >> a {} +end + +def foo(_a, _a, b, c) +end diff --git a/test/yarp/fixtures/modules.txt b/test/yarp/fixtures/modules.txt new file mode 100644 index 0000000000..76bd9bea43 --- /dev/null +++ b/test/yarp/fixtures/modules.txt @@ -0,0 +1,18 @@ +module A a = 1 end + +%Q{aaa #{bbb} ccc} + +module m::M +end + +module A + x = 1; rescue; end + +module ::A +end + +module A[]::B +end + +module A[1]::B +end diff --git a/test/yarp/fixtures/next.txt b/test/yarp/fixtures/next.txt new file mode 100644 index 0000000000..476f17ffe3 --- /dev/null +++ b/test/yarp/fixtures/next.txt @@ -0,0 +1,24 @@ +next + +next (1), (2), (3) + +next 1 + +next 1, 2, +3 + +next 1, 2, 3 + +next [1, 2, 3] + +next( + 1 + 2 +) + +next +1 + +next() + +next(1) diff --git a/test/yarp/fixtures/nils.txt b/test/yarp/fixtures/nils.txt new file mode 100644 index 0000000000..8084db2534 --- /dev/null +++ b/test/yarp/fixtures/nils.txt @@ -0,0 +1,13 @@ +nil + +() + +( +; +; +) + +END { 1 } + +BEGIN { 1 } + diff --git a/test/yarp/fixtures/non_alphanumeric_methods.txt b/test/yarp/fixtures/non_alphanumeric_methods.txt new file mode 100644 index 0000000000..1da3fd852b --- /dev/null +++ b/test/yarp/fixtures/non_alphanumeric_methods.txt @@ -0,0 +1,105 @@ +def ! +end + +def != +end + +def !~ +end + +def % +end + +def self.+ +end + +def & +end + +def * +end + +def ** +end + +%|abc| + +def + **b +end + +def +() +end + +def + b +end + +def self.+ +end + +def + +end + +def +@ +end + +def - +end + +def a.-;end + +def -@ +end + +def / +end + +def < +end + +def << +end + +def <= +end + +def <=> +end + +def == +end + +def === +end + +def =~ +end + +def > +end + +def >= +end + +def >> +end + +def [] +end + +def []= +end + +def ^ +end + +def ` +end + +def self.` +end + +def | +end + +def ~ +end diff --git a/test/yarp/fixtures/not.txt b/test/yarp/fixtures/not.txt new file mode 100644 index 0000000000..eeb976c410 --- /dev/null +++ b/test/yarp/fixtures/not.txt @@ -0,0 +1,20 @@ +not foo and not bar + +not(foo and bar) + +not foo + +not foo and not + bar + + +not foo and + not + bar + + +not foo and + not + + + bar diff --git a/test/yarp/fixtures/numbers.txt b/test/yarp/fixtures/numbers.txt new file mode 100644 index 0000000000..3c8bf07805 --- /dev/null +++ b/test/yarp/fixtures/numbers.txt @@ -0,0 +1,63 @@ +0 + +1 + +1.0 + +2 + +0b0 + +0b1 + +0b10 + +0d0 + +0d1 + +0d2 + +00 + +01 + +02 + +0o0 + +0o1 + +0o2 + +0x0 + +0x1 + +0x2 + +1i + +1r + +-1 + +1ri + +1.2ri + +-1ri + +-1.2ri + +0o1r + +0o1i + +0o1ri + +0d1r + +0d1i + +0b1ri diff --git a/test/yarp/fixtures/patterns.txt b/test/yarp/fixtures/patterns.txt new file mode 100644 index 0000000000..c779b85cea --- /dev/null +++ b/test/yarp/fixtures/patterns.txt @@ -0,0 +1,191 @@ +foo => bar +foo => 1 +foo => 1.0 +foo => 1i +foo => 1r +foo => :foo +foo => %s[foo] +foo => :"foo" +foo => /foo/ +foo => `foo` +foo => %x[foo] +foo => %i[foo] +foo => %I[foo] +foo => %w[foo] +foo => %W[foo] +foo => %q[foo] +foo => %Q[foo] +foo => "foo" +foo => nil +foo => self +foo => true +foo => false +foo => __FILE__ +foo => __LINE__ +foo => __ENCODING__ +foo => -> { bar } + +foo => 1 .. 1 +foo => 1.0 .. 1.0 +foo => 1i .. 1i +foo => 1r .. 1r +foo => :foo .. :foo +foo => %s[foo] .. %s[foo] +foo => :"foo" .. :"foo" +foo => /foo/ .. /foo/ +foo => `foo` .. `foo` +foo => %x[foo] .. %x[foo] +foo => %i[foo] .. %i[foo] +foo => %I[foo] .. %I[foo] +foo => %w[foo] .. %w[foo] +foo => %W[foo] .. %W[foo] +foo => %q[foo] .. %q[foo] +foo => %Q[foo] .. %Q[foo] +foo => "foo" .. "foo" +foo => nil .. nil +foo => self .. self +foo => true .. true +foo => false .. false +foo => __FILE__ .. __FILE__ +foo => __LINE__ .. __LINE__ +foo => __ENCODING__ .. __ENCODING__ +foo => -> { bar } .. -> { bar } + +foo => ^bar +foo => ^@bar +foo => ^@@bar +foo => ^$bar + +foo => ^(1) +foo => ^(nil) +foo => ^("bar" + "baz") + +foo => Foo +foo => Foo::Bar::Baz +foo => ::Foo +foo => ::Foo::Bar::Baz + +foo => Foo() +foo => Foo(1) +foo => Foo(1, 2, 3) +foo => Foo(bar) +foo => Foo(*bar, baz) +foo => Foo(bar, *baz) +foo => Foo(*bar, baz, *qux) + +foo => Foo[] +foo => Foo[1] +foo => Foo[1, 2, 3] +foo => Foo[bar] +foo => Foo[*bar, baz] +foo => Foo[bar, *baz] +foo => Foo[*bar, baz, *qux] + +foo => *bar +foo => *bar, baz, qux +foo => bar, *baz, qux +foo => bar, baz, *qux +foo => *bar, baz, *qux + +foo => [] +foo => [[[[[]]]]] + +foo => [*bar] +foo => [*bar, baz, qux] +foo => [bar, *baz, qux] +foo => [bar, baz, *qux] +foo => [*bar, baz, *qux] + +foo in bar +foo in 1 +foo in 1.0 +foo in 1i +foo in 1r +foo in :foo +foo in %s[foo] +foo in :"foo" +foo in /foo/ +foo in `foo` +foo in %x[foo] +foo in %i[foo] +foo in %I[foo] +foo in %w[foo] +foo in %W[foo] +foo in %q[foo] +foo in %Q[foo] +foo in "foo" +foo in nil +foo in self +foo in true +foo in false +foo in __FILE__ +foo in __LINE__ +foo in __ENCODING__ +foo in -> { bar } + +case foo; in bar then end +case foo; in 1 then end +case foo; in 1.0 then end +case foo; in 1i then end +case foo; in 1r then end +case foo; in :foo then end +case foo; in %s[foo] then end +case foo; in :"foo" then end +case foo; in /foo/ then end +case foo; in `foo` then end +case foo; in %x[foo] then end +case foo; in %i[foo] then end +case foo; in %I[foo] then end +case foo; in %w[foo] then end +case foo; in %W[foo] then end +case foo; in %q[foo] then end +case foo; in %Q[foo] then end +case foo; in "foo" then end +case foo; in nil then end +case foo; in self then end +case foo; in true then end +case foo; in false then end +case foo; in __FILE__ then end +case foo; in __LINE__ then end +case foo; in __ENCODING__ then end +case foo; in -> { bar } then end + +case foo; in bar if baz then end +case foo; in 1 if baz then end +case foo; in 1.0 if baz then end +case foo; in 1i if baz then end +case foo; in 1r if baz then end +case foo; in :foo if baz then end +case foo; in %s[foo] if baz then end +case foo; in :"foo" if baz then end +case foo; in /foo/ if baz then end +case foo; in `foo` if baz then end +case foo; in %x[foo] if baz then end +case foo; in %i[foo] if baz then end +case foo; in %I[foo] if baz then end +case foo; in %w[foo] if baz then end +case foo; in %W[foo] if baz then end +case foo; in %q[foo] if baz then end +case foo; in %Q[foo] if baz then end +case foo; in "foo" if baz then end +case foo; in nil if baz then end +case foo; in self if baz then end +case foo; in true if baz then end +case foo; in false if baz then end +case foo; in __FILE__ if baz then end +case foo; in __LINE__ if baz then end +case foo; in __ENCODING__ if baz then end +case foo; in -> { bar } if baz then end + +if a in [] +end + +a => [ + b +] + +foo in A[ + bar: B[ + value: a + ] +] diff --git a/test/yarp/fixtures/procs.txt b/test/yarp/fixtures/procs.txt new file mode 100644 index 0000000000..7ffb11e78a --- /dev/null +++ b/test/yarp/fixtures/procs.txt @@ -0,0 +1,27 @@ +-> (a; b, c, d) { b } + +-> do +ensure +end + +-> do +rescue +else +ensure +end + +-> { foo } + +-> do; foo; end + +-> a, b = 1, c:, d:, &e { a } + +-> (a, b = 1, *c, d:, e:, **f, &g) { a } + +-> (a, b = 1, *c, d:, e:, **f, &g) do + a +end + +-> (a) { -> b { a * b } } + +-> ((a, b), *c) { } diff --git a/test/yarp/fixtures/range_begin_open_exclusive.txt b/test/yarp/fixtures/range_begin_open_exclusive.txt new file mode 100644 index 0000000000..3b12672b4f --- /dev/null +++ b/test/yarp/fixtures/range_begin_open_exclusive.txt @@ -0,0 +1 @@ +...2 diff --git a/test/yarp/fixtures/range_begin_open_inclusive.txt b/test/yarp/fixtures/range_begin_open_inclusive.txt new file mode 100644 index 0000000000..052f45900b --- /dev/null +++ b/test/yarp/fixtures/range_begin_open_inclusive.txt @@ -0,0 +1 @@ +..2 diff --git a/test/yarp/fixtures/range_end_open_exclusive.txt b/test/yarp/fixtures/range_end_open_exclusive.txt new file mode 100644 index 0000000000..2ffd68afdb --- /dev/null +++ b/test/yarp/fixtures/range_end_open_exclusive.txt @@ -0,0 +1 @@ +2... diff --git a/test/yarp/fixtures/range_end_open_inclusive.txt b/test/yarp/fixtures/range_end_open_inclusive.txt new file mode 100644 index 0000000000..48445391f6 --- /dev/null +++ b/test/yarp/fixtures/range_end_open_inclusive.txt @@ -0,0 +1 @@ +2.. diff --git a/test/yarp/fixtures/ranges.txt b/test/yarp/fixtures/ranges.txt new file mode 100644 index 0000000000..55c0ade965 --- /dev/null +++ b/test/yarp/fixtures/ranges.txt @@ -0,0 +1,17 @@ +(...2) + +(..2) + +1...2 + +foo[...2] + +{ foo: ...bar } + +(1...) + +1..2 + +{ foo: ..bar } + +(1..) diff --git a/test/yarp/fixtures/regex.txt b/test/yarp/fixtures/regex.txt new file mode 100644 index 0000000000..fe7b848b1b --- /dev/null +++ b/test/yarp/fixtures/regex.txt @@ -0,0 +1,28 @@ +foo /bar/ + +%r{abc}i + +/a\b/ + +/aaa #$bbb/ + +/aaa #{bbb} ccc/ + +[/(?<foo>bar)/ =~ baz, foo] + +/abc/i + +%r/[a-z$._?][\w$.?#@~]*:/i + +%r/([a-z$._?][\w$.?#@~]*)(\s+)(equ)/i + +%r/[a-z$._?][\w$.?#@~]*/i + +%r( +(?:[\w#$%_']|\(\)|\(,\)|\[\]|[0-9])* + (?:[\w#$%_']+) +) + +/(?#\))/ =~ "hi" + +%r#pound# diff --git a/test/yarp/fixtures/rescue.txt b/test/yarp/fixtures/rescue.txt new file mode 100644 index 0000000000..0d26fd2523 --- /dev/null +++ b/test/yarp/fixtures/rescue.txt @@ -0,0 +1,31 @@ +foo rescue nil + +foo rescue +nil + +break rescue nil + +next rescue nil + +return rescue nil + +foo rescue nil || 1 + +foo rescue nil ? 1 : 2 + +begin; a; rescue *b; end + +foo do |x| + bar(y) rescue ArgumentError fail "baz" +end + +if a = foo rescue nil + bar +end + +def some_method = other_method 42 rescue nil + +def a + a b: +rescue +end diff --git a/test/yarp/fixtures/return.txt b/test/yarp/fixtures/return.txt new file mode 100644 index 0000000000..a8b5b95fab --- /dev/null +++ b/test/yarp/fixtures/return.txt @@ -0,0 +1,24 @@ +return + +return (1), (2), (3) + +return *1 + +return 1 + +return 1, 2, +3 + +return 1, 2, 3 + +return [1, 2, 3] + +return( + 1 + 2 +) + +return() + +return(1) + diff --git a/test/yarp/fixtures/seattlerb/BEGIN.txt b/test/yarp/fixtures/seattlerb/BEGIN.txt new file mode 100644 index 0000000000..bed5755901 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/BEGIN.txt @@ -0,0 +1 @@ +BEGIN { 42 } diff --git a/test/yarp/fixtures/seattlerb/README.rdoc b/test/yarp/fixtures/seattlerb/README.rdoc new file mode 100644 index 0000000000..649e4e4c2f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/README.rdoc @@ -0,0 +1,113 @@ += ruby_parser + +home :: https://github.com/seattlerb/ruby_parser +bugs :: https://github.com/seattlerb/ruby_parser/issues +rdoc :: http://docs.seattlerb.org/ruby_parser + +== DESCRIPTION: + +ruby_parser (RP) is a ruby parser written in pure ruby (utilizing +racc--which does by default use a C extension). It outputs +s-expressions which can be manipulated and converted back to ruby via +the ruby2ruby gem. + +As an example: + + def conditional1 arg1 + return 1 if arg1 == 0 + return 0 + end + +becomes: + + s(:defn, :conditional1, s(:args, :arg1), + s(:if, + s(:call, s(:lvar, :arg1), :==, s(:lit, 0)), + s(:return, s(:lit, 1)), + nil), + s(:return, s(:lit, 0))) + +Tested against 801,039 files from the latest of all rubygems (as of 2013-05): + +* 1.8 parser is at 99.9739% accuracy, 3.651 sigma +* 1.9 parser is at 99.9940% accuracy, 4.013 sigma +* 2.0 parser is at 99.9939% accuracy, 4.008 sigma +* 2.6 parser is at 99.9972% accuracy, 4.191 sigma +* 3.0 parser has a 100% parse rate. + * Tested against 2,672,412 unique ruby files across 167k gems. + * As do all the others now, basically. + +== FEATURES/PROBLEMS: + +* Pure ruby, no compiles. +* Includes preceding comment data for defn/defs/class/module nodes! +* Incredibly simple interface. +* Output is 100% equivalent to ParseTree. + * Can utilize PT's SexpProcessor and UnifiedRuby for language processing. +* Known Issue: Speed is now pretty good, but can always improve: + * RP parses a corpus of 3702 files in 125s (avg 108 Kb/s) + * MRI+PT parsed the same in 67.38s (avg 200.89 Kb/s) +* Known Issue: Code is much better, but still has a long way to go. +* Known Issue: Totally awesome. +* Known Issue: line number values can be slightly off. Parsing LR sucks. + +== SYNOPSIS: + + RubyParser.new.parse "1+1" + # => s(:call, s(:lit, 1), :+, s(:lit, 1)) + +You can also use Ruby19Parser, Ruby18Parser, or RubyParser.for_current_ruby: + + RubyParser.for_current_ruby.parse "1+1" + # => s(:call, s(:lit, 1), :+, s(:lit, 1)) + +== DEVELOPER NOTES: + +To add a new version: + +* New parser should be generated from lib/ruby[3]_parser.yy. +* Extend lib/ruby[3]_parser.yy with new class name. +* Add new version number to V2/V3 in Rakefile for rule creation. +* Add new `ruby_parse "x.y.z"` line to Rakefile for rake compare (line ~300). +* Require generated parser in lib/ruby_parser.rb. +* Add new V## = ::Ruby##Parser; end to ruby_parser.rb (bottom of file). +* Add empty TestRubyParserShared##Plus module and TestRubyParserV## to test/test_ruby_parser.rb. +* Extend Manifest.txt with generated file names. +* Add new version number to sexp_processor's pt_testcase.rb in all_versions + +Until all of these are done, you won't have a clean test run. + +== REQUIREMENTS: + +* ruby. woot. +* sexp_processor for Sexp and SexpProcessor classes, and testing. +* racc full package for parser development (compiling .y to .rb). + +== INSTALL: + +* sudo gem install ruby_parser + +== LICENSE: + +(The MIT License) + +Copyright (c) Ryan Davis, seattle.rb + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/test/yarp/fixtures/seattlerb/__ENCODING__.txt b/test/yarp/fixtures/seattlerb/__ENCODING__.txt new file mode 100644 index 0000000000..d6debf2f92 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/__ENCODING__.txt @@ -0,0 +1 @@ +__ENCODING__ diff --git a/test/yarp/fixtures/seattlerb/alias_gvar_backref.txt b/test/yarp/fixtures/seattlerb/alias_gvar_backref.txt new file mode 100644 index 0000000000..016bd94fe0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/alias_gvar_backref.txt @@ -0,0 +1 @@ +alias $MATCH $& diff --git a/test/yarp/fixtures/seattlerb/alias_resword.txt b/test/yarp/fixtures/seattlerb/alias_resword.txt new file mode 100644 index 0000000000..63e782614b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/alias_resword.txt @@ -0,0 +1 @@ +alias in out diff --git a/test/yarp/fixtures/seattlerb/and_multi.txt b/test/yarp/fixtures/seattlerb/and_multi.txt new file mode 100644 index 0000000000..8902086cac --- /dev/null +++ b/test/yarp/fixtures/seattlerb/and_multi.txt @@ -0,0 +1,3 @@ +true and +not false and +true diff --git a/test/yarp/fixtures/seattlerb/aref_args_assocs.txt b/test/yarp/fixtures/seattlerb/aref_args_assocs.txt new file mode 100644 index 0000000000..3244eebafc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/aref_args_assocs.txt @@ -0,0 +1 @@ +[1 => 2] diff --git a/test/yarp/fixtures/seattlerb/aref_args_lit_assocs.txt b/test/yarp/fixtures/seattlerb/aref_args_lit_assocs.txt new file mode 100644 index 0000000000..0b6ffa7e2c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/aref_args_lit_assocs.txt @@ -0,0 +1 @@ +[1, 2 => 3] diff --git a/test/yarp/fixtures/seattlerb/args_kw_block.txt b/test/yarp/fixtures/seattlerb/args_kw_block.txt new file mode 100644 index 0000000000..cb6ab39852 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/args_kw_block.txt @@ -0,0 +1 @@ +def f(a: 1, &b); end diff --git a/test/yarp/fixtures/seattlerb/array_line_breaks.txt b/test/yarp/fixtures/seattlerb/array_line_breaks.txt new file mode 100644 index 0000000000..be9f2d9cb8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/array_line_breaks.txt @@ -0,0 +1,4 @@ +[ +'a', +'b'] +1 diff --git a/test/yarp/fixtures/seattlerb/array_lits_trailing_calls.txt b/test/yarp/fixtures/seattlerb/array_lits_trailing_calls.txt new file mode 100644 index 0000000000..868384a407 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/array_lits_trailing_calls.txt @@ -0,0 +1,3 @@ +%w[].b + +[].b diff --git a/test/yarp/fixtures/seattlerb/assoc__bare.txt b/test/yarp/fixtures/seattlerb/assoc__bare.txt new file mode 100644 index 0000000000..96c2940f31 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/assoc__bare.txt @@ -0,0 +1 @@ +{ y: } diff --git a/test/yarp/fixtures/seattlerb/assoc_label.txt b/test/yarp/fixtures/seattlerb/assoc_label.txt new file mode 100644 index 0000000000..372dc75031 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/assoc_label.txt @@ -0,0 +1 @@ +a(b:1) diff --git a/test/yarp/fixtures/seattlerb/attr_asgn_colon_id.txt b/test/yarp/fixtures/seattlerb/attr_asgn_colon_id.txt new file mode 100644 index 0000000000..f63c2f5dcb --- /dev/null +++ b/test/yarp/fixtures/seattlerb/attr_asgn_colon_id.txt @@ -0,0 +1 @@ +A::b = 1 diff --git a/test/yarp/fixtures/seattlerb/attrasgn_array_arg.txt b/test/yarp/fixtures/seattlerb/attrasgn_array_arg.txt new file mode 100644 index 0000000000..db9e2db063 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/attrasgn_array_arg.txt @@ -0,0 +1 @@ +a[[1, 2]] = 3 diff --git a/test/yarp/fixtures/seattlerb/attrasgn_array_lhs.txt b/test/yarp/fixtures/seattlerb/attrasgn_array_lhs.txt new file mode 100644 index 0000000000..0b8e31632d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/attrasgn_array_lhs.txt @@ -0,0 +1 @@ +[1, 2, 3, 4][from .. to] = ["a", "b", "c"] diff --git a/test/yarp/fixtures/seattlerb/attrasgn_primary_dot_constant.txt b/test/yarp/fixtures/seattlerb/attrasgn_primary_dot_constant.txt new file mode 100644 index 0000000000..380a718963 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/attrasgn_primary_dot_constant.txt @@ -0,0 +1 @@ +a.B = 1 diff --git a/test/yarp/fixtures/seattlerb/backticks_interpolation_line.txt b/test/yarp/fixtures/seattlerb/backticks_interpolation_line.txt new file mode 100644 index 0000000000..b3ba31c72a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/backticks_interpolation_line.txt @@ -0,0 +1 @@ +x `#{y}` diff --git a/test/yarp/fixtures/seattlerb/bang_eq.txt b/test/yarp/fixtures/seattlerb/bang_eq.txt new file mode 100644 index 0000000000..0283460e46 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bang_eq.txt @@ -0,0 +1 @@ +1 != 2 diff --git a/test/yarp/fixtures/seattlerb/bdot2.txt b/test/yarp/fixtures/seattlerb/bdot2.txt new file mode 100644 index 0000000000..4fb2692299 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bdot2.txt @@ -0,0 +1,3 @@ +..10 +; ..a +; c diff --git a/test/yarp/fixtures/seattlerb/bdot3.txt b/test/yarp/fixtures/seattlerb/bdot3.txt new file mode 100644 index 0000000000..8079cf9872 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bdot3.txt @@ -0,0 +1,3 @@ +...10 +; ...a +; c diff --git a/test/yarp/fixtures/seattlerb/begin_ensure_no_bodies.txt b/test/yarp/fixtures/seattlerb/begin_ensure_no_bodies.txt new file mode 100644 index 0000000000..51dde02ea3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/begin_ensure_no_bodies.txt @@ -0,0 +1,3 @@ +begin +ensure +end diff --git a/test/yarp/fixtures/seattlerb/begin_rescue_else_ensure_bodies.txt b/test/yarp/fixtures/seattlerb/begin_rescue_else_ensure_bodies.txt new file mode 100644 index 0000000000..ae6e2c3636 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/begin_rescue_else_ensure_bodies.txt @@ -0,0 +1,9 @@ +begin + 1 +rescue + 2 +else + 3 +ensure + 4 +end diff --git a/test/yarp/fixtures/seattlerb/begin_rescue_else_ensure_no_bodies.txt b/test/yarp/fixtures/seattlerb/begin_rescue_else_ensure_no_bodies.txt new file mode 100644 index 0000000000..456d9a5d6e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/begin_rescue_else_ensure_no_bodies.txt @@ -0,0 +1,9 @@ +begin + +rescue + +else + +ensure + +end diff --git a/test/yarp/fixtures/seattlerb/begin_rescue_ensure_no_bodies.txt b/test/yarp/fixtures/seattlerb/begin_rescue_ensure_no_bodies.txt new file mode 100644 index 0000000000..896e3c030a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/begin_rescue_ensure_no_bodies.txt @@ -0,0 +1,4 @@ +begin +rescue +ensure +end diff --git a/test/yarp/fixtures/seattlerb/block_arg__bare.txt b/test/yarp/fixtures/seattlerb/block_arg__bare.txt new file mode 100644 index 0000000000..6454b00345 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg__bare.txt @@ -0,0 +1 @@ +def x(&); end diff --git a/test/yarp/fixtures/seattlerb/block_arg_kwsplat.txt b/test/yarp/fixtures/seattlerb/block_arg_kwsplat.txt new file mode 100644 index 0000000000..a9c255cc66 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg_kwsplat.txt @@ -0,0 +1 @@ +a { |**b| } diff --git a/test/yarp/fixtures/seattlerb/block_arg_opt_arg_block.txt b/test/yarp/fixtures/seattlerb/block_arg_opt_arg_block.txt new file mode 100644 index 0000000000..14cb02c68e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg_opt_arg_block.txt @@ -0,0 +1 @@ +a { |b, c=1, d, &e| } diff --git a/test/yarp/fixtures/seattlerb/block_arg_opt_splat.txt b/test/yarp/fixtures/seattlerb/block_arg_opt_splat.txt new file mode 100644 index 0000000000..a077ae1f34 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg_opt_splat.txt @@ -0,0 +1 @@ +a { |b, c = 1, *d| } diff --git a/test/yarp/fixtures/seattlerb/block_arg_opt_splat_arg_block_omfg.txt b/test/yarp/fixtures/seattlerb/block_arg_opt_splat_arg_block_omfg.txt new file mode 100644 index 0000000000..5016a7c6b9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg_opt_splat_arg_block_omfg.txt @@ -0,0 +1 @@ +a { |b, c=1, *d, e, &f| } diff --git a/test/yarp/fixtures/seattlerb/block_arg_optional.txt b/test/yarp/fixtures/seattlerb/block_arg_optional.txt new file mode 100644 index 0000000000..966afc5640 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg_optional.txt @@ -0,0 +1 @@ +a { |b = 1| } diff --git a/test/yarp/fixtures/seattlerb/block_arg_scope.txt b/test/yarp/fixtures/seattlerb/block_arg_scope.txt new file mode 100644 index 0000000000..2362e08559 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg_scope.txt @@ -0,0 +1 @@ +a { |b; c| } diff --git a/test/yarp/fixtures/seattlerb/block_arg_scope2.txt b/test/yarp/fixtures/seattlerb/block_arg_scope2.txt new file mode 100644 index 0000000000..f7222dc7b1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg_scope2.txt @@ -0,0 +1 @@ +a {|b; c, d| } diff --git a/test/yarp/fixtures/seattlerb/block_arg_splat_arg.txt b/test/yarp/fixtures/seattlerb/block_arg_splat_arg.txt new file mode 100644 index 0000000000..d7c31aae6b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_arg_splat_arg.txt @@ -0,0 +1 @@ +a { |b, *c, d| } diff --git a/test/yarp/fixtures/seattlerb/block_args_kwargs.txt b/test/yarp/fixtures/seattlerb/block_args_kwargs.txt new file mode 100644 index 0000000000..467b577a7e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_args_kwargs.txt @@ -0,0 +1 @@ +f { |**kwargs| kwargs } diff --git a/test/yarp/fixtures/seattlerb/block_args_no_kwargs.txt b/test/yarp/fixtures/seattlerb/block_args_no_kwargs.txt new file mode 100644 index 0000000000..5c9bfa3a62 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_args_no_kwargs.txt @@ -0,0 +1 @@ +f { |**nil| } diff --git a/test/yarp/fixtures/seattlerb/block_args_opt1.txt b/test/yarp/fixtures/seattlerb/block_args_opt1.txt new file mode 100644 index 0000000000..372689e36a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_args_opt1.txt @@ -0,0 +1 @@ +f { |a, b = 42| [a, b] } diff --git a/test/yarp/fixtures/seattlerb/block_args_opt2.txt b/test/yarp/fixtures/seattlerb/block_args_opt2.txt new file mode 100644 index 0000000000..10d0746646 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_args_opt2.txt @@ -0,0 +1 @@ +a { | b=1, c=2 | } diff --git a/test/yarp/fixtures/seattlerb/block_args_opt2_2.txt b/test/yarp/fixtures/seattlerb/block_args_opt2_2.txt new file mode 100644 index 0000000000..563a9bf915 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_args_opt2_2.txt @@ -0,0 +1 @@ +f { |a, b = 42, c = 24| [a, b, c] } diff --git a/test/yarp/fixtures/seattlerb/block_args_opt3.txt b/test/yarp/fixtures/seattlerb/block_args_opt3.txt new file mode 100644 index 0000000000..bb5a7c8458 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_args_opt3.txt @@ -0,0 +1 @@ +f { |a, b = 42, c = 24, &d| [a, b, c, d] } diff --git a/test/yarp/fixtures/seattlerb/block_break.txt b/test/yarp/fixtures/seattlerb/block_break.txt new file mode 100644 index 0000000000..35eabee187 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_break.txt @@ -0,0 +1 @@ +break foo arg do |bar| end diff --git a/test/yarp/fixtures/seattlerb/block_call_defn_call_block_call.txt b/test/yarp/fixtures/seattlerb/block_call_defn_call_block_call.txt new file mode 100644 index 0000000000..ff1b3a4c9f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_call_defn_call_block_call.txt @@ -0,0 +1,4 @@ +a def b(c) + d + end + e.f do end diff --git a/test/yarp/fixtures/seattlerb/block_call_dot_op2_brace_block.txt b/test/yarp/fixtures/seattlerb/block_call_dot_op2_brace_block.txt new file mode 100644 index 0000000000..63da9ee7af --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_call_dot_op2_brace_block.txt @@ -0,0 +1 @@ +a.b c() do d end.e do |f| g end diff --git a/test/yarp/fixtures/seattlerb/block_call_dot_op2_cmd_args_do_block.txt b/test/yarp/fixtures/seattlerb/block_call_dot_op2_cmd_args_do_block.txt new file mode 100644 index 0000000000..24e7d0f1f1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_call_dot_op2_cmd_args_do_block.txt @@ -0,0 +1 @@ +a.b c() do d end.e f do |g| h end diff --git a/test/yarp/fixtures/seattlerb/block_call_operation_colon.txt b/test/yarp/fixtures/seattlerb/block_call_operation_colon.txt new file mode 100644 index 0000000000..593b9e1bc0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_call_operation_colon.txt @@ -0,0 +1 @@ +a.b c do end::d diff --git a/test/yarp/fixtures/seattlerb/block_call_operation_dot.txt b/test/yarp/fixtures/seattlerb/block_call_operation_dot.txt new file mode 100644 index 0000000000..20b8e4fcb8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_call_operation_dot.txt @@ -0,0 +1 @@ +a.b c do end.d diff --git a/test/yarp/fixtures/seattlerb/block_call_paren_call_block_call.txt b/test/yarp/fixtures/seattlerb/block_call_paren_call_block_call.txt new file mode 100644 index 0000000000..7f8be95100 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_call_paren_call_block_call.txt @@ -0,0 +1,2 @@ +a (b) +c.d do end diff --git a/test/yarp/fixtures/seattlerb/block_command_operation_colon.txt b/test/yarp/fixtures/seattlerb/block_command_operation_colon.txt new file mode 100644 index 0000000000..db221ad496 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_command_operation_colon.txt @@ -0,0 +1 @@ +a :b do end::c :d diff --git a/test/yarp/fixtures/seattlerb/block_command_operation_dot.txt b/test/yarp/fixtures/seattlerb/block_command_operation_dot.txt new file mode 100644 index 0000000000..56b71677e8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_command_operation_dot.txt @@ -0,0 +1 @@ +a :b do end.c :d diff --git a/test/yarp/fixtures/seattlerb/block_decomp_anon_splat_arg.txt b/test/yarp/fixtures/seattlerb/block_decomp_anon_splat_arg.txt new file mode 100644 index 0000000000..96f5d5d2ec --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_decomp_anon_splat_arg.txt @@ -0,0 +1 @@ +f { |(*, a)| } diff --git a/test/yarp/fixtures/seattlerb/block_decomp_arg_splat.txt b/test/yarp/fixtures/seattlerb/block_decomp_arg_splat.txt new file mode 100644 index 0000000000..f8db3874de --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_decomp_arg_splat.txt @@ -0,0 +1 @@ +a { |(b, *)| } diff --git a/test/yarp/fixtures/seattlerb/block_decomp_arg_splat_arg.txt b/test/yarp/fixtures/seattlerb/block_decomp_arg_splat_arg.txt new file mode 100644 index 0000000000..e64f4e8c3d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_decomp_arg_splat_arg.txt @@ -0,0 +1 @@ +f { |(a, *b, c)| } diff --git a/test/yarp/fixtures/seattlerb/block_decomp_splat.txt b/test/yarp/fixtures/seattlerb/block_decomp_splat.txt new file mode 100644 index 0000000000..970f00a626 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_decomp_splat.txt @@ -0,0 +1 @@ +f { |(*a)| } diff --git a/test/yarp/fixtures/seattlerb/block_kw.txt b/test/yarp/fixtures/seattlerb/block_kw.txt new file mode 100644 index 0000000000..bacfd32e80 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_kw.txt @@ -0,0 +1 @@ +blah { |k:42| } diff --git a/test/yarp/fixtures/seattlerb/block_kw__required.txt b/test/yarp/fixtures/seattlerb/block_kw__required.txt new file mode 100644 index 0000000000..b84ab97037 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_kw__required.txt @@ -0,0 +1 @@ +blah do |k:| end diff --git a/test/yarp/fixtures/seattlerb/block_kwarg_lvar.txt b/test/yarp/fixtures/seattlerb/block_kwarg_lvar.txt new file mode 100644 index 0000000000..390b9195e0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_kwarg_lvar.txt @@ -0,0 +1 @@ +bl { |kw: :val| kw } diff --git a/test/yarp/fixtures/seattlerb/block_kwarg_lvar_multiple.txt b/test/yarp/fixtures/seattlerb/block_kwarg_lvar_multiple.txt new file mode 100644 index 0000000000..df3e4afde8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_kwarg_lvar_multiple.txt @@ -0,0 +1 @@ +bl { |kw: :val, kw2: :val2 | kw } diff --git a/test/yarp/fixtures/seattlerb/block_next.txt b/test/yarp/fixtures/seattlerb/block_next.txt new file mode 100644 index 0000000000..760fcbf809 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_next.txt @@ -0,0 +1 @@ +next foo arg do |bar| end diff --git a/test/yarp/fixtures/seattlerb/block_opt_arg.txt b/test/yarp/fixtures/seattlerb/block_opt_arg.txt new file mode 100644 index 0000000000..5e312fdf41 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_opt_arg.txt @@ -0,0 +1 @@ +a { |b=1, c| } diff --git a/test/yarp/fixtures/seattlerb/block_opt_splat.txt b/test/yarp/fixtures/seattlerb/block_opt_splat.txt new file mode 100644 index 0000000000..772a3fc412 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_opt_splat.txt @@ -0,0 +1 @@ +a { |b = 1, *c| } diff --git a/test/yarp/fixtures/seattlerb/block_opt_splat_arg_block_omfg.txt b/test/yarp/fixtures/seattlerb/block_opt_splat_arg_block_omfg.txt new file mode 100644 index 0000000000..76466f9d54 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_opt_splat_arg_block_omfg.txt @@ -0,0 +1 @@ +a { |b=1, *c, d, &e| } diff --git a/test/yarp/fixtures/seattlerb/block_optarg.txt b/test/yarp/fixtures/seattlerb/block_optarg.txt new file mode 100644 index 0000000000..a471554da1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_optarg.txt @@ -0,0 +1 @@ +a { |b = :c| } diff --git a/test/yarp/fixtures/seattlerb/block_paren_splat.txt b/test/yarp/fixtures/seattlerb/block_paren_splat.txt new file mode 100644 index 0000000000..3dd4bba1ed --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_paren_splat.txt @@ -0,0 +1 @@ +a { |(b, *c)| } diff --git a/test/yarp/fixtures/seattlerb/block_reg_optarg.txt b/test/yarp/fixtures/seattlerb/block_reg_optarg.txt new file mode 100644 index 0000000000..c024651f78 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_reg_optarg.txt @@ -0,0 +1 @@ +a { |b, c = :d| } diff --git a/test/yarp/fixtures/seattlerb/block_return.txt b/test/yarp/fixtures/seattlerb/block_return.txt new file mode 100644 index 0000000000..f30ba71d8f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_return.txt @@ -0,0 +1 @@ +return foo arg do |bar| end diff --git a/test/yarp/fixtures/seattlerb/block_scope.txt b/test/yarp/fixtures/seattlerb/block_scope.txt new file mode 100644 index 0000000000..7a83d8ab87 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_scope.txt @@ -0,0 +1 @@ +a { |;b| } diff --git a/test/yarp/fixtures/seattlerb/block_splat_reg.txt b/test/yarp/fixtures/seattlerb/block_splat_reg.txt new file mode 100644 index 0000000000..58f0619e5d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/block_splat_reg.txt @@ -0,0 +1 @@ +a { |*b, c| } diff --git a/test/yarp/fixtures/seattlerb/bug169.txt b/test/yarp/fixtures/seattlerb/bug169.txt new file mode 100644 index 0000000000..db2e5ace5e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug169.txt @@ -0,0 +1 @@ +m () {} diff --git a/test/yarp/fixtures/seattlerb/bug179.txt b/test/yarp/fixtures/seattlerb/bug179.txt new file mode 100644 index 0000000000..02ae07a3be --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug179.txt @@ -0,0 +1 @@ +p ()..nil diff --git a/test/yarp/fixtures/seattlerb/bug190.txt b/test/yarp/fixtures/seattlerb/bug190.txt new file mode 100644 index 0000000000..861b2d305f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug190.txt @@ -0,0 +1 @@ +%r'\'' diff --git a/test/yarp/fixtures/seattlerb/bug191.txt b/test/yarp/fixtures/seattlerb/bug191.txt new file mode 100644 index 0000000000..03f7fd1228 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug191.txt @@ -0,0 +1,3 @@ +a ? "": b + +a ? '': b diff --git a/test/yarp/fixtures/seattlerb/bug202.txt b/test/yarp/fixtures/seattlerb/bug202.txt new file mode 100644 index 0000000000..a3b06ffdfc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug202.txt @@ -0,0 +1,2 @@ +$测试 = 1 +测试 = 1 diff --git a/test/yarp/fixtures/seattlerb/bug236.txt b/test/yarp/fixtures/seattlerb/bug236.txt new file mode 100644 index 0000000000..cefe1eb058 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug236.txt @@ -0,0 +1,3 @@ +x{|a,|} + +x{|a|} diff --git a/test/yarp/fixtures/seattlerb/bug290.txt b/test/yarp/fixtures/seattlerb/bug290.txt new file mode 100644 index 0000000000..dbcd28cd48 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug290.txt @@ -0,0 +1,3 @@ +begin + foo +end diff --git a/test/yarp/fixtures/seattlerb/bug_187.txt b/test/yarp/fixtures/seattlerb/bug_187.txt new file mode 100644 index 0000000000..1e1ecd8202 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_187.txt @@ -0,0 +1,3 @@ +private def f +a.b do end +end diff --git a/test/yarp/fixtures/seattlerb/bug_215.txt b/test/yarp/fixtures/seattlerb/bug_215.txt new file mode 100644 index 0000000000..f0d09ba5ff --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_215.txt @@ -0,0 +1 @@ +undef %s(foo) diff --git a/test/yarp/fixtures/seattlerb/bug_249.txt b/test/yarp/fixtures/seattlerb/bug_249.txt new file mode 100644 index 0000000000..ccccdf5326 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_249.txt @@ -0,0 +1,4 @@ +mount (Class.new do +def initialize +end + end).new, :at => 'endpoint' diff --git a/test/yarp/fixtures/seattlerb/bug_and.txt b/test/yarp/fixtures/seattlerb/bug_and.txt new file mode 100644 index 0000000000..6243359a9e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_and.txt @@ -0,0 +1,4 @@ +true and +true + +true and [] diff --git a/test/yarp/fixtures/seattlerb/bug_args__19.txt b/test/yarp/fixtures/seattlerb/bug_args__19.txt new file mode 100644 index 0000000000..08466554fd --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_args__19.txt @@ -0,0 +1 @@ +f { |(a, b)| d } diff --git a/test/yarp/fixtures/seattlerb/bug_args_masgn.txt b/test/yarp/fixtures/seattlerb/bug_args_masgn.txt new file mode 100644 index 0000000000..e0a71e9197 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_args_masgn.txt @@ -0,0 +1 @@ +f { |(a, b), c| } diff --git a/test/yarp/fixtures/seattlerb/bug_args_masgn2.txt b/test/yarp/fixtures/seattlerb/bug_args_masgn2.txt new file mode 100644 index 0000000000..2f12756bfe --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_args_masgn2.txt @@ -0,0 +1 @@ +f { |((a, b), c), d| } diff --git a/test/yarp/fixtures/seattlerb/bug_args_masgn_outer_parens__19.txt b/test/yarp/fixtures/seattlerb/bug_args_masgn_outer_parens__19.txt new file mode 100644 index 0000000000..a2b0178676 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_args_masgn_outer_parens__19.txt @@ -0,0 +1 @@ +f { |((k, v), i)| } diff --git a/test/yarp/fixtures/seattlerb/bug_call_arglist_parens.txt b/test/yarp/fixtures/seattlerb/bug_call_arglist_parens.txt new file mode 100644 index 0000000000..4f04368802 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_call_arglist_parens.txt @@ -0,0 +1,11 @@ + def f + g ( 1), 2 + end + + + def f() + g (1), 2 + end + + +g ( 1), 2 diff --git a/test/yarp/fixtures/seattlerb/bug_case_when_regexp.txt b/test/yarp/fixtures/seattlerb/bug_case_when_regexp.txt new file mode 100644 index 0000000000..2536696a42 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_case_when_regexp.txt @@ -0,0 +1 @@ +case :x; when /x/ then end diff --git a/test/yarp/fixtures/seattlerb/bug_comma.txt b/test/yarp/fixtures/seattlerb/bug_comma.txt new file mode 100644 index 0000000000..d86f1ea9dd --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_comma.txt @@ -0,0 +1 @@ +if test ?d, dir then end diff --git a/test/yarp/fixtures/seattlerb/bug_cond_pct.txt b/test/yarp/fixtures/seattlerb/bug_cond_pct.txt new file mode 100644 index 0000000000..1b4f90058e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_cond_pct.txt @@ -0,0 +1 @@ +case; when %r%blahblah%; end diff --git a/test/yarp/fixtures/seattlerb/bug_hash_args.txt b/test/yarp/fixtures/seattlerb/bug_hash_args.txt new file mode 100644 index 0000000000..b815f8a666 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_hash_args.txt @@ -0,0 +1 @@ +foo(:bar, baz: nil) diff --git a/test/yarp/fixtures/seattlerb/bug_hash_args_trailing_comma.txt b/test/yarp/fixtures/seattlerb/bug_hash_args_trailing_comma.txt new file mode 100644 index 0000000000..6057b245a5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_hash_args_trailing_comma.txt @@ -0,0 +1 @@ +foo(:bar, baz: nil,) diff --git a/test/yarp/fixtures/seattlerb/bug_hash_interp_array.txt b/test/yarp/fixtures/seattlerb/bug_hash_interp_array.txt new file mode 100644 index 0000000000..01fe238056 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_hash_interp_array.txt @@ -0,0 +1 @@ +{ "#{}": [] } diff --git a/test/yarp/fixtures/seattlerb/bug_masgn_right.txt b/test/yarp/fixtures/seattlerb/bug_masgn_right.txt new file mode 100644 index 0000000000..12ea7b8d62 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_masgn_right.txt @@ -0,0 +1 @@ +f { |a, (b, c)| } diff --git a/test/yarp/fixtures/seattlerb/bug_not_parens.txt b/test/yarp/fixtures/seattlerb/bug_not_parens.txt new file mode 100644 index 0000000000..8847b7bec6 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_not_parens.txt @@ -0,0 +1 @@ +not(a) diff --git a/test/yarp/fixtures/seattlerb/bug_op_asgn_rescue.txt b/test/yarp/fixtures/seattlerb/bug_op_asgn_rescue.txt new file mode 100644 index 0000000000..6a0b25cbdc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/bug_op_asgn_rescue.txt @@ -0,0 +1 @@ +a ||= b rescue nil diff --git a/test/yarp/fixtures/seattlerb/call_and.txt b/test/yarp/fixtures/seattlerb/call_and.txt new file mode 100644 index 0000000000..c17be8f356 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_and.txt @@ -0,0 +1 @@ +1 & 2 diff --git a/test/yarp/fixtures/seattlerb/call_arg_assoc.txt b/test/yarp/fixtures/seattlerb/call_arg_assoc.txt new file mode 100644 index 0000000000..376c299be5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_arg_assoc.txt @@ -0,0 +1 @@ +f(1, 2=>3) diff --git a/test/yarp/fixtures/seattlerb/call_arg_assoc_kwsplat.txt b/test/yarp/fixtures/seattlerb/call_arg_assoc_kwsplat.txt new file mode 100644 index 0000000000..a4be0fb62c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_arg_assoc_kwsplat.txt @@ -0,0 +1 @@ +f(1, kw: 2, **3) diff --git a/test/yarp/fixtures/seattlerb/call_arg_kwsplat.txt b/test/yarp/fixtures/seattlerb/call_arg_kwsplat.txt new file mode 100644 index 0000000000..4848fd9e8d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_arg_kwsplat.txt @@ -0,0 +1 @@ +a(b, **1) diff --git a/test/yarp/fixtures/seattlerb/call_args_assoc_quoted.txt b/test/yarp/fixtures/seattlerb/call_args_assoc_quoted.txt new file mode 100644 index 0000000000..0af2259577 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_args_assoc_quoted.txt @@ -0,0 +1,5 @@ +x "#{k}":42 + +x "k":42 + +x 'k':42 diff --git a/test/yarp/fixtures/seattlerb/call_args_assoc_trailing_comma.txt b/test/yarp/fixtures/seattlerb/call_args_assoc_trailing_comma.txt new file mode 100644 index 0000000000..6ad08f3238 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_args_assoc_trailing_comma.txt @@ -0,0 +1 @@ +f(1, 2=>3,) diff --git a/test/yarp/fixtures/seattlerb/call_args_command.txt b/test/yarp/fixtures/seattlerb/call_args_command.txt new file mode 100644 index 0000000000..dd6df29c7b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_args_command.txt @@ -0,0 +1 @@ +a.b c.d 1 diff --git a/test/yarp/fixtures/seattlerb/call_array_arg.txt b/test/yarp/fixtures/seattlerb/call_array_arg.txt new file mode 100644 index 0000000000..5c724fa328 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_array_arg.txt @@ -0,0 +1 @@ +1 == [:b, :c] diff --git a/test/yarp/fixtures/seattlerb/call_array_block_call.txt b/test/yarp/fixtures/seattlerb/call_array_block_call.txt new file mode 100644 index 0000000000..6d4c1b276e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_array_block_call.txt @@ -0,0 +1 @@ +a [ nil, b do end ] diff --git a/test/yarp/fixtures/seattlerb/call_array_lambda_block_call.txt b/test/yarp/fixtures/seattlerb/call_array_lambda_block_call.txt new file mode 100644 index 0000000000..dc5b5807b2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_array_lambda_block_call.txt @@ -0,0 +1,2 @@ +a [->() {}] do +end diff --git a/test/yarp/fixtures/seattlerb/call_array_lit_inline_hash.txt b/test/yarp/fixtures/seattlerb/call_array_lit_inline_hash.txt new file mode 100644 index 0000000000..daba00947e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_array_lit_inline_hash.txt @@ -0,0 +1 @@ +a([:b, :c => 1]) diff --git a/test/yarp/fixtures/seattlerb/call_assoc.txt b/test/yarp/fixtures/seattlerb/call_assoc.txt new file mode 100644 index 0000000000..2adc1eee1c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_assoc.txt @@ -0,0 +1 @@ +f(2=>3) diff --git a/test/yarp/fixtures/seattlerb/call_assoc_new.txt b/test/yarp/fixtures/seattlerb/call_assoc_new.txt new file mode 100644 index 0000000000..b8457bfdfc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_assoc_new.txt @@ -0,0 +1 @@ +f(a:3) diff --git a/test/yarp/fixtures/seattlerb/call_assoc_new_if_multiline.txt b/test/yarp/fixtures/seattlerb/call_assoc_new_if_multiline.txt new file mode 100644 index 0000000000..fe0a37dabb --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_assoc_new_if_multiline.txt @@ -0,0 +1,5 @@ +a(b: if :c +1 +else +2 +end) diff --git a/test/yarp/fixtures/seattlerb/call_assoc_trailing_comma.txt b/test/yarp/fixtures/seattlerb/call_assoc_trailing_comma.txt new file mode 100644 index 0000000000..4d86a4541d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_assoc_trailing_comma.txt @@ -0,0 +1 @@ +f(1=>2,) diff --git a/test/yarp/fixtures/seattlerb/call_bang_command_call.txt b/test/yarp/fixtures/seattlerb/call_bang_command_call.txt new file mode 100644 index 0000000000..4f3ba4b93c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_bang_command_call.txt @@ -0,0 +1 @@ +! a.b 1 diff --git a/test/yarp/fixtures/seattlerb/call_bang_squiggle.txt b/test/yarp/fixtures/seattlerb/call_bang_squiggle.txt new file mode 100644 index 0000000000..d7039f910a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_bang_squiggle.txt @@ -0,0 +1 @@ +1 !~ 2 diff --git a/test/yarp/fixtures/seattlerb/call_begin_call_block_call.txt b/test/yarp/fixtures/seattlerb/call_begin_call_block_call.txt new file mode 100644 index 0000000000..e9b43491fe --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_begin_call_block_call.txt @@ -0,0 +1,3 @@ +a begin +b.c do end +end diff --git a/test/yarp/fixtures/seattlerb/call_block_arg_named.txt b/test/yarp/fixtures/seattlerb/call_block_arg_named.txt new file mode 100644 index 0000000000..08fea89d11 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_block_arg_named.txt @@ -0,0 +1 @@ +x(&blk) diff --git a/test/yarp/fixtures/seattlerb/call_carat.txt b/test/yarp/fixtures/seattlerb/call_carat.txt new file mode 100644 index 0000000000..3e88c09837 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_carat.txt @@ -0,0 +1 @@ +1 ^ 2 diff --git a/test/yarp/fixtures/seattlerb/call_colon2.txt b/test/yarp/fixtures/seattlerb/call_colon2.txt new file mode 100644 index 0000000000..47aab7e637 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_colon2.txt @@ -0,0 +1 @@ +A::b diff --git a/test/yarp/fixtures/seattlerb/call_colon_parens.txt b/test/yarp/fixtures/seattlerb/call_colon_parens.txt new file mode 100644 index 0000000000..51ed4df11b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_colon_parens.txt @@ -0,0 +1 @@ +1::() diff --git a/test/yarp/fixtures/seattlerb/call_div.txt b/test/yarp/fixtures/seattlerb/call_div.txt new file mode 100644 index 0000000000..85b4d7b0b0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_div.txt @@ -0,0 +1 @@ +1 / 2 diff --git a/test/yarp/fixtures/seattlerb/call_dot_parens.txt b/test/yarp/fixtures/seattlerb/call_dot_parens.txt new file mode 100644 index 0000000000..0270596a07 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_dot_parens.txt @@ -0,0 +1 @@ +1.() diff --git a/test/yarp/fixtures/seattlerb/call_env.txt b/test/yarp/fixtures/seattlerb/call_env.txt new file mode 100644 index 0000000000..dadc0d3861 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_env.txt @@ -0,0 +1 @@ +a.happy diff --git a/test/yarp/fixtures/seattlerb/call_eq3.txt b/test/yarp/fixtures/seattlerb/call_eq3.txt new file mode 100644 index 0000000000..6a2fb465cb --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_eq3.txt @@ -0,0 +1 @@ +1 === 2 diff --git a/test/yarp/fixtures/seattlerb/call_gt.txt b/test/yarp/fixtures/seattlerb/call_gt.txt new file mode 100644 index 0000000000..9d0a1caa90 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_gt.txt @@ -0,0 +1 @@ +1 > 2 diff --git a/test/yarp/fixtures/seattlerb/call_kwsplat.txt b/test/yarp/fixtures/seattlerb/call_kwsplat.txt new file mode 100644 index 0000000000..eda700c3e1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_kwsplat.txt @@ -0,0 +1 @@ +a(**1) diff --git a/test/yarp/fixtures/seattlerb/call_leading_dots.txt b/test/yarp/fixtures/seattlerb/call_leading_dots.txt new file mode 100644 index 0000000000..1e7b2e5179 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_leading_dots.txt @@ -0,0 +1,3 @@ +a +.b +.c diff --git a/test/yarp/fixtures/seattlerb/call_leading_dots_comment.txt b/test/yarp/fixtures/seattlerb/call_leading_dots_comment.txt new file mode 100644 index 0000000000..c5deec5642 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_leading_dots_comment.txt @@ -0,0 +1,4 @@ +a +.b +#.c +.d diff --git a/test/yarp/fixtures/seattlerb/call_lt.txt b/test/yarp/fixtures/seattlerb/call_lt.txt new file mode 100644 index 0000000000..17e69c79b5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_lt.txt @@ -0,0 +1 @@ +1 < 2 diff --git a/test/yarp/fixtures/seattlerb/call_lte.txt b/test/yarp/fixtures/seattlerb/call_lte.txt new file mode 100644 index 0000000000..7574027634 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_lte.txt @@ -0,0 +1 @@ +1 <= 2 diff --git a/test/yarp/fixtures/seattlerb/call_not.txt b/test/yarp/fixtures/seattlerb/call_not.txt new file mode 100644 index 0000000000..51e4742f55 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_not.txt @@ -0,0 +1 @@ +not 42 diff --git a/test/yarp/fixtures/seattlerb/call_pipe.txt b/test/yarp/fixtures/seattlerb/call_pipe.txt new file mode 100644 index 0000000000..1555910665 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_pipe.txt @@ -0,0 +1 @@ +1 | 2 diff --git a/test/yarp/fixtures/seattlerb/call_rshift.txt b/test/yarp/fixtures/seattlerb/call_rshift.txt new file mode 100644 index 0000000000..9ff1def4e0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_rshift.txt @@ -0,0 +1 @@ +1 >> 2 diff --git a/test/yarp/fixtures/seattlerb/call_self_brackets.txt b/test/yarp/fixtures/seattlerb/call_self_brackets.txt new file mode 100644 index 0000000000..6533df2ce0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_self_brackets.txt @@ -0,0 +1 @@ +self[1] diff --git a/test/yarp/fixtures/seattlerb/call_spaceship.txt b/test/yarp/fixtures/seattlerb/call_spaceship.txt new file mode 100644 index 0000000000..905c3a1c46 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_spaceship.txt @@ -0,0 +1 @@ +1 <=> 2 diff --git a/test/yarp/fixtures/seattlerb/call_stabby_do_end_with_block.txt b/test/yarp/fixtures/seattlerb/call_stabby_do_end_with_block.txt new file mode 100644 index 0000000000..2d1afdad28 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_stabby_do_end_with_block.txt @@ -0,0 +1 @@ +a -> do 1 end do 2 end diff --git a/test/yarp/fixtures/seattlerb/call_stabby_with_braces_block.txt b/test/yarp/fixtures/seattlerb/call_stabby_with_braces_block.txt new file mode 100644 index 0000000000..0d995a04d1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_stabby_with_braces_block.txt @@ -0,0 +1 @@ +a -> { 1 } do 2 end diff --git a/test/yarp/fixtures/seattlerb/call_star.txt b/test/yarp/fixtures/seattlerb/call_star.txt new file mode 100644 index 0000000000..096ec022d4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_star.txt @@ -0,0 +1 @@ +1 * 2 diff --git a/test/yarp/fixtures/seattlerb/call_star2.txt b/test/yarp/fixtures/seattlerb/call_star2.txt new file mode 100644 index 0000000000..bef4719d3c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_star2.txt @@ -0,0 +1 @@ +1 ** 2 diff --git a/test/yarp/fixtures/seattlerb/call_trailing_comma.txt b/test/yarp/fixtures/seattlerb/call_trailing_comma.txt new file mode 100644 index 0000000000..e9a3ca35be --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_trailing_comma.txt @@ -0,0 +1 @@ +f(1,) diff --git a/test/yarp/fixtures/seattlerb/call_trailing_dots.txt b/test/yarp/fixtures/seattlerb/call_trailing_dots.txt new file mode 100644 index 0000000000..960cdbb45f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_trailing_dots.txt @@ -0,0 +1,3 @@ +a. +b. +c diff --git a/test/yarp/fixtures/seattlerb/call_unary_bang.txt b/test/yarp/fixtures/seattlerb/call_unary_bang.txt new file mode 100644 index 0000000000..91f702d4a9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/call_unary_bang.txt @@ -0,0 +1 @@ +!1 diff --git a/test/yarp/fixtures/seattlerb/case_in.txt b/test/yarp/fixtures/seattlerb/case_in.txt new file mode 100644 index 0000000000..f28c286348 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in.txt @@ -0,0 +1,111 @@ +case :a +in "b": +end + +case :a +in %I[a b] +end + +case :a +in %W[a b] +end + +case :a +in %i[a b] +end + +case :a +in %w[a b] +end + +case :a +in (...10) +end + +case :a +in (..10) +end + +case :a +in (1...) +end + +case :a +in (1...3) +end + +case :a +in (42) +end + +case :a +in **nil +end + +case :a +in /regexp/ +end + +case :a +in :b, *_, :c +end + +case :a +in :b, [:c] +end + +case :a +in Symbol() +end + +case :a +in Symbol(*lhs, x, *rhs) +end + +case :a +in Symbol[*lhs, x, *rhs] +end + +case :a +in [->(b) { true }, c] +end + +case :a +in [:a, b, c, [:d, *e, nil]] +end + +case :a +in [A, *, B] +end + +case :a +in [[:b, c], [:d, ^e]] +end + +case :a +in [] +end + +case :a +in [^(a)] +end + +case :a +in [^@a, ^$b, ^@@c] +end + +case :a +in `echo hi` +end + +case :a +in nil, nil, nil +end + +case :a +in { "b": } +end + +case :a +in {} +end diff --git a/test/yarp/fixtures/seattlerb/case_in_31.txt b/test/yarp/fixtures/seattlerb/case_in_31.txt new file mode 100644 index 0000000000..b9bf25b132 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_31.txt @@ -0,0 +1,4 @@ +case :a +in [:b, *c] + :d +end diff --git a/test/yarp/fixtures/seattlerb/case_in_37.txt b/test/yarp/fixtures/seattlerb/case_in_37.txt new file mode 100644 index 0000000000..25b6fb9261 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_37.txt @@ -0,0 +1,4 @@ +case :a +in { b: [Hash, *] } + :c +end diff --git a/test/yarp/fixtures/seattlerb/case_in_42.txt b/test/yarp/fixtures/seattlerb/case_in_42.txt new file mode 100644 index 0000000000..bc6a2233f5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_42.txt @@ -0,0 +1,3 @@ +case :a +in :b, *_ then nil +end diff --git a/test/yarp/fixtures/seattlerb/case_in_42_2.txt b/test/yarp/fixtures/seattlerb/case_in_42_2.txt new file mode 100644 index 0000000000..ce4b65a5d0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_42_2.txt @@ -0,0 +1,3 @@ +case :a +in A(*list) then nil +end diff --git a/test/yarp/fixtures/seattlerb/case_in_47.txt b/test/yarp/fixtures/seattlerb/case_in_47.txt new file mode 100644 index 0000000000..60f17ed7ce --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_47.txt @@ -0,0 +1,4 @@ +case :a +in [*, :b, :c] + :d +end diff --git a/test/yarp/fixtures/seattlerb/case_in_67.txt b/test/yarp/fixtures/seattlerb/case_in_67.txt new file mode 100644 index 0000000000..c1c55e68c7 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_67.txt @@ -0,0 +1,3 @@ +case :a +in 1.. then nil +end diff --git a/test/yarp/fixtures/seattlerb/case_in_86.txt b/test/yarp/fixtures/seattlerb/case_in_86.txt new file mode 100644 index 0000000000..63ba92e533 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_86.txt @@ -0,0 +1,3 @@ +case [:a, :b] +in ::NilClass, * then nil +end diff --git a/test/yarp/fixtures/seattlerb/case_in_86_2.txt b/test/yarp/fixtures/seattlerb/case_in_86_2.txt new file mode 100644 index 0000000000..4ad16c451a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_86_2.txt @@ -0,0 +1,3 @@ +case [:a, :b] +in *, ::NilClass then nil +end diff --git a/test/yarp/fixtures/seattlerb/case_in_array_pat_const.txt b/test/yarp/fixtures/seattlerb/case_in_array_pat_const.txt new file mode 100644 index 0000000000..8551e48e2c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_array_pat_const.txt @@ -0,0 +1,4 @@ +case :a +in B[c] + :d +end diff --git a/test/yarp/fixtures/seattlerb/case_in_array_pat_const2.txt b/test/yarp/fixtures/seattlerb/case_in_array_pat_const2.txt new file mode 100644 index 0000000000..fca423ea61 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_array_pat_const2.txt @@ -0,0 +1,4 @@ +case :a +in B::C[d] + :e +end diff --git a/test/yarp/fixtures/seattlerb/case_in_array_pat_paren_assign.txt b/test/yarp/fixtures/seattlerb/case_in_array_pat_paren_assign.txt new file mode 100644 index 0000000000..c56f728337 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_array_pat_paren_assign.txt @@ -0,0 +1,4 @@ +case :a +in B(C => d) + :d +end diff --git a/test/yarp/fixtures/seattlerb/case_in_const.txt b/test/yarp/fixtures/seattlerb/case_in_const.txt new file mode 100644 index 0000000000..5b0dcc18e2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_const.txt @@ -0,0 +1,4 @@ +case Array +in Class + :b +end diff --git a/test/yarp/fixtures/seattlerb/case_in_else.txt b/test/yarp/fixtures/seattlerb/case_in_else.txt new file mode 100644 index 0000000000..6f096862c5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_else.txt @@ -0,0 +1,7 @@ +case Array +in Class + :b +else + :c +end + diff --git a/test/yarp/fixtures/seattlerb/case_in_find.txt b/test/yarp/fixtures/seattlerb/case_in_find.txt new file mode 100644 index 0000000000..476fcabe11 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_find.txt @@ -0,0 +1,3 @@ +case :a + in *a, :+, *b +end diff --git a/test/yarp/fixtures/seattlerb/case_in_find_array.txt b/test/yarp/fixtures/seattlerb/case_in_find_array.txt new file mode 100644 index 0000000000..5eb4010b7f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_find_array.txt @@ -0,0 +1,3 @@ +case :a +in [*, :b, c, *] +end diff --git a/test/yarp/fixtures/seattlerb/case_in_hash_pat.txt b/test/yarp/fixtures/seattlerb/case_in_hash_pat.txt new file mode 100644 index 0000000000..cb012e8d99 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_hash_pat.txt @@ -0,0 +1,5 @@ +case :a +in { b: 'c', d: "e" } then + :f +end + diff --git a/test/yarp/fixtures/seattlerb/case_in_hash_pat_assign.txt b/test/yarp/fixtures/seattlerb/case_in_hash_pat_assign.txt new file mode 100644 index 0000000000..58fd59ff9c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_hash_pat_assign.txt @@ -0,0 +1,4 @@ +case :a +in { b: Integer => x, d: "e", f: } then + :g +end diff --git a/test/yarp/fixtures/seattlerb/case_in_hash_pat_paren_assign.txt b/test/yarp/fixtures/seattlerb/case_in_hash_pat_paren_assign.txt new file mode 100644 index 0000000000..de3a10740c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_hash_pat_paren_assign.txt @@ -0,0 +1,4 @@ +case :a +in B(a: 42) + :d +end diff --git a/test/yarp/fixtures/seattlerb/case_in_hash_pat_paren_true.txt b/test/yarp/fixtures/seattlerb/case_in_hash_pat_paren_true.txt new file mode 100644 index 0000000000..449fd0d4d4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_hash_pat_paren_true.txt @@ -0,0 +1,5 @@ +case :a +in b: true then + :c +end + diff --git a/test/yarp/fixtures/seattlerb/case_in_hash_pat_rest.txt b/test/yarp/fixtures/seattlerb/case_in_hash_pat_rest.txt new file mode 100644 index 0000000000..6f67cb1d10 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_hash_pat_rest.txt @@ -0,0 +1,3 @@ +case :a +in b: c, **rest then :d +end diff --git a/test/yarp/fixtures/seattlerb/case_in_hash_pat_rest_solo.txt b/test/yarp/fixtures/seattlerb/case_in_hash_pat_rest_solo.txt new file mode 100644 index 0000000000..91d0592412 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_hash_pat_rest_solo.txt @@ -0,0 +1,3 @@ +case :a +in **rest then :d +end diff --git a/test/yarp/fixtures/seattlerb/case_in_if_unless_post_mod.txt b/test/yarp/fixtures/seattlerb/case_in_if_unless_post_mod.txt new file mode 100644 index 0000000000..dbe24a5c8a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_if_unless_post_mod.txt @@ -0,0 +1,6 @@ +case :a +in A if true + :C +in D unless false + :E +end diff --git a/test/yarp/fixtures/seattlerb/case_in_multiple.txt b/test/yarp/fixtures/seattlerb/case_in_multiple.txt new file mode 100644 index 0000000000..1b6dd06cfe --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_multiple.txt @@ -0,0 +1,6 @@ +case :a +in A::B + :C +in D::E + :F +end diff --git a/test/yarp/fixtures/seattlerb/case_in_or.txt b/test/yarp/fixtures/seattlerb/case_in_or.txt new file mode 100644 index 0000000000..875e37749f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/case_in_or.txt @@ -0,0 +1,5 @@ +case :a +in B | C + :d +end + diff --git a/test/yarp/fixtures/seattlerb/class_comments.txt b/test/yarp/fixtures/seattlerb/class_comments.txt new file mode 100644 index 0000000000..9701eca7e5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/class_comments.txt @@ -0,0 +1,9 @@ +# blah 1 +# blah 2 + +class X + # blah 3 + def blah + # blah 4 + end +end diff --git a/test/yarp/fixtures/seattlerb/cond_unary_minus.txt b/test/yarp/fixtures/seattlerb/cond_unary_minus.txt new file mode 100644 index 0000000000..80293115da --- /dev/null +++ b/test/yarp/fixtures/seattlerb/cond_unary_minus.txt @@ -0,0 +1 @@ +if -1; end diff --git a/test/yarp/fixtures/seattlerb/const_2_op_asgn_or2.txt b/test/yarp/fixtures/seattlerb/const_2_op_asgn_or2.txt new file mode 100644 index 0000000000..6912c2d76b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/const_2_op_asgn_or2.txt @@ -0,0 +1 @@ +::X::Y ||= 1 diff --git a/test/yarp/fixtures/seattlerb/const_3_op_asgn_or.txt b/test/yarp/fixtures/seattlerb/const_3_op_asgn_or.txt new file mode 100644 index 0000000000..bbcd25a369 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/const_3_op_asgn_or.txt @@ -0,0 +1 @@ +::X ||= 1 diff --git a/test/yarp/fixtures/seattlerb/const_op_asgn_and1.txt b/test/yarp/fixtures/seattlerb/const_op_asgn_and1.txt new file mode 100644 index 0000000000..3964df0ead --- /dev/null +++ b/test/yarp/fixtures/seattlerb/const_op_asgn_and1.txt @@ -0,0 +1 @@ +::X &= 1 diff --git a/test/yarp/fixtures/seattlerb/const_op_asgn_and2.txt b/test/yarp/fixtures/seattlerb/const_op_asgn_and2.txt new file mode 100644 index 0000000000..1bef4b4154 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/const_op_asgn_and2.txt @@ -0,0 +1 @@ +::X &&= 1 diff --git a/test/yarp/fixtures/seattlerb/const_op_asgn_or.txt b/test/yarp/fixtures/seattlerb/const_op_asgn_or.txt new file mode 100644 index 0000000000..729e425262 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/const_op_asgn_or.txt @@ -0,0 +1 @@ +X::Y ||= 1 diff --git a/test/yarp/fixtures/seattlerb/dasgn_icky2.txt b/test/yarp/fixtures/seattlerb/dasgn_icky2.txt new file mode 100644 index 0000000000..2f50d32304 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dasgn_icky2.txt @@ -0,0 +1,8 @@ +a do + v = nil + begin + yield + rescue Exception => v + break + end +end diff --git a/test/yarp/fixtures/seattlerb/defined_eh_parens.txt b/test/yarp/fixtures/seattlerb/defined_eh_parens.txt new file mode 100644 index 0000000000..5ca5d9f4c4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defined_eh_parens.txt @@ -0,0 +1 @@ +defined?(42) diff --git a/test/yarp/fixtures/seattlerb/defn_arg_asplat_arg.txt b/test/yarp/fixtures/seattlerb/defn_arg_asplat_arg.txt new file mode 100644 index 0000000000..f629a5de60 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_arg_asplat_arg.txt @@ -0,0 +1 @@ +def call(interp, *, args) end diff --git a/test/yarp/fixtures/seattlerb/defn_arg_forward_args.txt b/test/yarp/fixtures/seattlerb/defn_arg_forward_args.txt new file mode 100644 index 0000000000..500e2e1fe0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_arg_forward_args.txt @@ -0,0 +1 @@ +def a(x, ...); b(x, ...); end diff --git a/test/yarp/fixtures/seattlerb/defn_args_forward_args.txt b/test/yarp/fixtures/seattlerb/defn_args_forward_args.txt new file mode 100644 index 0000000000..fc1ee138de --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_args_forward_args.txt @@ -0,0 +1 @@ +def a(x, y, z, ...); b(:get, z, ...); end diff --git a/test/yarp/fixtures/seattlerb/defn_comments.txt b/test/yarp/fixtures/seattlerb/defn_comments.txt new file mode 100644 index 0000000000..04c7ea1a10 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_comments.txt @@ -0,0 +1,5 @@ +# blah 1 +# blah 2 + +def blah +end diff --git a/test/yarp/fixtures/seattlerb/defn_endless_command.txt b/test/yarp/fixtures/seattlerb/defn_endless_command.txt new file mode 100644 index 0000000000..172de2ca6c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_endless_command.txt @@ -0,0 +1 @@ +def some_method = other_method 42 diff --git a/test/yarp/fixtures/seattlerb/defn_endless_command_rescue.txt b/test/yarp/fixtures/seattlerb/defn_endless_command_rescue.txt new file mode 100644 index 0000000000..05ed392e38 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_endless_command_rescue.txt @@ -0,0 +1 @@ +def some_method = other_method 42 rescue 24 diff --git a/test/yarp/fixtures/seattlerb/defn_forward_args.txt b/test/yarp/fixtures/seattlerb/defn_forward_args.txt new file mode 100644 index 0000000000..46ed199875 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_forward_args.txt @@ -0,0 +1 @@ +def a(...); b(...); end diff --git a/test/yarp/fixtures/seattlerb/defn_kwarg_env.txt b/test/yarp/fixtures/seattlerb/defn_kwarg_env.txt new file mode 100644 index 0000000000..b512677195 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_kwarg_env.txt @@ -0,0 +1 @@ +def test(**testing) test_splat(**testing) end diff --git a/test/yarp/fixtures/seattlerb/defn_kwarg_kwarg.txt b/test/yarp/fixtures/seattlerb/defn_kwarg_kwarg.txt new file mode 100644 index 0000000000..3962d2645c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_kwarg_kwarg.txt @@ -0,0 +1 @@ +def f(a, b: 1, c: 2) end diff --git a/test/yarp/fixtures/seattlerb/defn_kwarg_kwsplat.txt b/test/yarp/fixtures/seattlerb/defn_kwarg_kwsplat.txt new file mode 100644 index 0000000000..bd39819482 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_kwarg_kwsplat.txt @@ -0,0 +1 @@ +def a(b: 1, **c) end diff --git a/test/yarp/fixtures/seattlerb/defn_kwarg_kwsplat_anon.txt b/test/yarp/fixtures/seattlerb/defn_kwarg_kwsplat_anon.txt new file mode 100644 index 0000000000..aba71cba07 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_kwarg_kwsplat_anon.txt @@ -0,0 +1 @@ +def a(b: 1, **) end diff --git a/test/yarp/fixtures/seattlerb/defn_kwarg_lvar.txt b/test/yarp/fixtures/seattlerb/defn_kwarg_lvar.txt new file mode 100644 index 0000000000..9eac108cca --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_kwarg_lvar.txt @@ -0,0 +1 @@ +def fun(kw: :val); kw; end diff --git a/test/yarp/fixtures/seattlerb/defn_kwarg_no_parens.txt b/test/yarp/fixtures/seattlerb/defn_kwarg_no_parens.txt new file mode 100644 index 0000000000..481457bf0e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_kwarg_no_parens.txt @@ -0,0 +1,2 @@ +def f a: 1 +end diff --git a/test/yarp/fixtures/seattlerb/defn_kwarg_val.txt b/test/yarp/fixtures/seattlerb/defn_kwarg_val.txt new file mode 100644 index 0000000000..1a2803926f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_kwarg_val.txt @@ -0,0 +1 @@ +def f(a, b:1) end diff --git a/test/yarp/fixtures/seattlerb/defn_no_kwargs.txt b/test/yarp/fixtures/seattlerb/defn_no_kwargs.txt new file mode 100644 index 0000000000..857ec8debb --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_no_kwargs.txt @@ -0,0 +1 @@ +def x(**nil); end diff --git a/test/yarp/fixtures/seattlerb/defn_oneliner.txt b/test/yarp/fixtures/seattlerb/defn_oneliner.txt new file mode 100644 index 0000000000..4aef08ce46 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_oneliner.txt @@ -0,0 +1 @@ +def exec(cmd) = system(cmd) diff --git a/test/yarp/fixtures/seattlerb/defn_oneliner_eq2.txt b/test/yarp/fixtures/seattlerb/defn_oneliner_eq2.txt new file mode 100644 index 0000000000..1b1ce27a15 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_oneliner_eq2.txt @@ -0,0 +1,3 @@ +class X + def ==(o) = 42 +end diff --git a/test/yarp/fixtures/seattlerb/defn_oneliner_noargs.txt b/test/yarp/fixtures/seattlerb/defn_oneliner_noargs.txt new file mode 100644 index 0000000000..cb4f76d244 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_oneliner_noargs.txt @@ -0,0 +1 @@ +def exec = system diff --git a/test/yarp/fixtures/seattlerb/defn_oneliner_noargs_parentheses.txt b/test/yarp/fixtures/seattlerb/defn_oneliner_noargs_parentheses.txt new file mode 100644 index 0000000000..c582e896c1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_oneliner_noargs_parentheses.txt @@ -0,0 +1 @@ +def exec() = system diff --git a/test/yarp/fixtures/seattlerb/defn_oneliner_rescue.txt b/test/yarp/fixtures/seattlerb/defn_oneliner_rescue.txt new file mode 100644 index 0000000000..ffe2228c9d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_oneliner_rescue.txt @@ -0,0 +1,13 @@ +def exec(cmd) + system(cmd) +rescue + nil +end + + +def exec(cmd) + system(cmd) rescue nil +end + + +def exec(cmd) = system(cmd) rescue nil diff --git a/test/yarp/fixtures/seattlerb/defn_opt_last_arg.txt b/test/yarp/fixtures/seattlerb/defn_opt_last_arg.txt new file mode 100644 index 0000000000..91500bf137 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_opt_last_arg.txt @@ -0,0 +1,2 @@ +def m arg = false +end diff --git a/test/yarp/fixtures/seattlerb/defn_opt_reg.txt b/test/yarp/fixtures/seattlerb/defn_opt_reg.txt new file mode 100644 index 0000000000..c665674bc4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_opt_reg.txt @@ -0,0 +1 @@ +def f(a=nil, b) end diff --git a/test/yarp/fixtures/seattlerb/defn_opt_splat_arg.txt b/test/yarp/fixtures/seattlerb/defn_opt_splat_arg.txt new file mode 100644 index 0000000000..876398b478 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_opt_splat_arg.txt @@ -0,0 +1 @@ +def f (a = 1, *b, c) end diff --git a/test/yarp/fixtures/seattlerb/defn_powarg.txt b/test/yarp/fixtures/seattlerb/defn_powarg.txt new file mode 100644 index 0000000000..73415f0db9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_powarg.txt @@ -0,0 +1 @@ +def f(**opts) end diff --git a/test/yarp/fixtures/seattlerb/defn_reg_opt_reg.txt b/test/yarp/fixtures/seattlerb/defn_reg_opt_reg.txt new file mode 100644 index 0000000000..69f501a38e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_reg_opt_reg.txt @@ -0,0 +1 @@ +def f(a, b = :c, d) end diff --git a/test/yarp/fixtures/seattlerb/defn_splat_arg.txt b/test/yarp/fixtures/seattlerb/defn_splat_arg.txt new file mode 100644 index 0000000000..a2a84bed30 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_splat_arg.txt @@ -0,0 +1 @@ +def f(*, a) end diff --git a/test/yarp/fixtures/seattlerb/defn_unary_not.txt b/test/yarp/fixtures/seattlerb/defn_unary_not.txt new file mode 100644 index 0000000000..fb83c84a13 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defn_unary_not.txt @@ -0,0 +1 @@ +def !@; true; end diff --git a/test/yarp/fixtures/seattlerb/defns_reserved.txt b/test/yarp/fixtures/seattlerb/defns_reserved.txt new file mode 100644 index 0000000000..7de9322f0d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defns_reserved.txt @@ -0,0 +1 @@ +def self.return; end diff --git a/test/yarp/fixtures/seattlerb/defs_as_arg_with_do_block_inside.txt b/test/yarp/fixtures/seattlerb/defs_as_arg_with_do_block_inside.txt new file mode 100644 index 0000000000..4d493d73dd --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defs_as_arg_with_do_block_inside.txt @@ -0,0 +1 @@ +p def self.b; x.y do; end; end diff --git a/test/yarp/fixtures/seattlerb/defs_comments.txt b/test/yarp/fixtures/seattlerb/defs_comments.txt new file mode 100644 index 0000000000..52b9b4a6b3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defs_comments.txt @@ -0,0 +1,5 @@ +# blah 1 +# blah 2 + +def self.blah +end diff --git a/test/yarp/fixtures/seattlerb/defs_endless_command.txt b/test/yarp/fixtures/seattlerb/defs_endless_command.txt new file mode 100644 index 0000000000..3b605657de --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defs_endless_command.txt @@ -0,0 +1 @@ +def x.some_method = other_method 42 diff --git a/test/yarp/fixtures/seattlerb/defs_endless_command_rescue.txt b/test/yarp/fixtures/seattlerb/defs_endless_command_rescue.txt new file mode 100644 index 0000000000..6ece366db0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defs_endless_command_rescue.txt @@ -0,0 +1 @@ +def x.some_method = other_method 42 rescue 24 diff --git a/test/yarp/fixtures/seattlerb/defs_kwarg.txt b/test/yarp/fixtures/seattlerb/defs_kwarg.txt new file mode 100644 index 0000000000..59970a371e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defs_kwarg.txt @@ -0,0 +1,2 @@ +def self.a b: 1 +end diff --git a/test/yarp/fixtures/seattlerb/defs_oneliner.txt b/test/yarp/fixtures/seattlerb/defs_oneliner.txt new file mode 100644 index 0000000000..1867edcfbf --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defs_oneliner.txt @@ -0,0 +1 @@ +def self.exec(cmd) = system(cmd) diff --git a/test/yarp/fixtures/seattlerb/defs_oneliner_eq2.txt b/test/yarp/fixtures/seattlerb/defs_oneliner_eq2.txt new file mode 100644 index 0000000000..1e55f68bf3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defs_oneliner_eq2.txt @@ -0,0 +1,3 @@ +class X + def self.==(o) = 42 +end diff --git a/test/yarp/fixtures/seattlerb/defs_oneliner_rescue.txt b/test/yarp/fixtures/seattlerb/defs_oneliner_rescue.txt new file mode 100644 index 0000000000..7a04012b8f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/defs_oneliner_rescue.txt @@ -0,0 +1,13 @@ +def self.exec(cmd) + system(cmd) +rescue + nil +end + + +def self.exec(cmd) + system(cmd) rescue nil +end + + +def self.exec(cmd) = system(cmd) rescue nil diff --git a/test/yarp/fixtures/seattlerb/do_bug.txt b/test/yarp/fixtures/seattlerb/do_bug.txt new file mode 100644 index 0000000000..a274e72baf --- /dev/null +++ b/test/yarp/fixtures/seattlerb/do_bug.txt @@ -0,0 +1,4 @@ +a 1 +a.b do |c| + # do nothing +end diff --git a/test/yarp/fixtures/seattlerb/do_lambda.txt b/test/yarp/fixtures/seattlerb/do_lambda.txt new file mode 100644 index 0000000000..06d2a38d30 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/do_lambda.txt @@ -0,0 +1 @@ +->() do end diff --git a/test/yarp/fixtures/seattlerb/dot2_nil__26.txt b/test/yarp/fixtures/seattlerb/dot2_nil__26.txt new file mode 100644 index 0000000000..cc070eb69f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dot2_nil__26.txt @@ -0,0 +1 @@ +a.. diff --git a/test/yarp/fixtures/seattlerb/dot3_nil__26.txt b/test/yarp/fixtures/seattlerb/dot3_nil__26.txt new file mode 100644 index 0000000000..7f4aef7af7 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dot3_nil__26.txt @@ -0,0 +1 @@ +a... diff --git a/test/yarp/fixtures/seattlerb/dstr_evstr.txt b/test/yarp/fixtures/seattlerb/dstr_evstr.txt new file mode 100644 index 0000000000..5fe4a858c1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dstr_evstr.txt @@ -0,0 +1 @@ +"#{'a'}#{b}" diff --git a/test/yarp/fixtures/seattlerb/dstr_evstr_empty_end.txt b/test/yarp/fixtures/seattlerb/dstr_evstr_empty_end.txt new file mode 100644 index 0000000000..7a55030fa8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dstr_evstr_empty_end.txt @@ -0,0 +1 @@ +:"#{field}" diff --git a/test/yarp/fixtures/seattlerb/dstr_lex_state.txt b/test/yarp/fixtures/seattlerb/dstr_lex_state.txt new file mode 100644 index 0000000000..6cac1d8e95 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dstr_lex_state.txt @@ -0,0 +1 @@ +"#{p:a}" diff --git a/test/yarp/fixtures/seattlerb/dstr_str.txt b/test/yarp/fixtures/seattlerb/dstr_str.txt new file mode 100644 index 0000000000..226ce2b191 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dstr_str.txt @@ -0,0 +1 @@ +"#{'a'} b" diff --git a/test/yarp/fixtures/seattlerb/dsym_esc_to_sym.txt b/test/yarp/fixtures/seattlerb/dsym_esc_to_sym.txt new file mode 100644 index 0000000000..e5781453c1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dsym_esc_to_sym.txt @@ -0,0 +1 @@ +:"Variet\303\240" diff --git a/test/yarp/fixtures/seattlerb/dsym_to_sym.txt b/test/yarp/fixtures/seattlerb/dsym_to_sym.txt new file mode 100644 index 0000000000..813c90342c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/dsym_to_sym.txt @@ -0,0 +1,3 @@ +alias :"<<" :">>" + +alias :<< :>> diff --git a/test/yarp/fixtures/seattlerb/eq_begin_line_numbers.txt b/test/yarp/fixtures/seattlerb/eq_begin_line_numbers.txt new file mode 100644 index 0000000000..aae82e1207 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/eq_begin_line_numbers.txt @@ -0,0 +1,6 @@ +1 +=begin +comment +comment +=end +2 diff --git a/test/yarp/fixtures/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt b/test/yarp/fixtures/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt new file mode 100644 index 0000000000..88ff599e91 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt @@ -0,0 +1,3 @@ +h[k]=begin + 42 + end diff --git a/test/yarp/fixtures/seattlerb/evstr_evstr.txt b/test/yarp/fixtures/seattlerb/evstr_evstr.txt new file mode 100644 index 0000000000..cf0b5ee873 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/evstr_evstr.txt @@ -0,0 +1 @@ +"#{a}#{b}" diff --git a/test/yarp/fixtures/seattlerb/evstr_str.txt b/test/yarp/fixtures/seattlerb/evstr_str.txt new file mode 100644 index 0000000000..5746909b19 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/evstr_str.txt @@ -0,0 +1 @@ +"#{a} b" diff --git a/test/yarp/fixtures/seattlerb/expr_not_bang.txt b/test/yarp/fixtures/seattlerb/expr_not_bang.txt new file mode 100644 index 0000000000..6ed80c76d3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/expr_not_bang.txt @@ -0,0 +1 @@ +! a b diff --git a/test/yarp/fixtures/seattlerb/f_kw.txt b/test/yarp/fixtures/seattlerb/f_kw.txt new file mode 100644 index 0000000000..4dd42662b8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/f_kw.txt @@ -0,0 +1 @@ +def x k:42; end diff --git a/test/yarp/fixtures/seattlerb/f_kw__required.txt b/test/yarp/fixtures/seattlerb/f_kw__required.txt new file mode 100644 index 0000000000..2e1e258ff0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/f_kw__required.txt @@ -0,0 +1 @@ +def x k:; end diff --git a/test/yarp/fixtures/seattlerb/flip2_env_lvar.txt b/test/yarp/fixtures/seattlerb/flip2_env_lvar.txt new file mode 100644 index 0000000000..619b2c915e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/flip2_env_lvar.txt @@ -0,0 +1 @@ +if a..b then end diff --git a/test/yarp/fixtures/seattlerb/float_with_if_modifier.txt b/test/yarp/fixtures/seattlerb/float_with_if_modifier.txt new file mode 100644 index 0000000000..6a62d4a308 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/float_with_if_modifier.txt @@ -0,0 +1 @@ +1.0if true diff --git a/test/yarp/fixtures/seattlerb/heredoc__backslash_dos_format.txt b/test/yarp/fixtures/seattlerb/heredoc__backslash_dos_format.txt new file mode 100644 index 0000000000..cfbcb2a11d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc__backslash_dos_format.txt @@ -0,0 +1,5 @@ +str = <<-XXX
+before\
+after
+XXX
+ diff --git a/test/yarp/fixtures/seattlerb/heredoc_backslash_nl.txt b/test/yarp/fixtures/seattlerb/heredoc_backslash_nl.txt new file mode 100644 index 0000000000..0cc5b35fd5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_backslash_nl.txt @@ -0,0 +1,8 @@ +" why would someone do this? \ + blah +" + +<<-DESC + why would someone do this? \ + blah +DESC diff --git a/test/yarp/fixtures/seattlerb/heredoc_bad_hex_escape.txt b/test/yarp/fixtures/seattlerb/heredoc_bad_hex_escape.txt new file mode 100644 index 0000000000..2c386cc6a9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_bad_hex_escape.txt @@ -0,0 +1,3 @@ +s = <<eos +a\xE9b +eos diff --git a/test/yarp/fixtures/seattlerb/heredoc_bad_oct_escape.txt b/test/yarp/fixtures/seattlerb/heredoc_bad_oct_escape.txt new file mode 100644 index 0000000000..235a041e90 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_bad_oct_escape.txt @@ -0,0 +1,5 @@ +s = <<-EOS +a\247b +cöd +EOS + diff --git a/test/yarp/fixtures/seattlerb/heredoc_comma_arg.txt b/test/yarp/fixtures/seattlerb/heredoc_comma_arg.txt new file mode 100644 index 0000000000..c230b12f65 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_comma_arg.txt @@ -0,0 +1,7 @@ +[" some text +",] + +[<<-FILE, + some text +FILE +] diff --git a/test/yarp/fixtures/seattlerb/heredoc_lineno.txt b/test/yarp/fixtures/seattlerb/heredoc_lineno.txt new file mode 100644 index 0000000000..73a2e3806b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_lineno.txt @@ -0,0 +1,7 @@ +c = <<'CCC' +line2 +line3 +line4 +CCC + +d = 42 diff --git a/test/yarp/fixtures/seattlerb/heredoc_nested.txt b/test/yarp/fixtures/seattlerb/heredoc_nested.txt new file mode 100644 index 0000000000..508d6d3c05 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_nested.txt @@ -0,0 +1,7 @@ +[<<A, +#{<<B} +b +B +a +A +0] diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly.txt new file mode 100644 index 0000000000..e630ff62b4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly.txt @@ -0,0 +1,7 @@ +a = <<~"EOF" + x + y + z + EOF + + diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt new file mode 100644 index 0000000000..61b62157db --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt @@ -0,0 +1,4 @@ +a = foo(<<~EOF.chop) + + #{bar}baz + EOF diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly_blank_lines.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly_blank_lines.txt new file mode 100644 index 0000000000..0d89134c87 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly_blank_lines.txt @@ -0,0 +1,7 @@ +a = <<~EOF + x + + z +EOF + + diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly_empty.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly_empty.txt new file mode 100644 index 0000000000..4602d757fb --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly_empty.txt @@ -0,0 +1,2 @@ +<<~A +A diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly_interp.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly_interp.txt new file mode 100644 index 0000000000..47ff3c9070 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly_interp.txt @@ -0,0 +1,5 @@ +a = <<~EOF + w + x#{42} y + z + EOF diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly_no_indent.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly_no_indent.txt new file mode 100644 index 0000000000..7076f6ef71 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly_no_indent.txt @@ -0,0 +1,3 @@ +<<~A +a +A diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly_tabs.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly_tabs.txt new file mode 100644 index 0000000000..b193f0473b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly_tabs.txt @@ -0,0 +1,6 @@ +a = <<~"EOF" + blah blah + blah blah + EOF + + diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly_tabs_extra.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly_tabs_extra.txt new file mode 100644 index 0000000000..5b75dd2b59 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly_tabs_extra.txt @@ -0,0 +1,6 @@ +a = <<~"EOF" + blah blah + blah blah + EOF + + diff --git a/test/yarp/fixtures/seattlerb/heredoc_squiggly_visually_blank_lines.txt b/test/yarp/fixtures/seattlerb/heredoc_squiggly_visually_blank_lines.txt new file mode 100644 index 0000000000..0d89134c87 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_squiggly_visually_blank_lines.txt @@ -0,0 +1,7 @@ +a = <<~EOF + x + + z +EOF + + diff --git a/test/yarp/fixtures/seattlerb/heredoc_trailing_slash_continued_call.txt b/test/yarp/fixtures/seattlerb/heredoc_trailing_slash_continued_call.txt new file mode 100644 index 0000000000..12c8fac126 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_trailing_slash_continued_call.txt @@ -0,0 +1,4 @@ +<<END\ +blah +END +.strip diff --git a/test/yarp/fixtures/seattlerb/heredoc_unicode.txt b/test/yarp/fixtures/seattlerb/heredoc_unicode.txt new file mode 100644 index 0000000000..216a5cfe24 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_unicode.txt @@ -0,0 +1,4 @@ +<<OOTPÜT +. +OOTPÜT + diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_carriage_return_escapes.txt b/test/yarp/fixtures/seattlerb/heredoc_with_carriage_return_escapes.txt new file mode 100644 index 0000000000..cb4967d154 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_carriage_return_escapes.txt @@ -0,0 +1,5 @@ +<<EOS +foo\rbar +baz\r +EOS + diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_carriage_return_escapes_windows.txt b/test/yarp/fixtures/seattlerb/heredoc_with_carriage_return_escapes_windows.txt new file mode 100644 index 0000000000..75ed936b5d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_carriage_return_escapes_windows.txt @@ -0,0 +1,5 @@ +<<EOS
+foo\rbar
+baz\r
+EOS
+ diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt b/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt new file mode 100644 index 0000000000..1c58c05cc5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt @@ -0,0 +1,4 @@ +<<'eot'
+body
+eot + diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_returns.txt b/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_returns.txt new file mode 100644 index 0000000000..706cb0d5c0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_returns.txt @@ -0,0 +1,5 @@ +<<EOS +foo
bar
+baz +EOS + diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_returns_windows.txt b/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_returns_windows.txt new file mode 100644 index 0000000000..8ed84799b1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_extra_carriage_returns_windows.txt @@ -0,0 +1,5 @@ +<<EOS
+foo
bar
+baz
+EOS
+ diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt b/test/yarp/fixtures/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt new file mode 100644 index 0000000000..250e606f45 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt @@ -0,0 +1,4 @@ +<<EOS +foo\r#@bar +EOS + diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt b/test/yarp/fixtures/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt new file mode 100644 index 0000000000..12f97aff5e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt @@ -0,0 +1,4 @@ +<<EOS
+foo\r#@bar
+EOS
+ diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_not_global_interpolation.txt b/test/yarp/fixtures/seattlerb/heredoc_with_not_global_interpolation.txt new file mode 100644 index 0000000000..f94c2c9e27 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_not_global_interpolation.txt @@ -0,0 +1,3 @@ +<<-HEREDOC +#${ +HEREDOC diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_only_carriage_returns.txt b/test/yarp/fixtures/seattlerb/heredoc_with_only_carriage_returns.txt new file mode 100644 index 0000000000..468ba85cf7 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_only_carriage_returns.txt @@ -0,0 +1,6 @@ +<<EOS +
+
+\r +EOS + diff --git a/test/yarp/fixtures/seattlerb/heredoc_with_only_carriage_returns_windows.txt b/test/yarp/fixtures/seattlerb/heredoc_with_only_carriage_returns_windows.txt new file mode 100644 index 0000000000..e973eff110 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_with_only_carriage_returns_windows.txt @@ -0,0 +1,6 @@ +<<EOS
+
+
+\r
+EOS
+ diff --git a/test/yarp/fixtures/seattlerb/heredoc_wtf_I_hate_you.txt b/test/yarp/fixtures/seattlerb/heredoc_wtf_I_hate_you.txt new file mode 100644 index 0000000000..5c73907cae --- /dev/null +++ b/test/yarp/fixtures/seattlerb/heredoc_wtf_I_hate_you.txt @@ -0,0 +1,4 @@ +p <<-END+'b + a + END + c'+'d' diff --git a/test/yarp/fixtures/seattlerb/i_fucking_hate_line_numbers.txt b/test/yarp/fixtures/seattlerb/i_fucking_hate_line_numbers.txt new file mode 100644 index 0000000000..8008127dc9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/i_fucking_hate_line_numbers.txt @@ -0,0 +1,13 @@ +if true + p 1 + a.b 2 + c.d 3, 4 + e.f 5 + g.h 6, 7 + p(1) + a.b(2) + c.d(3, 4) + e.f(5) + g.h(6, 7) +end + diff --git a/test/yarp/fixtures/seattlerb/i_fucking_hate_line_numbers2.txt b/test/yarp/fixtures/seattlerb/i_fucking_hate_line_numbers2.txt new file mode 100644 index 0000000000..898a70fb75 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/i_fucking_hate_line_numbers2.txt @@ -0,0 +1,8 @@ +if true then + p('a') + b = 1 + p b + c =1 +end +a + diff --git a/test/yarp/fixtures/seattlerb/i_have_no_freakin_clue.txt b/test/yarp/fixtures/seattlerb/i_have_no_freakin_clue.txt new file mode 100644 index 0000000000..3259097492 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/i_have_no_freakin_clue.txt @@ -0,0 +1,2 @@ +1 ? b('') : 2 +a d: 3 diff --git a/test/yarp/fixtures/seattlerb/if_elsif.txt b/test/yarp/fixtures/seattlerb/if_elsif.txt new file mode 100644 index 0000000000..bc1c0a2b3d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/if_elsif.txt @@ -0,0 +1 @@ +if 1; elsif 2; end diff --git a/test/yarp/fixtures/seattlerb/if_symbol.txt b/test/yarp/fixtures/seattlerb/if_symbol.txt new file mode 100644 index 0000000000..8d6e958ede --- /dev/null +++ b/test/yarp/fixtures/seattlerb/if_symbol.txt @@ -0,0 +1 @@ +if f :x; end diff --git a/test/yarp/fixtures/seattlerb/in_expr_no_case.txt b/test/yarp/fixtures/seattlerb/in_expr_no_case.txt new file mode 100644 index 0000000000..40db7f868b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/in_expr_no_case.txt @@ -0,0 +1 @@ +'woot' in String diff --git a/test/yarp/fixtures/seattlerb/index_0.txt b/test/yarp/fixtures/seattlerb/index_0.txt new file mode 100644 index 0000000000..050d4566ba --- /dev/null +++ b/test/yarp/fixtures/seattlerb/index_0.txt @@ -0,0 +1 @@ +a[] = b diff --git a/test/yarp/fixtures/seattlerb/index_0_opasgn.txt b/test/yarp/fixtures/seattlerb/index_0_opasgn.txt new file mode 100644 index 0000000000..7189f0c3ea --- /dev/null +++ b/test/yarp/fixtures/seattlerb/index_0_opasgn.txt @@ -0,0 +1 @@ +a[] += b diff --git a/test/yarp/fixtures/seattlerb/integer_with_if_modifier.txt b/test/yarp/fixtures/seattlerb/integer_with_if_modifier.txt new file mode 100644 index 0000000000..bf2f621e92 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/integer_with_if_modifier.txt @@ -0,0 +1 @@ +1_234if true diff --git a/test/yarp/fixtures/seattlerb/interpolated_symbol_array_line_breaks.txt b/test/yarp/fixtures/seattlerb/interpolated_symbol_array_line_breaks.txt new file mode 100644 index 0000000000..f4c7cb9662 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/interpolated_symbol_array_line_breaks.txt @@ -0,0 +1,5 @@ +%I( +a +b +) +1 diff --git a/test/yarp/fixtures/seattlerb/interpolated_word_array_line_breaks.txt b/test/yarp/fixtures/seattlerb/interpolated_word_array_line_breaks.txt new file mode 100644 index 0000000000..d52b4789cf --- /dev/null +++ b/test/yarp/fixtures/seattlerb/interpolated_word_array_line_breaks.txt @@ -0,0 +1,5 @@ +%W( +a +b +) +1 diff --git a/test/yarp/fixtures/seattlerb/iter_args_1.txt b/test/yarp/fixtures/seattlerb/iter_args_1.txt new file mode 100644 index 0000000000..c890ef62c3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_1.txt @@ -0,0 +1 @@ +f { |a,b| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_10_1.txt b/test/yarp/fixtures/seattlerb/iter_args_10_1.txt new file mode 100644 index 0000000000..3f558c5392 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_10_1.txt @@ -0,0 +1 @@ +f { |a, b = 42, *c| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_10_2.txt b/test/yarp/fixtures/seattlerb/iter_args_10_2.txt new file mode 100644 index 0000000000..4158e79d14 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_10_2.txt @@ -0,0 +1 @@ +f { |a, b = 42, *c, &d| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_11_1.txt b/test/yarp/fixtures/seattlerb/iter_args_11_1.txt new file mode 100644 index 0000000000..f86175c1a0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_11_1.txt @@ -0,0 +1 @@ +f { |a, b = 42, *c, d| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_11_2.txt b/test/yarp/fixtures/seattlerb/iter_args_11_2.txt new file mode 100644 index 0000000000..e4b017e44a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_11_2.txt @@ -0,0 +1 @@ +f { |a, b = 42, *c, d, &e| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_2__19.txt b/test/yarp/fixtures/seattlerb/iter_args_2__19.txt new file mode 100644 index 0000000000..84dd744243 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_2__19.txt @@ -0,0 +1 @@ +f { |(a, b)| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_3.txt b/test/yarp/fixtures/seattlerb/iter_args_3.txt new file mode 100644 index 0000000000..261968ff13 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_3.txt @@ -0,0 +1 @@ +f { |a, (b, c), d| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_4.txt b/test/yarp/fixtures/seattlerb/iter_args_4.txt new file mode 100644 index 0000000000..7db4d43ad3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_4.txt @@ -0,0 +1 @@ +f { |a, *b, c| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_5.txt b/test/yarp/fixtures/seattlerb/iter_args_5.txt new file mode 100644 index 0000000000..088fcdfcc5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_5.txt @@ -0,0 +1 @@ +f { |a, &b| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_6.txt b/test/yarp/fixtures/seattlerb/iter_args_6.txt new file mode 100644 index 0000000000..e980ec064b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_6.txt @@ -0,0 +1 @@ +f { |a, b=42, c| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_7_1.txt b/test/yarp/fixtures/seattlerb/iter_args_7_1.txt new file mode 100644 index 0000000000..e1dbf4b312 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_7_1.txt @@ -0,0 +1 @@ +f { |a = 42, *b| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_7_2.txt b/test/yarp/fixtures/seattlerb/iter_args_7_2.txt new file mode 100644 index 0000000000..e46e78e00e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_7_2.txt @@ -0,0 +1 @@ +f { |a = 42, *b, &c| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_8_1.txt b/test/yarp/fixtures/seattlerb/iter_args_8_1.txt new file mode 100644 index 0000000000..a0ec82ea5b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_8_1.txt @@ -0,0 +1 @@ +f { |a = 42, *b, c| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_8_2.txt b/test/yarp/fixtures/seattlerb/iter_args_8_2.txt new file mode 100644 index 0000000000..a1839fe706 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_8_2.txt @@ -0,0 +1 @@ +f { |a = 42, *b, c, &d| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_9_1.txt b/test/yarp/fixtures/seattlerb/iter_args_9_1.txt new file mode 100644 index 0000000000..13e5b20fe7 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_9_1.txt @@ -0,0 +1 @@ +f { |a = 42, b| } diff --git a/test/yarp/fixtures/seattlerb/iter_args_9_2.txt b/test/yarp/fixtures/seattlerb/iter_args_9_2.txt new file mode 100644 index 0000000000..83f6e1e029 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_args_9_2.txt @@ -0,0 +1 @@ +f { |a = 42, b, &c| } diff --git a/test/yarp/fixtures/seattlerb/iter_kwarg.txt b/test/yarp/fixtures/seattlerb/iter_kwarg.txt new file mode 100644 index 0000000000..d4296cad76 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_kwarg.txt @@ -0,0 +1 @@ +a { |b: 1| } diff --git a/test/yarp/fixtures/seattlerb/iter_kwarg_kwsplat.txt b/test/yarp/fixtures/seattlerb/iter_kwarg_kwsplat.txt new file mode 100644 index 0000000000..dd0ea13a6f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/iter_kwarg_kwsplat.txt @@ -0,0 +1 @@ +a { |b: 1, **c| } diff --git a/test/yarp/fixtures/seattlerb/kill_me.txt b/test/yarp/fixtures/seattlerb/kill_me.txt new file mode 100644 index 0000000000..9f95860b82 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me.txt @@ -0,0 +1 @@ +f { |a, (b, *c)| } diff --git a/test/yarp/fixtures/seattlerb/kill_me2.txt b/test/yarp/fixtures/seattlerb/kill_me2.txt new file mode 100644 index 0000000000..8abfe3f634 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me2.txt @@ -0,0 +1 @@ +f { |*a, b| } diff --git a/test/yarp/fixtures/seattlerb/kill_me3.txt b/test/yarp/fixtures/seattlerb/kill_me3.txt new file mode 100644 index 0000000000..6f43ab7b1d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me3.txt @@ -0,0 +1 @@ +f { |*a, b, &c| } diff --git a/test/yarp/fixtures/seattlerb/kill_me4.txt b/test/yarp/fixtures/seattlerb/kill_me4.txt new file mode 100644 index 0000000000..7070e1e964 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me4.txt @@ -0,0 +1 @@ +a=b ? true: false diff --git a/test/yarp/fixtures/seattlerb/kill_me5.txt b/test/yarp/fixtures/seattlerb/kill_me5.txt new file mode 100644 index 0000000000..6d52692481 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me5.txt @@ -0,0 +1 @@ +f ->() { g do end } diff --git a/test/yarp/fixtures/seattlerb/kill_me_10.txt b/test/yarp/fixtures/seattlerb/kill_me_10.txt new file mode 100644 index 0000000000..89974f5114 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me_10.txt @@ -0,0 +1 @@ +f { |a, (*b, c)| } diff --git a/test/yarp/fixtures/seattlerb/kill_me_11.txt b/test/yarp/fixtures/seattlerb/kill_me_11.txt new file mode 100644 index 0000000000..911d037961 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me_11.txt @@ -0,0 +1 @@ +f { |a, (*)| } diff --git a/test/yarp/fixtures/seattlerb/kill_me_12.txt b/test/yarp/fixtures/seattlerb/kill_me_12.txt new file mode 100644 index 0000000000..2405a80ec1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me_12.txt @@ -0,0 +1 @@ +f { |a, (*, b)| } diff --git a/test/yarp/fixtures/seattlerb/kill_me_6.txt b/test/yarp/fixtures/seattlerb/kill_me_6.txt new file mode 100644 index 0000000000..3a45ae86fb --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me_6.txt @@ -0,0 +1 @@ +f { |a, (b, *c, d)| } diff --git a/test/yarp/fixtures/seattlerb/kill_me_7.txt b/test/yarp/fixtures/seattlerb/kill_me_7.txt new file mode 100644 index 0000000000..55272a1fc4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me_7.txt @@ -0,0 +1 @@ +f { |a, (b, *)| } diff --git a/test/yarp/fixtures/seattlerb/kill_me_8.txt b/test/yarp/fixtures/seattlerb/kill_me_8.txt new file mode 100644 index 0000000000..76740db4ff --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me_8.txt @@ -0,0 +1 @@ +f { |a, (b, *, c)| } diff --git a/test/yarp/fixtures/seattlerb/kill_me_9.txt b/test/yarp/fixtures/seattlerb/kill_me_9.txt new file mode 100644 index 0000000000..b65f7fd052 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/kill_me_9.txt @@ -0,0 +1 @@ +f { |a, (*b)| } diff --git a/test/yarp/fixtures/seattlerb/label_vs_string.txt b/test/yarp/fixtures/seattlerb/label_vs_string.txt new file mode 100644 index 0000000000..27ba8b64de --- /dev/null +++ b/test/yarp/fixtures/seattlerb/label_vs_string.txt @@ -0,0 +1,2 @@ +_buf << ': +' diff --git a/test/yarp/fixtures/seattlerb/lambda_do_vs_brace.txt b/test/yarp/fixtures/seattlerb/lambda_do_vs_brace.txt new file mode 100644 index 0000000000..bbf663a46a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lambda_do_vs_brace.txt @@ -0,0 +1,7 @@ +f -> do end + +f -> {} + +f ->() do end + +f ->() {} diff --git a/test/yarp/fixtures/seattlerb/lasgn_arg_rescue_arg.txt b/test/yarp/fixtures/seattlerb/lasgn_arg_rescue_arg.txt new file mode 100644 index 0000000000..0dad496c28 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lasgn_arg_rescue_arg.txt @@ -0,0 +1 @@ +a = 1 rescue 2 diff --git a/test/yarp/fixtures/seattlerb/lasgn_call_bracket_rescue_arg.txt b/test/yarp/fixtures/seattlerb/lasgn_call_bracket_rescue_arg.txt new file mode 100644 index 0000000000..3f63c0b748 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lasgn_call_bracket_rescue_arg.txt @@ -0,0 +1 @@ +a = b(1) rescue 2 diff --git a/test/yarp/fixtures/seattlerb/lasgn_call_nobracket_rescue_arg.txt b/test/yarp/fixtures/seattlerb/lasgn_call_nobracket_rescue_arg.txt new file mode 100644 index 0000000000..0e86f1587d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lasgn_call_nobracket_rescue_arg.txt @@ -0,0 +1 @@ +a = b 1 rescue 2 diff --git a/test/yarp/fixtures/seattlerb/lasgn_command.txt b/test/yarp/fixtures/seattlerb/lasgn_command.txt new file mode 100644 index 0000000000..aca35b880c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lasgn_command.txt @@ -0,0 +1 @@ +a = b.c 1 diff --git a/test/yarp/fixtures/seattlerb/lasgn_env.txt b/test/yarp/fixtures/seattlerb/lasgn_env.txt new file mode 100644 index 0000000000..aec10273e5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lasgn_env.txt @@ -0,0 +1 @@ +a = 42 diff --git a/test/yarp/fixtures/seattlerb/lasgn_ivar_env.txt b/test/yarp/fixtures/seattlerb/lasgn_ivar_env.txt new file mode 100644 index 0000000000..2fa8471c01 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lasgn_ivar_env.txt @@ -0,0 +1 @@ +@a = 42 diff --git a/test/yarp/fixtures/seattlerb/lasgn_lasgn_command_call.txt b/test/yarp/fixtures/seattlerb/lasgn_lasgn_command_call.txt new file mode 100644 index 0000000000..5147131852 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lasgn_lasgn_command_call.txt @@ -0,0 +1 @@ +a = b = c 1 diff --git a/test/yarp/fixtures/seattlerb/lasgn_middle_splat.txt b/test/yarp/fixtures/seattlerb/lasgn_middle_splat.txt new file mode 100644 index 0000000000..bb378ca680 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/lasgn_middle_splat.txt @@ -0,0 +1 @@ +a = b, *c, d diff --git a/test/yarp/fixtures/seattlerb/magic_encoding_comment.txt b/test/yarp/fixtures/seattlerb/magic_encoding_comment.txt new file mode 100644 index 0000000000..a02711ea05 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/magic_encoding_comment.txt @@ -0,0 +1,4 @@ +# encoding: utf-8 +class ExampleUTF8ClassNameVarietà; def self.è; così = :però; end +end + diff --git a/test/yarp/fixtures/seattlerb/masgn_anon_splat_arg.txt b/test/yarp/fixtures/seattlerb/masgn_anon_splat_arg.txt new file mode 100644 index 0000000000..b796a742ed --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_anon_splat_arg.txt @@ -0,0 +1 @@ +*, a = b diff --git a/test/yarp/fixtures/seattlerb/masgn_arg_colon_arg.txt b/test/yarp/fixtures/seattlerb/masgn_arg_colon_arg.txt new file mode 100644 index 0000000000..e0919793d4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_arg_colon_arg.txt @@ -0,0 +1 @@ +a, b::c = d diff --git a/test/yarp/fixtures/seattlerb/masgn_arg_ident.txt b/test/yarp/fixtures/seattlerb/masgn_arg_ident.txt new file mode 100644 index 0000000000..45f248d854 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_arg_ident.txt @@ -0,0 +1 @@ +a, b.C = d diff --git a/test/yarp/fixtures/seattlerb/masgn_arg_splat_arg.txt b/test/yarp/fixtures/seattlerb/masgn_arg_splat_arg.txt new file mode 100644 index 0000000000..05fe7c4d5f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_arg_splat_arg.txt @@ -0,0 +1 @@ +a, *b, c = d diff --git a/test/yarp/fixtures/seattlerb/masgn_colon2.txt b/test/yarp/fixtures/seattlerb/masgn_colon2.txt new file mode 100644 index 0000000000..4e4f838d7d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_colon2.txt @@ -0,0 +1 @@ +a, b::C = 1, 2 diff --git a/test/yarp/fixtures/seattlerb/masgn_colon3.txt b/test/yarp/fixtures/seattlerb/masgn_colon3.txt new file mode 100644 index 0000000000..46098ba8c5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_colon3.txt @@ -0,0 +1 @@ +::A, ::B = 1, 2 diff --git a/test/yarp/fixtures/seattlerb/masgn_command_call.txt b/test/yarp/fixtures/seattlerb/masgn_command_call.txt new file mode 100644 index 0000000000..6da01e8a31 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_command_call.txt @@ -0,0 +1 @@ +a, = b.c 1 diff --git a/test/yarp/fixtures/seattlerb/masgn_double_paren.txt b/test/yarp/fixtures/seattlerb/masgn_double_paren.txt new file mode 100644 index 0000000000..ffac0a85a3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_double_paren.txt @@ -0,0 +1 @@ +((a,b))=c diff --git a/test/yarp/fixtures/seattlerb/masgn_lhs_splat.txt b/test/yarp/fixtures/seattlerb/masgn_lhs_splat.txt new file mode 100644 index 0000000000..2419ef1671 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_lhs_splat.txt @@ -0,0 +1 @@ +*a = 1, 2, 3 diff --git a/test/yarp/fixtures/seattlerb/masgn_paren.txt b/test/yarp/fixtures/seattlerb/masgn_paren.txt new file mode 100644 index 0000000000..3889b9ff48 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_paren.txt @@ -0,0 +1 @@ +(a, b) = c.d diff --git a/test/yarp/fixtures/seattlerb/masgn_splat_arg.txt b/test/yarp/fixtures/seattlerb/masgn_splat_arg.txt new file mode 100644 index 0000000000..a7c91425b0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_splat_arg.txt @@ -0,0 +1 @@ +*a, b = c diff --git a/test/yarp/fixtures/seattlerb/masgn_splat_arg_arg.txt b/test/yarp/fixtures/seattlerb/masgn_splat_arg_arg.txt new file mode 100644 index 0000000000..46196bd703 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_splat_arg_arg.txt @@ -0,0 +1 @@ +*a, b, c = d diff --git a/test/yarp/fixtures/seattlerb/masgn_star.txt b/test/yarp/fixtures/seattlerb/masgn_star.txt new file mode 100644 index 0000000000..c5eea37de2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_star.txt @@ -0,0 +1 @@ +* = 1 diff --git a/test/yarp/fixtures/seattlerb/masgn_var_star_var.txt b/test/yarp/fixtures/seattlerb/masgn_var_star_var.txt new file mode 100644 index 0000000000..04089c36ac --- /dev/null +++ b/test/yarp/fixtures/seattlerb/masgn_var_star_var.txt @@ -0,0 +1 @@ +a, *, b = c diff --git a/test/yarp/fixtures/seattlerb/messy_op_asgn_lineno.txt b/test/yarp/fixtures/seattlerb/messy_op_asgn_lineno.txt new file mode 100644 index 0000000000..a7d1035ae3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/messy_op_asgn_lineno.txt @@ -0,0 +1 @@ +a (B::C *= d e) diff --git a/test/yarp/fixtures/seattlerb/method_call_assoc_trailing_comma.txt b/test/yarp/fixtures/seattlerb/method_call_assoc_trailing_comma.txt new file mode 100644 index 0000000000..86f0fbdfc9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/method_call_assoc_trailing_comma.txt @@ -0,0 +1 @@ +a.f(1=>2,) diff --git a/test/yarp/fixtures/seattlerb/method_call_trailing_comma.txt b/test/yarp/fixtures/seattlerb/method_call_trailing_comma.txt new file mode 100644 index 0000000000..1a155fba12 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/method_call_trailing_comma.txt @@ -0,0 +1 @@ +a.f(1,) diff --git a/test/yarp/fixtures/seattlerb/mlhs_back_anonsplat.txt b/test/yarp/fixtures/seattlerb/mlhs_back_anonsplat.txt new file mode 100644 index 0000000000..7389b95563 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/mlhs_back_anonsplat.txt @@ -0,0 +1 @@ +a, b, c, * = f diff --git a/test/yarp/fixtures/seattlerb/mlhs_back_splat.txt b/test/yarp/fixtures/seattlerb/mlhs_back_splat.txt new file mode 100644 index 0000000000..ec5d23889a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/mlhs_back_splat.txt @@ -0,0 +1 @@ +a, b, c, *s = f diff --git a/test/yarp/fixtures/seattlerb/mlhs_front_anonsplat.txt b/test/yarp/fixtures/seattlerb/mlhs_front_anonsplat.txt new file mode 100644 index 0000000000..67e569438c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/mlhs_front_anonsplat.txt @@ -0,0 +1 @@ +*, x, y, z = f diff --git a/test/yarp/fixtures/seattlerb/mlhs_front_splat.txt b/test/yarp/fixtures/seattlerb/mlhs_front_splat.txt new file mode 100644 index 0000000000..dabadc382d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/mlhs_front_splat.txt @@ -0,0 +1 @@ +*s, x, y, z = f diff --git a/test/yarp/fixtures/seattlerb/mlhs_keyword.txt b/test/yarp/fixtures/seattlerb/mlhs_keyword.txt new file mode 100644 index 0000000000..899e7f8ed3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/mlhs_keyword.txt @@ -0,0 +1 @@ +a.!=(true, true) diff --git a/test/yarp/fixtures/seattlerb/mlhs_mid_anonsplat.txt b/test/yarp/fixtures/seattlerb/mlhs_mid_anonsplat.txt new file mode 100644 index 0000000000..a70a7e531b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/mlhs_mid_anonsplat.txt @@ -0,0 +1 @@ +a, b, c, *, x, y, z = f diff --git a/test/yarp/fixtures/seattlerb/mlhs_mid_splat.txt b/test/yarp/fixtures/seattlerb/mlhs_mid_splat.txt new file mode 100644 index 0000000000..2d23fd3966 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/mlhs_mid_splat.txt @@ -0,0 +1 @@ +a, b, c, *s, x, y, z = f diff --git a/test/yarp/fixtures/seattlerb/mlhs_rescue.txt b/test/yarp/fixtures/seattlerb/mlhs_rescue.txt new file mode 100644 index 0000000000..b4c79ae32e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/mlhs_rescue.txt @@ -0,0 +1 @@ +a, b = f rescue 42 diff --git a/test/yarp/fixtures/seattlerb/module_comments.txt b/test/yarp/fixtures/seattlerb/module_comments.txt new file mode 100644 index 0000000000..f8d5aae571 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/module_comments.txt @@ -0,0 +1,10 @@ +# blah 1 + + # blah 2 + +module X + # blah 3 + def blah + # blah 4 + end +end diff --git a/test/yarp/fixtures/seattlerb/motherfuckin_leading_dots.txt b/test/yarp/fixtures/seattlerb/motherfuckin_leading_dots.txt new file mode 100644 index 0000000000..332dc8225c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/motherfuckin_leading_dots.txt @@ -0,0 +1,2 @@ +a +.b diff --git a/test/yarp/fixtures/seattlerb/motherfuckin_leading_dots2.txt b/test/yarp/fixtures/seattlerb/motherfuckin_leading_dots2.txt new file mode 100644 index 0000000000..fe73f641fe --- /dev/null +++ b/test/yarp/fixtures/seattlerb/motherfuckin_leading_dots2.txt @@ -0,0 +1,2 @@ +1 +..3 diff --git a/test/yarp/fixtures/seattlerb/multiline_hash_declaration.txt b/test/yarp/fixtures/seattlerb/multiline_hash_declaration.txt new file mode 100644 index 0000000000..21530307d2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/multiline_hash_declaration.txt @@ -0,0 +1,8 @@ +f(state: + { +}) + +f(state: { +}) + +f(state: {}) diff --git a/test/yarp/fixtures/seattlerb/non_interpolated_symbol_array_line_breaks.txt b/test/yarp/fixtures/seattlerb/non_interpolated_symbol_array_line_breaks.txt new file mode 100644 index 0000000000..1e14673f4e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/non_interpolated_symbol_array_line_breaks.txt @@ -0,0 +1,5 @@ +%i( +a +b +) +1 diff --git a/test/yarp/fixtures/seattlerb/non_interpolated_word_array_line_breaks.txt b/test/yarp/fixtures/seattlerb/non_interpolated_word_array_line_breaks.txt new file mode 100644 index 0000000000..79c1418770 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/non_interpolated_word_array_line_breaks.txt @@ -0,0 +1,5 @@ +%w( +a +b +) +1 diff --git a/test/yarp/fixtures/seattlerb/op_asgn_command_call.txt b/test/yarp/fixtures/seattlerb/op_asgn_command_call.txt new file mode 100644 index 0000000000..92c989cb0d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/op_asgn_command_call.txt @@ -0,0 +1 @@ +a ||= b.c 2 diff --git a/test/yarp/fixtures/seattlerb/op_asgn_dot_ident_command_call.txt b/test/yarp/fixtures/seattlerb/op_asgn_dot_ident_command_call.txt new file mode 100644 index 0000000000..89cfccda66 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/op_asgn_dot_ident_command_call.txt @@ -0,0 +1 @@ +A.B ||= c 1 diff --git a/test/yarp/fixtures/seattlerb/op_asgn_index_command_call.txt b/test/yarp/fixtures/seattlerb/op_asgn_index_command_call.txt new file mode 100644 index 0000000000..2bfced81fe --- /dev/null +++ b/test/yarp/fixtures/seattlerb/op_asgn_index_command_call.txt @@ -0,0 +1 @@ +a[:b] ||= c 1, 2 diff --git a/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_const_command_call.txt b/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_const_command_call.txt new file mode 100644 index 0000000000..a567f60e83 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_const_command_call.txt @@ -0,0 +1 @@ +A::B *= c d diff --git a/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_identifier1.txt b/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_identifier1.txt new file mode 100644 index 0000000000..0784b49167 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_identifier1.txt @@ -0,0 +1 @@ +A::b += 1 diff --git a/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_identifier_command_call.txt b/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_identifier_command_call.txt new file mode 100644 index 0000000000..c0f16eb3c1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/op_asgn_primary_colon_identifier_command_call.txt @@ -0,0 +1 @@ +A::b *= c d diff --git a/test/yarp/fixtures/seattlerb/op_asgn_val_dot_ident_command_call.txt b/test/yarp/fixtures/seattlerb/op_asgn_val_dot_ident_command_call.txt new file mode 100644 index 0000000000..69057abf04 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/op_asgn_val_dot_ident_command_call.txt @@ -0,0 +1 @@ +a.b ||= c 1 diff --git a/test/yarp/fixtures/seattlerb/parse_def_special_name.txt b/test/yarp/fixtures/seattlerb/parse_def_special_name.txt new file mode 100644 index 0000000000..8d7d06c688 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_def_special_name.txt @@ -0,0 +1 @@ +def next; end diff --git a/test/yarp/fixtures/seattlerb/parse_if_not_canonical.txt b/test/yarp/fixtures/seattlerb/parse_if_not_canonical.txt new file mode 100644 index 0000000000..1fd9bb7327 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_if_not_canonical.txt @@ -0,0 +1,2 @@ +if not var.nil? then 'foo' else 'bar' +end diff --git a/test/yarp/fixtures/seattlerb/parse_if_not_noncanonical.txt b/test/yarp/fixtures/seattlerb/parse_if_not_noncanonical.txt new file mode 100644 index 0000000000..1fd9bb7327 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_if_not_noncanonical.txt @@ -0,0 +1,2 @@ +if not var.nil? then 'foo' else 'bar' +end diff --git a/test/yarp/fixtures/seattlerb/parse_line_block.txt b/test/yarp/fixtures/seattlerb/parse_line_block.txt new file mode 100644 index 0000000000..21664649db --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_block.txt @@ -0,0 +1,2 @@ +a = 42 +p a diff --git a/test/yarp/fixtures/seattlerb/parse_line_block_inline_comment.txt b/test/yarp/fixtures/seattlerb/parse_line_block_inline_comment.txt new file mode 100644 index 0000000000..f55ced714f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_block_inline_comment.txt @@ -0,0 +1,3 @@ +a +b # comment +c diff --git a/test/yarp/fixtures/seattlerb/parse_line_block_inline_comment_leading_newlines.txt b/test/yarp/fixtures/seattlerb/parse_line_block_inline_comment_leading_newlines.txt new file mode 100644 index 0000000000..6f1fee62a0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_block_inline_comment_leading_newlines.txt @@ -0,0 +1,7 @@ + + + +a +b # comment +# another comment +c diff --git a/test/yarp/fixtures/seattlerb/parse_line_block_inline_multiline_comment.txt b/test/yarp/fixtures/seattlerb/parse_line_block_inline_multiline_comment.txt new file mode 100644 index 0000000000..b00de34dc0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_block_inline_multiline_comment.txt @@ -0,0 +1,4 @@ +a +b # comment +# another comment +c diff --git a/test/yarp/fixtures/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt b/test/yarp/fixtures/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt new file mode 100644 index 0000000000..73785eb794 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt @@ -0,0 +1,2 @@ +a @b + diff --git a/test/yarp/fixtures/seattlerb/parse_line_call_ivar_line_break_paren.txt b/test/yarp/fixtures/seattlerb/parse_line_call_ivar_line_break_paren.txt new file mode 100644 index 0000000000..6f136e6d6f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_call_ivar_line_break_paren.txt @@ -0,0 +1,2 @@ +a(@b +) diff --git a/test/yarp/fixtures/seattlerb/parse_line_call_no_args.txt b/test/yarp/fixtures/seattlerb/parse_line_call_no_args.txt new file mode 100644 index 0000000000..7900afd4b8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_call_no_args.txt @@ -0,0 +1,3 @@ +f do |x, y| + x + y +end diff --git a/test/yarp/fixtures/seattlerb/parse_line_defn_complex.txt b/test/yarp/fixtures/seattlerb/parse_line_defn_complex.txt new file mode 100644 index 0000000000..244a8e862b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_defn_complex.txt @@ -0,0 +1,5 @@ +def x(y) + p(y) + y *= 2 + return y; +end diff --git a/test/yarp/fixtures/seattlerb/parse_line_defn_no_parens.txt b/test/yarp/fixtures/seattlerb/parse_line_defn_no_parens.txt new file mode 100644 index 0000000000..373ca7fbec --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_defn_no_parens.txt @@ -0,0 +1,6 @@ +def f + +end + +def f +end diff --git a/test/yarp/fixtures/seattlerb/parse_line_defn_no_parens_args.txt b/test/yarp/fixtures/seattlerb/parse_line_defn_no_parens_args.txt new file mode 100644 index 0000000000..10f004a149 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_defn_no_parens_args.txt @@ -0,0 +1,2 @@ +def f a +end diff --git a/test/yarp/fixtures/seattlerb/parse_line_dot2.txt b/test/yarp/fixtures/seattlerb/parse_line_dot2.txt new file mode 100644 index 0000000000..61c7554221 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_dot2.txt @@ -0,0 +1,5 @@ +0.. +4 +a.. +b +c diff --git a/test/yarp/fixtures/seattlerb/parse_line_dot2_open.txt b/test/yarp/fixtures/seattlerb/parse_line_dot2_open.txt new file mode 100644 index 0000000000..b3e1e5aaf9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_dot2_open.txt @@ -0,0 +1,3 @@ +0.. +; a.. +; c diff --git a/test/yarp/fixtures/seattlerb/parse_line_dot3.txt b/test/yarp/fixtures/seattlerb/parse_line_dot3.txt new file mode 100644 index 0000000000..d1866b41de --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_dot3.txt @@ -0,0 +1,5 @@ +0... +4 +a... +b +c diff --git a/test/yarp/fixtures/seattlerb/parse_line_dot3_open.txt b/test/yarp/fixtures/seattlerb/parse_line_dot3_open.txt new file mode 100644 index 0000000000..38e7634b21 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_dot3_open.txt @@ -0,0 +1,3 @@ +0... +; a... +; c diff --git a/test/yarp/fixtures/seattlerb/parse_line_dstr_escaped_newline.txt b/test/yarp/fixtures/seattlerb/parse_line_dstr_escaped_newline.txt new file mode 100644 index 0000000000..29c1754915 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_dstr_escaped_newline.txt @@ -0,0 +1,3 @@ +"a\n#{ +}" +true diff --git a/test/yarp/fixtures/seattlerb/parse_line_dstr_soft_newline.txt b/test/yarp/fixtures/seattlerb/parse_line_dstr_soft_newline.txt new file mode 100644 index 0000000000..e4dbd7bcb2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_dstr_soft_newline.txt @@ -0,0 +1,4 @@ +"a +#{ +}" +true diff --git a/test/yarp/fixtures/seattlerb/parse_line_evstr_after_break.txt b/test/yarp/fixtures/seattlerb/parse_line_evstr_after_break.txt new file mode 100644 index 0000000000..c1d91a51c4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_evstr_after_break.txt @@ -0,0 +1,2 @@ +"a"\ +"#{b}" diff --git a/test/yarp/fixtures/seattlerb/parse_line_hash_lit.txt b/test/yarp/fixtures/seattlerb/parse_line_hash_lit.txt new file mode 100644 index 0000000000..25f8c90a06 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_hash_lit.txt @@ -0,0 +1,3 @@ +{ +:s1 => 1, +} diff --git a/test/yarp/fixtures/seattlerb/parse_line_heredoc.txt b/test/yarp/fixtures/seattlerb/parse_line_heredoc.txt new file mode 100644 index 0000000000..201339534c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_heredoc.txt @@ -0,0 +1,5 @@ + string = <<-HEREDOC.strip + very long string + HEREDOC + puts string + diff --git a/test/yarp/fixtures/seattlerb/parse_line_heredoc_evstr.txt b/test/yarp/fixtures/seattlerb/parse_line_heredoc_evstr.txt new file mode 100644 index 0000000000..d50844db4b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_heredoc_evstr.txt @@ -0,0 +1,4 @@ +<<-A +a +#{b} +A diff --git a/test/yarp/fixtures/seattlerb/parse_line_heredoc_hardnewline.txt b/test/yarp/fixtures/seattlerb/parse_line_heredoc_hardnewline.txt new file mode 100644 index 0000000000..3fbf0f2c26 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_heredoc_hardnewline.txt @@ -0,0 +1,7 @@ +<<-EOFOO +\n\n\n\n\n\n\n\n\n +EOFOO + +class Foo +end + diff --git a/test/yarp/fixtures/seattlerb/parse_line_heredoc_regexp_chars.txt b/test/yarp/fixtures/seattlerb/parse_line_heredoc_regexp_chars.txt new file mode 100644 index 0000000000..5dab9cf4e7 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_heredoc_regexp_chars.txt @@ -0,0 +1,5 @@ + string = <<-"^D" + very long string + ^D + puts string + diff --git a/test/yarp/fixtures/seattlerb/parse_line_iter_call_no_parens.txt b/test/yarp/fixtures/seattlerb/parse_line_iter_call_no_parens.txt new file mode 100644 index 0000000000..bf1b33c8a2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_iter_call_no_parens.txt @@ -0,0 +1,3 @@ +f a do |x, y| + x + y +end diff --git a/test/yarp/fixtures/seattlerb/parse_line_iter_call_parens.txt b/test/yarp/fixtures/seattlerb/parse_line_iter_call_parens.txt new file mode 100644 index 0000000000..25e9ea1c67 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_iter_call_parens.txt @@ -0,0 +1,3 @@ +f(a) do |x, y| + x + y +end diff --git a/test/yarp/fixtures/seattlerb/parse_line_multiline_str.txt b/test/yarp/fixtures/seattlerb/parse_line_multiline_str.txt new file mode 100644 index 0000000000..cdefb3c9b7 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_multiline_str.txt @@ -0,0 +1,3 @@ +"a +b" +1 diff --git a/test/yarp/fixtures/seattlerb/parse_line_multiline_str_literal_n.txt b/test/yarp/fixtures/seattlerb/parse_line_multiline_str_literal_n.txt new file mode 100644 index 0000000000..a179ba8c9c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_multiline_str_literal_n.txt @@ -0,0 +1,2 @@ +"a\nb" +1 diff --git a/test/yarp/fixtures/seattlerb/parse_line_newlines.txt b/test/yarp/fixtures/seattlerb/parse_line_newlines.txt new file mode 100644 index 0000000000..28b0c286e8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_newlines.txt @@ -0,0 +1,3 @@ +true + + diff --git a/test/yarp/fixtures/seattlerb/parse_line_op_asgn.txt b/test/yarp/fixtures/seattlerb/parse_line_op_asgn.txt new file mode 100644 index 0000000000..f2691c2ce4 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_op_asgn.txt @@ -0,0 +1,4 @@ + foo += + bar + baz + diff --git a/test/yarp/fixtures/seattlerb/parse_line_postexe.txt b/test/yarp/fixtures/seattlerb/parse_line_postexe.txt new file mode 100644 index 0000000000..fd8b318d19 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_postexe.txt @@ -0,0 +1,3 @@ +END { +foo +} diff --git a/test/yarp/fixtures/seattlerb/parse_line_preexe.txt b/test/yarp/fixtures/seattlerb/parse_line_preexe.txt new file mode 100644 index 0000000000..b3eda77ebc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_preexe.txt @@ -0,0 +1,3 @@ +BEGIN { +foo +} diff --git a/test/yarp/fixtures/seattlerb/parse_line_rescue.txt b/test/yarp/fixtures/seattlerb/parse_line_rescue.txt new file mode 100644 index 0000000000..a583160ce2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_rescue.txt @@ -0,0 +1,8 @@ +begin + a +rescue + b +rescue + c +end + diff --git a/test/yarp/fixtures/seattlerb/parse_line_return.txt b/test/yarp/fixtures/seattlerb/parse_line_return.txt new file mode 100644 index 0000000000..81021c2644 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_return.txt @@ -0,0 +1,6 @@ + def blah + if true then + return 42 + end + end + diff --git a/test/yarp/fixtures/seattlerb/parse_line_str_with_newline_escape.txt b/test/yarp/fixtures/seattlerb/parse_line_str_with_newline_escape.txt new file mode 100644 index 0000000000..b2b6bb8234 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_str_with_newline_escape.txt @@ -0,0 +1 @@ +a("\n", true) diff --git a/test/yarp/fixtures/seattlerb/parse_line_to_ary.txt b/test/yarp/fixtures/seattlerb/parse_line_to_ary.txt new file mode 100644 index 0000000000..590d0abd14 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_to_ary.txt @@ -0,0 +1,3 @@ +a, +b = c +d diff --git a/test/yarp/fixtures/seattlerb/parse_line_trailing_newlines.txt b/test/yarp/fixtures/seattlerb/parse_line_trailing_newlines.txt new file mode 100644 index 0000000000..422c2b7ab3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_line_trailing_newlines.txt @@ -0,0 +1,2 @@ +a +b diff --git a/test/yarp/fixtures/seattlerb/parse_opt_call_args_assocs_comma.txt b/test/yarp/fixtures/seattlerb/parse_opt_call_args_assocs_comma.txt new file mode 100644 index 0000000000..649c109ea1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_opt_call_args_assocs_comma.txt @@ -0,0 +1 @@ +1[2=>3,] diff --git a/test/yarp/fixtures/seattlerb/parse_opt_call_args_lit_comma.txt b/test/yarp/fixtures/seattlerb/parse_opt_call_args_lit_comma.txt new file mode 100644 index 0000000000..741cd4ffd1 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_opt_call_args_lit_comma.txt @@ -0,0 +1 @@ +1[2,] diff --git a/test/yarp/fixtures/seattlerb/parse_pattern_019.txt b/test/yarp/fixtures/seattlerb/parse_pattern_019.txt new file mode 100644 index 0000000000..1e8a75902d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_pattern_019.txt @@ -0,0 +1,5 @@ +case 0 +in -1..1 + true +end + diff --git a/test/yarp/fixtures/seattlerb/parse_pattern_044.txt b/test/yarp/fixtures/seattlerb/parse_pattern_044.txt new file mode 100644 index 0000000000..a6a0ac6c1c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_pattern_044.txt @@ -0,0 +1,5 @@ +case obj +in Object[] + true +end + diff --git a/test/yarp/fixtures/seattlerb/parse_pattern_051.txt b/test/yarp/fixtures/seattlerb/parse_pattern_051.txt new file mode 100644 index 0000000000..b7cf769f50 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_pattern_051.txt @@ -0,0 +1,5 @@ +case [0, 1, 2] +in [0, 1,] + true +end + diff --git a/test/yarp/fixtures/seattlerb/parse_pattern_058.txt b/test/yarp/fixtures/seattlerb/parse_pattern_058.txt new file mode 100644 index 0000000000..bd7537098e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_pattern_058.txt @@ -0,0 +1,5 @@ +case {a: 0} +in {a:, **rest} + [a, rest] +end + diff --git a/test/yarp/fixtures/seattlerb/parse_pattern_058_2.txt b/test/yarp/fixtures/seattlerb/parse_pattern_058_2.txt new file mode 100644 index 0000000000..eb1b3cd8ab --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_pattern_058_2.txt @@ -0,0 +1,5 @@ +case {a: 0} +in {a:, **} + [a] +end + diff --git a/test/yarp/fixtures/seattlerb/parse_pattern_069.txt b/test/yarp/fixtures/seattlerb/parse_pattern_069.txt new file mode 100644 index 0000000000..f43dff8959 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_pattern_069.txt @@ -0,0 +1,5 @@ +case :a +in Object[b: 1] + 1 +end + diff --git a/test/yarp/fixtures/seattlerb/parse_pattern_076.txt b/test/yarp/fixtures/seattlerb/parse_pattern_076.txt new file mode 100644 index 0000000000..bb947605b3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_pattern_076.txt @@ -0,0 +1,5 @@ +case {a: 1} +in {a: 1, **nil} + true +end + diff --git a/test/yarp/fixtures/seattlerb/parse_until_not_canonical.txt b/test/yarp/fixtures/seattlerb/parse_until_not_canonical.txt new file mode 100644 index 0000000000..4de38968dc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_until_not_canonical.txt @@ -0,0 +1,3 @@ +until not var.nil? + 'foo' +end diff --git a/test/yarp/fixtures/seattlerb/parse_until_not_noncanonical.txt b/test/yarp/fixtures/seattlerb/parse_until_not_noncanonical.txt new file mode 100644 index 0000000000..4de38968dc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_until_not_noncanonical.txt @@ -0,0 +1,3 @@ +until not var.nil? + 'foo' +end diff --git a/test/yarp/fixtures/seattlerb/parse_while_not_canonical.txt b/test/yarp/fixtures/seattlerb/parse_while_not_canonical.txt new file mode 100644 index 0000000000..5aa464167f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_while_not_canonical.txt @@ -0,0 +1,3 @@ +while not var.nil? + 'foo' +end diff --git a/test/yarp/fixtures/seattlerb/parse_while_not_noncanonical.txt b/test/yarp/fixtures/seattlerb/parse_while_not_noncanonical.txt new file mode 100644 index 0000000000..5aa464167f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/parse_while_not_noncanonical.txt @@ -0,0 +1,3 @@ +while not var.nil? + 'foo' +end diff --git a/test/yarp/fixtures/seattlerb/pctW_lineno.txt b/test/yarp/fixtures/seattlerb/pctW_lineno.txt new file mode 100644 index 0000000000..b222ff0174 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/pctW_lineno.txt @@ -0,0 +1,5 @@ +%W(a\nb +c d +e\ +f +gy h\y i\y) diff --git a/test/yarp/fixtures/seattlerb/pct_Q_backslash_nl.txt b/test/yarp/fixtures/seattlerb/pct_Q_backslash_nl.txt new file mode 100644 index 0000000000..d88e1fd21c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/pct_Q_backslash_nl.txt @@ -0,0 +1,2 @@ +%Q{ \ +} diff --git a/test/yarp/fixtures/seattlerb/pct_nl.txt b/test/yarp/fixtures/seattlerb/pct_nl.txt new file mode 100644 index 0000000000..2cee1cdd44 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/pct_nl.txt @@ -0,0 +1,3 @@ +x = % + + diff --git a/test/yarp/fixtures/seattlerb/pct_w_heredoc_interp_nested.txt b/test/yarp/fixtures/seattlerb/pct_w_heredoc_interp_nested.txt new file mode 100644 index 0000000000..4e084661bf --- /dev/null +++ b/test/yarp/fixtures/seattlerb/pct_w_heredoc_interp_nested.txt @@ -0,0 +1,4 @@ +%W( 1 #{<<A} 3 +2 +A + 4 5 ) diff --git a/test/yarp/fixtures/seattlerb/pipe_semicolon.txt b/test/yarp/fixtures/seattlerb/pipe_semicolon.txt new file mode 100644 index 0000000000..e692cc434f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/pipe_semicolon.txt @@ -0,0 +1 @@ +a.b do | ; c | end diff --git a/test/yarp/fixtures/seattlerb/pipe_space.txt b/test/yarp/fixtures/seattlerb/pipe_space.txt new file mode 100644 index 0000000000..7f0df799b9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/pipe_space.txt @@ -0,0 +1 @@ +a.b do | | end diff --git a/test/yarp/fixtures/seattlerb/qWords_space.txt b/test/yarp/fixtures/seattlerb/qWords_space.txt new file mode 100644 index 0000000000..a8299ba3f8 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/qWords_space.txt @@ -0,0 +1 @@ +%W( ) diff --git a/test/yarp/fixtures/seattlerb/qsymbols.txt b/test/yarp/fixtures/seattlerb/qsymbols.txt new file mode 100644 index 0000000000..cb9ff09ae0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/qsymbols.txt @@ -0,0 +1 @@ +%I(a b c) diff --git a/test/yarp/fixtures/seattlerb/qsymbols_empty.txt b/test/yarp/fixtures/seattlerb/qsymbols_empty.txt new file mode 100644 index 0000000000..10a3279907 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/qsymbols_empty.txt @@ -0,0 +1 @@ +%I() diff --git a/test/yarp/fixtures/seattlerb/qsymbols_empty_space.txt b/test/yarp/fixtures/seattlerb/qsymbols_empty_space.txt new file mode 100644 index 0000000000..819f16ad06 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/qsymbols_empty_space.txt @@ -0,0 +1 @@ +%I( ) diff --git a/test/yarp/fixtures/seattlerb/qsymbols_interp.txt b/test/yarp/fixtures/seattlerb/qsymbols_interp.txt new file mode 100644 index 0000000000..2f34883867 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/qsymbols_interp.txt @@ -0,0 +1 @@ +%I(a b#{1+1} c) diff --git a/test/yarp/fixtures/seattlerb/quoted_symbol_hash_arg.txt b/test/yarp/fixtures/seattlerb/quoted_symbol_hash_arg.txt new file mode 100644 index 0000000000..4f1295ef18 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/quoted_symbol_hash_arg.txt @@ -0,0 +1 @@ +puts 'a': {} diff --git a/test/yarp/fixtures/seattlerb/quoted_symbol_keys.txt b/test/yarp/fixtures/seattlerb/quoted_symbol_keys.txt new file mode 100644 index 0000000000..c6a946723d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/quoted_symbol_keys.txt @@ -0,0 +1 @@ +{ 'a': :b } diff --git a/test/yarp/fixtures/seattlerb/qw_escape.txt b/test/yarp/fixtures/seattlerb/qw_escape.txt new file mode 100644 index 0000000000..a94a0e5dcb --- /dev/null +++ b/test/yarp/fixtures/seattlerb/qw_escape.txt @@ -0,0 +1 @@ +%q(\') diff --git a/test/yarp/fixtures/seattlerb/qw_escape_term.txt b/test/yarp/fixtures/seattlerb/qw_escape_term.txt new file mode 100644 index 0000000000..9734fc3421 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/qw_escape_term.txt @@ -0,0 +1 @@ +%q|blah blah \| blah blah| diff --git a/test/yarp/fixtures/seattlerb/qwords_empty.txt b/test/yarp/fixtures/seattlerb/qwords_empty.txt new file mode 100644 index 0000000000..69cc6679d6 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/qwords_empty.txt @@ -0,0 +1 @@ +%w() diff --git a/test/yarp/fixtures/seattlerb/read_escape_unicode_curlies.txt b/test/yarp/fixtures/seattlerb/read_escape_unicode_curlies.txt new file mode 100644 index 0000000000..427b94cc4d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/read_escape_unicode_curlies.txt @@ -0,0 +1 @@ +?\u{00a0} diff --git a/test/yarp/fixtures/seattlerb/read_escape_unicode_h4.txt b/test/yarp/fixtures/seattlerb/read_escape_unicode_h4.txt new file mode 100644 index 0000000000..71aa7a4347 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/read_escape_unicode_h4.txt @@ -0,0 +1 @@ +?\u00a0 diff --git a/test/yarp/fixtures/seattlerb/regexp.txt b/test/yarp/fixtures/seattlerb/regexp.txt new file mode 100644 index 0000000000..bc06458c5c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/regexp.txt @@ -0,0 +1,9 @@ +/wtf/ + +/wtf/m + +/wtf/n + +/wtf/nm + +/wtf/nmnmnmnm diff --git a/test/yarp/fixtures/seattlerb/regexp_esc_C_slash.txt b/test/yarp/fixtures/seattlerb/regexp_esc_C_slash.txt new file mode 100644 index 0000000000..1fd9207c66 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/regexp_esc_C_slash.txt @@ -0,0 +1 @@ +/\cC\d/ diff --git a/test/yarp/fixtures/seattlerb/regexp_esc_u.txt b/test/yarp/fixtures/seattlerb/regexp_esc_u.txt new file mode 100644 index 0000000000..b91704fb0a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/regexp_esc_u.txt @@ -0,0 +1 @@ +/[\u0021-\u0027]/ diff --git a/test/yarp/fixtures/seattlerb/regexp_escape_extended.txt b/test/yarp/fixtures/seattlerb/regexp_escape_extended.txt new file mode 100644 index 0000000000..73dcbab69c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/regexp_escape_extended.txt @@ -0,0 +1 @@ +/\“/ diff --git a/test/yarp/fixtures/seattlerb/regexp_unicode_curlies.txt b/test/yarp/fixtures/seattlerb/regexp_unicode_curlies.txt new file mode 100644 index 0000000000..5a02bd92ca --- /dev/null +++ b/test/yarp/fixtures/seattlerb/regexp_unicode_curlies.txt @@ -0,0 +1,3 @@ +/\u{c0de babe}/ + +/\u{df}/ diff --git a/test/yarp/fixtures/seattlerb/required_kwarg_no_value.txt b/test/yarp/fixtures/seattlerb/required_kwarg_no_value.txt new file mode 100644 index 0000000000..453bcbb33b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/required_kwarg_no_value.txt @@ -0,0 +1,2 @@ +def x a:, b: +end diff --git a/test/yarp/fixtures/seattlerb/rescue_do_end_ensure_result.txt b/test/yarp/fixtures/seattlerb/rescue_do_end_ensure_result.txt new file mode 100644 index 0000000000..7049be66c5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/rescue_do_end_ensure_result.txt @@ -0,0 +1,5 @@ +proc do + :begin +ensure + :ensure +end.call diff --git a/test/yarp/fixtures/seattlerb/rescue_do_end_no_raise.txt b/test/yarp/fixtures/seattlerb/rescue_do_end_no_raise.txt new file mode 100644 index 0000000000..5f16ec2f15 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/rescue_do_end_no_raise.txt @@ -0,0 +1,9 @@ +tap do + :begin +rescue + :rescue +else + :else +ensure + :ensure +end diff --git a/test/yarp/fixtures/seattlerb/rescue_do_end_raised.txt b/test/yarp/fixtures/seattlerb/rescue_do_end_raised.txt new file mode 100644 index 0000000000..d04215eb48 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/rescue_do_end_raised.txt @@ -0,0 +1,5 @@ +tap do + raise +ensure + :ensure +end diff --git a/test/yarp/fixtures/seattlerb/rescue_do_end_rescued.txt b/test/yarp/fixtures/seattlerb/rescue_do_end_rescued.txt new file mode 100644 index 0000000000..4b377511f0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/rescue_do_end_rescued.txt @@ -0,0 +1,9 @@ +tap do + raise +rescue + :rescue +else + :else +ensure + :ensure +end diff --git a/test/yarp/fixtures/seattlerb/rescue_in_block.txt b/test/yarp/fixtures/seattlerb/rescue_in_block.txt new file mode 100644 index 0000000000..c6e834aa1e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/rescue_in_block.txt @@ -0,0 +1,4 @@ +blah do +rescue + stuff +end diff --git a/test/yarp/fixtures/seattlerb/rescue_parens.txt b/test/yarp/fixtures/seattlerb/rescue_parens.txt new file mode 100644 index 0000000000..f0eb4db417 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/rescue_parens.txt @@ -0,0 +1 @@ +a (b rescue c) diff --git a/test/yarp/fixtures/seattlerb/return_call_assocs.txt b/test/yarp/fixtures/seattlerb/return_call_assocs.txt new file mode 100644 index 0000000000..34ea778f17 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/return_call_assocs.txt @@ -0,0 +1,11 @@ +return 1, :z => 1 + +return 1, :z => 1, :w => 2 + +return y :z=>1 + +return y z:1 + +return y(z:1) + +return y(z=>1) diff --git a/test/yarp/fixtures/seattlerb/rhs_asgn.txt b/test/yarp/fixtures/seattlerb/rhs_asgn.txt new file mode 100644 index 0000000000..ca581031e2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/rhs_asgn.txt @@ -0,0 +1 @@ +42 => n diff --git a/test/yarp/fixtures/seattlerb/ruby21_numbers.txt b/test/yarp/fixtures/seattlerb/ruby21_numbers.txt new file mode 100644 index 0000000000..34ceb63a0c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/ruby21_numbers.txt @@ -0,0 +1 @@ +[1i, 2r, 3ri] diff --git a/test/yarp/fixtures/seattlerb/safe_attrasgn.txt b/test/yarp/fixtures/seattlerb/safe_attrasgn.txt new file mode 100644 index 0000000000..1279e02cfc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_attrasgn.txt @@ -0,0 +1 @@ +a&.b = 1 diff --git a/test/yarp/fixtures/seattlerb/safe_attrasgn_constant.txt b/test/yarp/fixtures/seattlerb/safe_attrasgn_constant.txt new file mode 100644 index 0000000000..3a17ac6bcf --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_attrasgn_constant.txt @@ -0,0 +1 @@ +a&.B = 1 diff --git a/test/yarp/fixtures/seattlerb/safe_call.txt b/test/yarp/fixtures/seattlerb/safe_call.txt new file mode 100644 index 0000000000..8ecd27e0fe --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_call.txt @@ -0,0 +1 @@ +a&.b diff --git a/test/yarp/fixtures/seattlerb/safe_call_after_newline.txt b/test/yarp/fixtures/seattlerb/safe_call_after_newline.txt new file mode 100644 index 0000000000..58e3fba554 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_call_after_newline.txt @@ -0,0 +1,2 @@ +a +&.b diff --git a/test/yarp/fixtures/seattlerb/safe_call_dot_parens.txt b/test/yarp/fixtures/seattlerb/safe_call_dot_parens.txt new file mode 100644 index 0000000000..5def076640 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_call_dot_parens.txt @@ -0,0 +1 @@ +a&.() diff --git a/test/yarp/fixtures/seattlerb/safe_call_newline.txt b/test/yarp/fixtures/seattlerb/safe_call_newline.txt new file mode 100644 index 0000000000..8778b46585 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_call_newline.txt @@ -0,0 +1,2 @@ +a&.b + diff --git a/test/yarp/fixtures/seattlerb/safe_call_operator.txt b/test/yarp/fixtures/seattlerb/safe_call_operator.txt new file mode 100644 index 0000000000..f3fe2b0392 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_call_operator.txt @@ -0,0 +1 @@ +a&.> 1 diff --git a/test/yarp/fixtures/seattlerb/safe_call_rhs_newline.txt b/test/yarp/fixtures/seattlerb/safe_call_rhs_newline.txt new file mode 100644 index 0000000000..d3b07b77b2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_call_rhs_newline.txt @@ -0,0 +1,2 @@ +c = a&.b + diff --git a/test/yarp/fixtures/seattlerb/safe_calls.txt b/test/yarp/fixtures/seattlerb/safe_calls.txt new file mode 100644 index 0000000000..eafeace500 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_calls.txt @@ -0,0 +1 @@ +a&.b&.c(1) diff --git a/test/yarp/fixtures/seattlerb/safe_op_asgn.txt b/test/yarp/fixtures/seattlerb/safe_op_asgn.txt new file mode 100644 index 0000000000..8915a1cccf --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_op_asgn.txt @@ -0,0 +1 @@ +a&.b += x 1 diff --git a/test/yarp/fixtures/seattlerb/safe_op_asgn2.txt b/test/yarp/fixtures/seattlerb/safe_op_asgn2.txt new file mode 100644 index 0000000000..0960b2548b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/safe_op_asgn2.txt @@ -0,0 +1,2 @@ +a&.b ||= +x; diff --git a/test/yarp/fixtures/seattlerb/slashy_newlines_within_string.txt b/test/yarp/fixtures/seattlerb/slashy_newlines_within_string.txt new file mode 100644 index 0000000000..cdf7a70cb7 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/slashy_newlines_within_string.txt @@ -0,0 +1,7 @@ +puts "hello\ + my\ + dear\ + friend" + +a + b + diff --git a/test/yarp/fixtures/seattlerb/stabby_arg_no_paren.txt b/test/yarp/fixtures/seattlerb/stabby_arg_no_paren.txt new file mode 100644 index 0000000000..f16bed4ccf --- /dev/null +++ b/test/yarp/fixtures/seattlerb/stabby_arg_no_paren.txt @@ -0,0 +1 @@ +->a{} diff --git a/test/yarp/fixtures/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt b/test/yarp/fixtures/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt new file mode 100644 index 0000000000..87a7c5dad3 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt @@ -0,0 +1 @@ +->(b, c=1, *d, e, &f){} diff --git a/test/yarp/fixtures/seattlerb/stabby_block_iter_call.txt b/test/yarp/fixtures/seattlerb/stabby_block_iter_call.txt new file mode 100644 index 0000000000..5e9e3f5527 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/stabby_block_iter_call.txt @@ -0,0 +1,4 @@ +x -> () do +a.b do +end +end diff --git a/test/yarp/fixtures/seattlerb/stabby_block_iter_call_no_target_with_arg.txt b/test/yarp/fixtures/seattlerb/stabby_block_iter_call_no_target_with_arg.txt new file mode 100644 index 0000000000..7235394751 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/stabby_block_iter_call_no_target_with_arg.txt @@ -0,0 +1,4 @@ +x -> () do +a(1) do +end +end diff --git a/test/yarp/fixtures/seattlerb/stabby_block_kw.txt b/test/yarp/fixtures/seattlerb/stabby_block_kw.txt new file mode 100644 index 0000000000..74d9e0a328 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/stabby_block_kw.txt @@ -0,0 +1 @@ +-> (k:42) { } diff --git a/test/yarp/fixtures/seattlerb/stabby_block_kw__required.txt b/test/yarp/fixtures/seattlerb/stabby_block_kw__required.txt new file mode 100644 index 0000000000..bd16ffa73c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/stabby_block_kw__required.txt @@ -0,0 +1 @@ +-> (k:) { } diff --git a/test/yarp/fixtures/seattlerb/stabby_proc_scope.txt b/test/yarp/fixtures/seattlerb/stabby_proc_scope.txt new file mode 100644 index 0000000000..1f7f9ff52b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/stabby_proc_scope.txt @@ -0,0 +1 @@ +->(a; b) {} diff --git a/test/yarp/fixtures/seattlerb/str_backslashes.txt b/test/yarp/fixtures/seattlerb/str_backslashes.txt new file mode 100644 index 0000000000..5fd6da361b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_backslashes.txt @@ -0,0 +1 @@ +x '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' diff --git a/test/yarp/fixtures/seattlerb/str_double_double_escaped_newline.txt b/test/yarp/fixtures/seattlerb/str_double_double_escaped_newline.txt new file mode 100644 index 0000000000..2b022a55f6 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_double_double_escaped_newline.txt @@ -0,0 +1 @@ +a "\\n";b diff --git a/test/yarp/fixtures/seattlerb/str_double_escaped_newline.txt b/test/yarp/fixtures/seattlerb/str_double_escaped_newline.txt new file mode 100644 index 0000000000..e439225344 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_double_escaped_newline.txt @@ -0,0 +1 @@ +a "\n";b diff --git a/test/yarp/fixtures/seattlerb/str_double_newline.txt b/test/yarp/fixtures/seattlerb/str_double_newline.txt new file mode 100644 index 0000000000..2d439506ca --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_double_newline.txt @@ -0,0 +1,2 @@ +a " +";b diff --git a/test/yarp/fixtures/seattlerb/str_evstr.txt b/test/yarp/fixtures/seattlerb/str_evstr.txt new file mode 100644 index 0000000000..86c6d1526d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_evstr.txt @@ -0,0 +1 @@ +"a #{b}" diff --git a/test/yarp/fixtures/seattlerb/str_evstr_escape.txt b/test/yarp/fixtures/seattlerb/str_evstr_escape.txt new file mode 100644 index 0000000000..517dfd4778 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_evstr_escape.txt @@ -0,0 +1 @@ +"a #{b}\302\275" diff --git a/test/yarp/fixtures/seattlerb/str_heredoc_interp.txt b/test/yarp/fixtures/seattlerb/str_heredoc_interp.txt new file mode 100644 index 0000000000..aa2613008c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_heredoc_interp.txt @@ -0,0 +1,5 @@ +<<"" +#{x} +blah2 + + diff --git a/test/yarp/fixtures/seattlerb/str_interp_ternary_or_label.txt b/test/yarp/fixtures/seattlerb/str_interp_ternary_or_label.txt new file mode 100644 index 0000000000..fe6637678f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_interp_ternary_or_label.txt @@ -0,0 +1 @@ +"#{a.b? ? ""+a+"": ""}" diff --git a/test/yarp/fixtures/seattlerb/str_lit_concat_bad_encodings.txt b/test/yarp/fixtures/seattlerb/str_lit_concat_bad_encodings.txt new file mode 100644 index 0000000000..f4eb3971bb --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_lit_concat_bad_encodings.txt @@ -0,0 +1,2 @@ +"\xE3\xD3\x8B\xE3\x83\xBC\x83\xE3\x83\xE3\x82\xB3\xA3\x82\x99" \ + "\xE3\x83\xB3\xE3\x83\x8F\xE3\x82\x9A\xC3\xBD;foo@bar.com" diff --git a/test/yarp/fixtures/seattlerb/str_newline_hash_line_number.txt b/test/yarp/fixtures/seattlerb/str_newline_hash_line_number.txt new file mode 100644 index 0000000000..9c8f702000 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_newline_hash_line_number.txt @@ -0,0 +1,2 @@ +"\n\n\n\n#" +1 diff --git a/test/yarp/fixtures/seattlerb/str_pct_Q_nested.txt b/test/yarp/fixtures/seattlerb/str_pct_Q_nested.txt new file mode 100644 index 0000000000..1f3d0613e5 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_pct_Q_nested.txt @@ -0,0 +1 @@ +%Q[before [#{nest}] after] diff --git a/test/yarp/fixtures/seattlerb/str_pct_nested_nested.txt b/test/yarp/fixtures/seattlerb/str_pct_nested_nested.txt new file mode 100644 index 0000000000..cb12415215 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_pct_nested_nested.txt @@ -0,0 +1 @@ +%{ { #{ "#{1}" } } } diff --git a/test/yarp/fixtures/seattlerb/str_pct_q.txt b/test/yarp/fixtures/seattlerb/str_pct_q.txt new file mode 100644 index 0000000000..65d71197c9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_pct_q.txt @@ -0,0 +1 @@ +%q{a b c} diff --git a/test/yarp/fixtures/seattlerb/str_single_double_escaped_newline.txt b/test/yarp/fixtures/seattlerb/str_single_double_escaped_newline.txt new file mode 100644 index 0000000000..2ff0aec111 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_single_double_escaped_newline.txt @@ -0,0 +1 @@ +a '\\n';b diff --git a/test/yarp/fixtures/seattlerb/str_single_escaped_newline.txt b/test/yarp/fixtures/seattlerb/str_single_escaped_newline.txt new file mode 100644 index 0000000000..5abb8d6334 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_single_escaped_newline.txt @@ -0,0 +1 @@ +a '\n';b diff --git a/test/yarp/fixtures/seattlerb/str_single_newline.txt b/test/yarp/fixtures/seattlerb/str_single_newline.txt new file mode 100644 index 0000000000..1033cc7e96 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_single_newline.txt @@ -0,0 +1,2 @@ +a ' +';b diff --git a/test/yarp/fixtures/seattlerb/str_str.txt b/test/yarp/fixtures/seattlerb/str_str.txt new file mode 100644 index 0000000000..388d777dc2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_str.txt @@ -0,0 +1 @@ +"a #{'b'}" diff --git a/test/yarp/fixtures/seattlerb/str_str_str.txt b/test/yarp/fixtures/seattlerb/str_str_str.txt new file mode 100644 index 0000000000..d64e01dc5d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/str_str_str.txt @@ -0,0 +1 @@ +"a #{'b'} c" diff --git a/test/yarp/fixtures/seattlerb/super_arg.txt b/test/yarp/fixtures/seattlerb/super_arg.txt new file mode 100644 index 0000000000..1b19ecd51c --- /dev/null +++ b/test/yarp/fixtures/seattlerb/super_arg.txt @@ -0,0 +1 @@ +super 42 diff --git a/test/yarp/fixtures/seattlerb/symbol_empty.txt b/test/yarp/fixtures/seattlerb/symbol_empty.txt new file mode 100644 index 0000000000..cbb260bb4e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/symbol_empty.txt @@ -0,0 +1 @@ +:'' diff --git a/test/yarp/fixtures/seattlerb/symbol_list.txt b/test/yarp/fixtures/seattlerb/symbol_list.txt new file mode 100644 index 0000000000..d357195184 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/symbol_list.txt @@ -0,0 +1 @@ +%I[#{a} #{b}] diff --git a/test/yarp/fixtures/seattlerb/symbols.txt b/test/yarp/fixtures/seattlerb/symbols.txt new file mode 100644 index 0000000000..3ec930ce66 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/symbols.txt @@ -0,0 +1 @@ +%i(a b c) diff --git a/test/yarp/fixtures/seattlerb/symbols_empty.txt b/test/yarp/fixtures/seattlerb/symbols_empty.txt new file mode 100644 index 0000000000..840948efb2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/symbols_empty.txt @@ -0,0 +1 @@ +%i() diff --git a/test/yarp/fixtures/seattlerb/symbols_empty_space.txt b/test/yarp/fixtures/seattlerb/symbols_empty_space.txt new file mode 100644 index 0000000000..16c2e68a2b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/symbols_empty_space.txt @@ -0,0 +1 @@ +%i( ) diff --git a/test/yarp/fixtures/seattlerb/symbols_interp.txt b/test/yarp/fixtures/seattlerb/symbols_interp.txt new file mode 100644 index 0000000000..63116eb632 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/symbols_interp.txt @@ -0,0 +1 @@ +%i(a b#{1+1} c) diff --git a/test/yarp/fixtures/seattlerb/thingy.txt b/test/yarp/fixtures/seattlerb/thingy.txt new file mode 100644 index 0000000000..5aa598c4be --- /dev/null +++ b/test/yarp/fixtures/seattlerb/thingy.txt @@ -0,0 +1,3 @@ +f.(42) + +f::(42) diff --git a/test/yarp/fixtures/seattlerb/uminus_float.txt b/test/yarp/fixtures/seattlerb/uminus_float.txt new file mode 100644 index 0000000000..1344bfd9db --- /dev/null +++ b/test/yarp/fixtures/seattlerb/uminus_float.txt @@ -0,0 +1 @@ +-0.0 diff --git a/test/yarp/fixtures/seattlerb/unary_minus.txt b/test/yarp/fixtures/seattlerb/unary_minus.txt new file mode 100644 index 0000000000..66af866f85 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/unary_minus.txt @@ -0,0 +1 @@ +-a diff --git a/test/yarp/fixtures/seattlerb/unary_plus.txt b/test/yarp/fixtures/seattlerb/unary_plus.txt new file mode 100644 index 0000000000..daea40b71e --- /dev/null +++ b/test/yarp/fixtures/seattlerb/unary_plus.txt @@ -0,0 +1 @@ ++a diff --git a/test/yarp/fixtures/seattlerb/unary_plus_on_literal.txt b/test/yarp/fixtures/seattlerb/unary_plus_on_literal.txt new file mode 100644 index 0000000000..752331df47 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/unary_plus_on_literal.txt @@ -0,0 +1 @@ ++:a diff --git a/test/yarp/fixtures/seattlerb/unary_tilde.txt b/test/yarp/fixtures/seattlerb/unary_tilde.txt new file mode 100644 index 0000000000..f0a507b437 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/unary_tilde.txt @@ -0,0 +1 @@ +~a diff --git a/test/yarp/fixtures/seattlerb/utf8_bom.txt b/test/yarp/fixtures/seattlerb/utf8_bom.txt new file mode 100644 index 0000000000..c8e9e1cbae --- /dev/null +++ b/test/yarp/fixtures/seattlerb/utf8_bom.txt @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby -w +p 0 + diff --git a/test/yarp/fixtures/seattlerb/when_splat.txt b/test/yarp/fixtures/seattlerb/when_splat.txt new file mode 100644 index 0000000000..6b79f5dad0 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/when_splat.txt @@ -0,0 +1 @@ +case a; when *b then; end diff --git a/test/yarp/fixtures/seattlerb/words_interp.txt b/test/yarp/fixtures/seattlerb/words_interp.txt new file mode 100644 index 0000000000..f71486495b --- /dev/null +++ b/test/yarp/fixtures/seattlerb/words_interp.txt @@ -0,0 +1 @@ +%W(#{1}b) diff --git a/test/yarp/fixtures/seattlerb/wtf.txt b/test/yarp/fixtures/seattlerb/wtf.txt new file mode 100644 index 0000000000..7396a9a76f --- /dev/null +++ b/test/yarp/fixtures/seattlerb/wtf.txt @@ -0,0 +1 @@ +->(a, b=nil) { p [a, b] } diff --git a/test/yarp/fixtures/seattlerb/wtf_7.txt b/test/yarp/fixtures/seattlerb/wtf_7.txt new file mode 100644 index 0000000000..048358bbdc --- /dev/null +++ b/test/yarp/fixtures/seattlerb/wtf_7.txt @@ -0,0 +1 @@ +a.b (1) {c} diff --git a/test/yarp/fixtures/seattlerb/wtf_8.txt b/test/yarp/fixtures/seattlerb/wtf_8.txt new file mode 100644 index 0000000000..ba1cbc235d --- /dev/null +++ b/test/yarp/fixtures/seattlerb/wtf_8.txt @@ -0,0 +1 @@ +a::b (1) {c} diff --git a/test/yarp/fixtures/seattlerb/yield_arg.txt b/test/yarp/fixtures/seattlerb/yield_arg.txt new file mode 100644 index 0000000000..7e752f62e2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/yield_arg.txt @@ -0,0 +1 @@ +yield 42 diff --git a/test/yarp/fixtures/seattlerb/yield_call_assocs.txt b/test/yarp/fixtures/seattlerb/yield_call_assocs.txt new file mode 100644 index 0000000000..95963dfcf9 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/yield_call_assocs.txt @@ -0,0 +1,11 @@ +yield 1, :z => 1 + +yield 1, :z => 1, :w => 2 + +yield y :z=>1 + +yield y z:1 + +yield y(z:1) + +yield y(z=>1) diff --git a/test/yarp/fixtures/seattlerb/yield_empty_parens.txt b/test/yarp/fixtures/seattlerb/yield_empty_parens.txt new file mode 100644 index 0000000000..cff86b243a --- /dev/null +++ b/test/yarp/fixtures/seattlerb/yield_empty_parens.txt @@ -0,0 +1 @@ +yield() diff --git a/test/yarp/fixtures/seattlerb/zomg_sometimes_i_hate_this_project.txt b/test/yarp/fixtures/seattlerb/zomg_sometimes_i_hate_this_project.txt new file mode 100644 index 0000000000..112b75c5f2 --- /dev/null +++ b/test/yarp/fixtures/seattlerb/zomg_sometimes_i_hate_this_project.txt @@ -0,0 +1,5 @@ + { + a: lambda { b ? c() : d }, + e: nil, + } + diff --git a/test/yarp/fixtures/single_quote_heredocs.txt b/test/yarp/fixtures/single_quote_heredocs.txt new file mode 100644 index 0000000000..0122b2726c --- /dev/null +++ b/test/yarp/fixtures/single_quote_heredocs.txt @@ -0,0 +1,3 @@ +<<-'EOS' + cd L:\Work\MG3710IQPro\Develop +EOS diff --git a/test/yarp/fixtures/strings.txt b/test/yarp/fixtures/strings.txt new file mode 100644 index 0000000000..9d6cc77fc7 --- /dev/null +++ b/test/yarp/fixtures/strings.txt @@ -0,0 +1,99 @@ +%%abc% + +%^abc^ + +%&abc& + +%*abc* + +%_abc_ + +%+abc+ + +%-abc- + +%:abc: + +%;abc; + +%'abc' + +%~abc~ + +%?abc? + +%w{ } + +%/abc/ + +%`abc` + +"#@@foo" + +%\abc\ + +%{aaa #{bbb} ccc} + +%[foo[]] + +"foo" + + +"bar" + +%q{abc} + +%s[abc] + +%{abc} + +'' + +"abc" + +"#@---" + +"aaa #{bbb} ccc" + +'abc' + +%w[a b c] + +%w[a[] b[[]] c[]] + +%w[foo\ bar \#{1}] + +%w[foo\ bar baz] + +%W[a b#{c}d e] + +%W[a b c] + +%w[ + a + b + c +] + +'\' foo \' bar' + +'\\ foo \\ bar' + +"#$foo" + +"#@foo" + +"\x7 \x23 \x61" + +"\7 \43 \141" + +%[abc] + +%(abc) + +%@abc@ + +%$abc$ + +?a + +%Q{abc} diff --git a/test/yarp/fixtures/super.txt b/test/yarp/fixtures/super.txt new file mode 100644 index 0000000000..b685035970 --- /dev/null +++ b/test/yarp/fixtures/super.txt @@ -0,0 +1,7 @@ +super + +super() + +super(1) + +super(1, 2, 3) diff --git a/test/yarp/fixtures/symbols.txt b/test/yarp/fixtures/symbols.txt new file mode 100644 index 0000000000..7563eb874f --- /dev/null +++ b/test/yarp/fixtures/symbols.txt @@ -0,0 +1,93 @@ +:'abc' + +:"#{var}" + +:"abc#{1}" + +[:Υ, :ά, :ŗ, :ρ] + +:-@ + +:- + +:% + +:| + +:+@ + +:+ + +:/ + +:** + +:* + +:~@ + +[1, 1.0, 1r, 1i] + +:~ + +:a + +%i[a b c] + +%i[a b#{1} #{2}c d#{3}f] + +%I[a b#{1} #{2}c d#{3}f] + +:@@a + +:👍 + +%i[a\b] + +:$a + +:@a + +:do + +:& + +:` + +:!@ + +:!~ + +:! + +:[] + +:[]= + +:^ + +:== + +:=== + +:=~ + +:>= + +:>> + +:> + +:<=> + +:<= + +:<< + +:< + +:__LINE__ + +:__FILE__ + +:__ENCODING__ diff --git a/test/yarp/fixtures/ternary_operator.txt b/test/yarp/fixtures/ternary_operator.txt new file mode 100644 index 0000000000..ca00ead321 --- /dev/null +++ b/test/yarp/fixtures/ternary_operator.txt @@ -0,0 +1,13 @@ +a ? b : c + +a ? defined? b : defined? c + +empty??true:nil + +empty??false:nil + +empty??nil:nil + +a??nil:nil + +a ?var1 : var2 diff --git a/test/yarp/fixtures/tilde_heredocs.txt b/test/yarp/fixtures/tilde_heredocs.txt new file mode 100644 index 0000000000..415d4d42c8 --- /dev/null +++ b/test/yarp/fixtures/tilde_heredocs.txt @@ -0,0 +1,91 @@ +<<~EOF + a +EOF + +<<~EOF + a + b + c +EOF + +<<~EOF + #{1} a +EOF + +<<~EOF + a #{1} +EOF + +<<~EOF + a + #{1} +EOF + +<<~EOF + a + #{1} +EOF + +<<~EOF + a + b +EOF + +<<~EOF + a + b +EOF + +<<~EOF + a + b +EOF + +<<~'EOF' + a #{1} +EOF + +<<~EOF + a + b +EOF + +<<~EOF + a + b +EOF + +<<~EOF + a + b +EOF + +<<~EOF + a + + b +EOF + +<<~EOF + a + + b +EOF + +<<~EOF + a + + + + b +EOF + +<<~EOF + + #{1}a + EOF + +<<~EOT + #{1} + b +EOT diff --git a/test/yarp/fixtures/undef.txt b/test/yarp/fixtures/undef.txt new file mode 100644 index 0000000000..129c349433 --- /dev/null +++ b/test/yarp/fixtures/undef.txt @@ -0,0 +1,17 @@ +undef a + +undef a, b + +undef if + +undef <=> + +undef :a + +undef :a, :b, :c + +undef :'abc' + +undef :"abc#{1}" + +undef Constant diff --git a/test/yarp/fixtures/unescaping.txt b/test/yarp/fixtures/unescaping.txt new file mode 100644 index 0000000000..e2da5a696c --- /dev/null +++ b/test/yarp/fixtures/unescaping.txt @@ -0,0 +1,9 @@ +["\c#{1}"] + +/\c#{1}/ + +"\c#{1}" + +<<~HERE + \c#{1} +HERE diff --git a/test/yarp/fixtures/unless.txt b/test/yarp/fixtures/unless.txt new file mode 100644 index 0000000000..410d460e69 --- /dev/null +++ b/test/yarp/fixtures/unless.txt @@ -0,0 +1,14 @@ +unless true; 1; end + +unless true +1 else 2 end + +1 unless true + +break unless true + +next unless true + +return unless true + +foo :a, :b unless bar? diff --git a/test/yarp/fixtures/unparser/LICENSE b/test/yarp/fixtures/unparser/LICENSE new file mode 100644 index 0000000000..44863d7afb --- /dev/null +++ b/test/yarp/fixtures/unparser/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2013 Markus Schirp + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/test/yarp/fixtures/unparser/corpus/literal/alias.txt b/test/yarp/fixtures/unparser/corpus/literal/alias.txt new file mode 100644 index 0000000000..fb06a295e8 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/alias.txt @@ -0,0 +1,2 @@ +alias $foo $bar +alias :foo :bar diff --git a/test/yarp/fixtures/unparser/corpus/literal/assignment.txt b/test/yarp/fixtures/unparser/corpus/literal/assignment.txt new file mode 100644 index 0000000000..84a74e8928 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/assignment.txt @@ -0,0 +1,53 @@ +$a = 1 +($a, $b) = [1, 2] +((a,), b) = 1 +(*a) = [] +(*foo) = [1, 2] +(@@a, @@b) = [1, 2] +(@a, @b) = [1, 2] +(a, (b, c)) = [1, [2, 3]] +(a, *) = [1, 2] +(a, *foo) = [1, 2] +(a, b) = [1, 2] +(a, b) = foo +(a,) = foo +(a.foo, a.bar) = [1, 2] +(a[*foo], a[1]) = [1, 2] +(a[0], a[1]) = [1, 2] +(*c.foo) = 1 +::Foo = ::Bar +@@a = 1 +@a = 1 +CONST = 1 +Name::Spaced::CONST = 1 +a = ((b, c) = 1) +a = 1 +foo = foo() +foo.[]=() +foo.[]=(1, 2) +foo.[]=true +foo[*index] = value +foo[1..2] = value +foo[] = 1 +foo[a, b] = value +foo[index] = value +x = %() +x.x=%() +x[%()] = bar +a[%()] ||= bar +@a ||= %() +x = <<-HEREDOC + #{} +HEREDOC +x.x=<<-HEREDOC + #{} +HEREDOC +x[] = <<-HEREDOC + #{} +HEREDOC +a[<<-HEREDOC] ||= bar + #{} +HEREDOC +@a ||= <<-HEREDOC + #{} +HEREDOC diff --git a/test/yarp/fixtures/unparser/corpus/literal/block.txt b/test/yarp/fixtures/unparser/corpus/literal/block.txt new file mode 100644 index 0000000000..b2baf1dc12 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/block.txt @@ -0,0 +1,96 @@ +foo { +} +foo { |a| +} +foo { |a,| +} +foo { |a,; x| +} +foo { |a, b| +} +foo(1) { + nil +} +foo { |a, *b| + nil +} +foo { |a, *| + nil +} +foo { + bar +} +foo.bar { |(a, b), c| + d +} +foo.bar { |*a; b| +} +foo.bar { |a; b| +} +foo.bar { |; a, b| +} +foo.bar { |*| + d +} +foo.bar { |(*)| + d +} +foo.bar { |((*))| + d +} +foo.bar { |(a, (*))| + d +} +foo.bar { |(a, b)| + d +} +foo.bar { +}.baz +m do +rescue Exception => e +end +m do + foo +rescue Exception => bar + bar +end +m do + bar +rescue SomeError, *bar + baz +end +m do + bar +rescue SomeError, *bar => exception + baz +end +m do + bar +rescue *bar + baz +end +m do + bar +rescue LoadError +end +m do + bar +rescue +else + baz +end +m do + bar +rescue *bar => exception + baz +end +m do +ensure +end +m do +rescue +ensure +end +bar { + _1 + _2 +} diff --git a/test/yarp/fixtures/unparser/corpus/literal/case.txt b/test/yarp/fixtures/unparser/corpus/literal/case.txt new file mode 100644 index 0000000000..c455fd7c39 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/case.txt @@ -0,0 +1,37 @@ +case +when bar + baz +when baz + bar +end +case foo +when bar +when baz + bar +end +case foo +when bar + baz +when baz + bar +end +case foo +when bar, baz + :other +end +case foo +when *bar + :value +end +case foo +when bar + baz +else + :foo +end +case foo +when *bar | baz +end +case foo +when *bar.baz=1 +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/class.txt b/test/yarp/fixtures/unparser/corpus/literal/class.txt new file mode 100644 index 0000000000..f0198625e9 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/class.txt @@ -0,0 +1,35 @@ +class A +end + +class << a +end + +class << a + b +end + +class A::B +end + +class A::B::C +end + +class A < B +end + +class A < B::C +end + +class A::B < C::D +end + +class A + include(B.new) + + def foo + :bar + end +end + +class ::A +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/control.txt b/test/yarp/fixtures/unparser/corpus/literal/control.txt new file mode 100644 index 0000000000..648782bc96 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/control.txt @@ -0,0 +1,15 @@ +next +return +break +retry +redo +return 1 +return 1, 2 +return true ? 1 : 2 +break true ? 1 : 2 +next true ? 1 : 2 +return true, if true + 1 +else + 2 +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/def.txt b/test/yarp/fixtures/unparser/corpus/literal/def.txt new file mode 100644 index 0000000000..61339bd4a6 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/def.txt @@ -0,0 +1,134 @@ +def foo + a +rescue + b +else + c +ensure + d +end + +def foo + a rescue b +rescue + b +else + c +ensure + d +end + +def foo(bar:, baz:) +end + +def foo +end + +def foo + bar +end + +def foo + foo +rescue + bar +ensure + baz +end + +def foo + bar +ensure + baz +end + +def foo + bar +rescue + baz +end + +def foo(bar) + bar +end + +def foo(bar, baz) + bar +end + +def foo(bar = ()) + bar +end + +def foo(bar = (baz; nil)) +end + +def foo(bar = true) + bar +end + +def foo(bar, baz = true) + bar +end + +def foo(bar: 1) +end + +def foo(bar: baz) +end + +def foo(bar: bar()) +end + +def foo(*) + bar +end + +def foo(*bar) + bar +end + +def foo(bar, *baz) + bar +end + +def foo(baz = true, *bor) + bar +end + +def foo(baz = true, *bor, &block) + bar +end + +def foo(bar, baz = true, *bor) + bar +end + +def foo(&block) + bar +end + +def foo(bar, &block) + bar +end + +def foo + bar + baz +end + +def f(((a))) +end + +def foo(bar:, baz: "value") +end + +def f + <<-HEREDOC + #{} + HEREDOC +end + +def f + %() +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/defined.txt b/test/yarp/fixtures/unparser/corpus/literal/defined.txt new file mode 100644 index 0000000000..65e7c370fd --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/defined.txt @@ -0,0 +1,3 @@ +defined?(@foo) +defined?(Foo) +defined?(((a, b) = [1, 2])) diff --git a/test/yarp/fixtures/unparser/corpus/literal/defs.txt b/test/yarp/fixtures/unparser/corpus/literal/defs.txt new file mode 100644 index 0000000000..b70aa9efc5 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/defs.txt @@ -0,0 +1,40 @@ +def self.foo +end + +def self.foo + bar +end + +def self.foo + bar + baz +end + +def Foo.bar + bar +end + +def (foo { |bar| +}).bar + bar +end + +def (foo(1)).bar + bar +end + +def (Foo::Bar.baz).bar + baz +end + +def (Foo::Bar).bar + baz +end + +def Foo.bar + baz +end + +def foo.bar + baz +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/dstr.txt b/test/yarp/fixtures/unparser/corpus/literal/dstr.txt new file mode 100644 index 0000000000..8a912d28ed --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/dstr.txt @@ -0,0 +1,37 @@ +if true + "#{}a" +end +if true + <<-HEREDOC +a +#{}a +b + HEREDOC + x +end +<<-HEREDOC +\#{}\#{} +#{} +#{} +#{} +HEREDOC +<<-HEREDOC rescue nil +#{} +a +HEREDOC +"a#$1" +"a#$a" +"a#@a" +"a#@@a" +if true + return <<-HEREDOC + #{42} + HEREDOC +end +foo(<<-HEREDOC) + #{bar} +HEREDOC +foo(<<-HEREDOC) { |x| + #{bar} +HEREDOC +} diff --git a/test/yarp/fixtures/unparser/corpus/literal/empty.txt b/test/yarp/fixtures/unparser/corpus/literal/empty.txt new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/empty.txt diff --git a/test/yarp/fixtures/unparser/corpus/literal/empty_begin.txt b/test/yarp/fixtures/unparser/corpus/literal/empty_begin.txt new file mode 100644 index 0000000000..6a452c185a --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/empty_begin.txt @@ -0,0 +1 @@ +() diff --git a/test/yarp/fixtures/unparser/corpus/literal/flipflop.txt b/test/yarp/fixtures/unparser/corpus/literal/flipflop.txt new file mode 100644 index 0000000000..8badd39d57 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/flipflop.txt @@ -0,0 +1,6 @@ +if ((i == 4)..(i == 4)) + foo +end +if ((i == 4)...(i == 4)) + foo +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/for.txt b/test/yarp/fixtures/unparser/corpus/literal/for.txt new file mode 100644 index 0000000000..4c19a352d9 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/for.txt @@ -0,0 +1,12 @@ +bar(for a in bar do + baz +end) +for a in bar do + baz +end +for (a, *b) in bar do + baz +end +for (a, b) in bar do + baz +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/hookexe.txt b/test/yarp/fixtures/unparser/corpus/literal/hookexe.txt new file mode 100644 index 0000000000..08f14f47b3 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/hookexe.txt @@ -0,0 +1,7 @@ +BEGIN { + foo +} +bar +END { + baz +} diff --git a/test/yarp/fixtures/unparser/corpus/literal/if.txt b/test/yarp/fixtures/unparser/corpus/literal/if.txt new file mode 100644 index 0000000000..0c13801f9e --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/if.txt @@ -0,0 +1,36 @@ +if /foo/ + bar +end +if 3 + 9 +end +if 4 + 5 +else + 6 +end +unless 3 + nil +end +unless 3 + 9 +end +if foo +end + +module A + foo = bar if foo +end + +module B + foo = bar unless foo +end +unless foo + foo = bar +end +if foo { |pair| + pair +} + pair = :foo + foo +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/kwbegin.txt b/test/yarp/fixtures/unparser/corpus/literal/kwbegin.txt new file mode 100644 index 0000000000..6cc1e74ca6 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/kwbegin.txt @@ -0,0 +1,80 @@ +begin +rescue +end + +begin +ensure +end + +begin + a +end + +begin + a +rescue + b +end + +begin + a + b +rescue + b +end + +begin +rescue A +end + +begin +rescue A => foo +end + +begin + a +rescue A + b +rescue B + c +ensure + d +end + +begin + begin + foo + bar + rescue + end +rescue + baz + bar +end + +begin + raise(Exception) rescue foo = bar +rescue Exception +end + +begin + foo +rescue => bar + bar +end + +begin + foo +rescue Exception, Other => bar + bar +end + +begin + bar +rescue SomeError, *bar => exception + baz +end + +class << self + undef :bar rescue nil +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/lambda.txt b/test/yarp/fixtures/unparser/corpus/literal/lambda.txt new file mode 100644 index 0000000000..4eb722dad1 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/lambda.txt @@ -0,0 +1,13 @@ +lambda { +} +lambda { |a, b| + a +} +->() { +} +->(a) { +} +->(a, b) { +} +->(a, b; c) { +} diff --git a/test/yarp/fixtures/unparser/corpus/literal/literal.txt b/test/yarp/fixtures/unparser/corpus/literal/literal.txt new file mode 100644 index 0000000000..2fc7cd1d79 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/literal.txt @@ -0,0 +1,91 @@ +{ "foo" => <<-HEREDOC, "bar" => :baz } + #{} +HEREDOC +{ "foo" => %(), "bar" => :baz } +["foo", %()] +a(<<-HEREDOC).a + #{} +HEREDOC +a(%()).a +{ "foo" => <<-HEREDOC, **baz } + #{} +HEREDOC +{ "foo" => %(), **baz } +"#@a #@@a #$a" +0 +++1 +1 +1 +1r +1.5r +1.3r +5i +-5i +0.6i +-0.6i +1000000000000000000000000000000i +1ri +"foo" "bar" +"foobar #{baz}" +"foo#{1}bar" +"\\\\#{}" +"#{}\#{}" +"\#{}#{}" +"foo\\\#{@bar}" +"\"" +"foo bar" +"foo\nbar" +`foo` +`foo#{@bar}` +`)` +`\`` +`"` +:foo +:"A B" +:foo +:"A B" +:"A\"B" +:"" +/foo/ +/[^-+',.\/:@[:alnum:]\[\]]+/ +/foo#{@bar}/ +/foo#{@bar}/imx +/#{"\u0000"}/ +/\n/ +/\n/ +/\n/x +/\/\//x +:"foo#{bar}baz" +:"#{"foo"}" +(0.0 / 0.0)..1 +1..(0.0 / 0.0) +(0.0 / 0.0)..100 +-0.1 +0.1 +[1, 2] +[1, (), n2] +[1] +[] +[1, *@foo] +[*@foo, 1] +[*@foo, *@baz] +{} +{ () => () } +{ 1 => 2 } +{ 1 => 2, 3 => 4 } +{ a: (1 rescue foo), b: 2 } +{ a: 1, b: 2 } +{ a: :a } +{ :"a b" => 1 } +{ :-@ => 1 } +"#{} +#{}\na" +foo { + "#{} +#{}\na" +} +:"a\\ +b" +` x +#{foo} +#` diff --git a/test/yarp/fixtures/unparser/corpus/literal/module.txt b/test/yarp/fixtures/unparser/corpus/literal/module.txt new file mode 100644 index 0000000000..cec03f3bfd --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/module.txt @@ -0,0 +1,16 @@ +module A +end + +module A::B +end + +module A::B::C +end + +module A + include(B.new) + + def foo + :bar + end +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/opasgn.txt b/test/yarp/fixtures/unparser/corpus/literal/opasgn.txt new file mode 100644 index 0000000000..5858d773d0 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/opasgn.txt @@ -0,0 +1,24 @@ +a += 2 +a -= 2 +a **= 2 +a *= 2 +a /= 2 +a &&= b +a ||= 2 +(a ||= 2).bar +(h ||= {})[k] = v +a.b += 2 +a.b -= 2 +a.b **= 2 +a.b *= 2 +a.b /= 2 +a.b &&= b +a.b ||= 2 +a[b] += 2 +a[b] -= 2 +a[b] **= 2 +a[b] *= 2 +a[b] /= 2 +a[b] &&= b +a[b] ||= 2 +foo.A += 1 diff --git a/test/yarp/fixtures/unparser/corpus/literal/pattern.txt b/test/yarp/fixtures/unparser/corpus/literal/pattern.txt new file mode 100644 index 0000000000..7cfaa4dc67 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/pattern.txt @@ -0,0 +1,41 @@ +case foo +in A[1, 2, *a, 3] then + true +in [1, 2, ] then + y +in A(x:) then + true +in {**a} then + true +in {} if true then + true +in [x, y, *] then + true +in {a: 1, aa: 2} then + true +in {} then + true +in {**nil} then + true +in {"a": 1} then + true +in 1 | 2 then + true +in 1 => a then + true +in ^x then + true +in 1 +in 2 then + true +else + true +end +case foo +in A[1, 2, *a, 3] +end +case foo +in A +else +end +1 in [a] diff --git a/test/yarp/fixtures/unparser/corpus/literal/pragma.txt b/test/yarp/fixtures/unparser/corpus/literal/pragma.txt new file mode 100644 index 0000000000..4f6dd71b38 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/pragma.txt @@ -0,0 +1,4 @@ +__ENCODING__ +__FILE__ +__LINE__ +__dir__ diff --git a/test/yarp/fixtures/unparser/corpus/literal/range.txt b/test/yarp/fixtures/unparser/corpus/literal/range.txt new file mode 100644 index 0000000000..eb1f3874c0 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/range.txt @@ -0,0 +1,4 @@ +(1..) +1..2 +(1...) +1...2 diff --git a/test/yarp/fixtures/unparser/corpus/literal/rescue.txt b/test/yarp/fixtures/unparser/corpus/literal/rescue.txt new file mode 100644 index 0000000000..a787816808 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/rescue.txt @@ -0,0 +1,3 @@ +foo rescue bar +foo rescue return bar +x = (foo rescue return bar) diff --git a/test/yarp/fixtures/unparser/corpus/literal/send.txt b/test/yarp/fixtures/unparser/corpus/literal/send.txt new file mode 100644 index 0000000000..4361cf73cb --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/send.txt @@ -0,0 +1,83 @@ +module A + foo ||= ((a, _) = b) +end + +module A + local = 1 + local.bar +end +class A +end.bar +module A +end.bar +begin +rescue +end.bar +case (def foo +end; :bar) +when bar +end.baz +case foo +when bar +end.baz +class << self +end.bar +def self.foo +end.bar +def foo +end.bar +until foo +end.bar +while foo +end.bar +loop { +}.bar +if foo +end.baz +(/bar/ =~ :foo).foo +(1..2).max +(foo =~ /bar/).foo +/bar/ =~ :foo +/bar/ =~ foo +1..2.max +A.foo +FOO() +a&.b +a.foo +foo +foo << (bar * baz) +foo =~ /bar/ +foo(&(foo || bar)) +foo(&block) +foo(*args, &block) +foo(*arguments) +foo(1, 2) +foo(bar) +foo(bar, *args) +foo(foo =~ /bar/) +foo.bar(&baz) +foo.bar(*arga, foo, *argb) +foo.bar(*args) +foo.bar(*args, foo) +foo.bar(:baz, &baz) +foo.bar(baz: boz) +foo.bar(foo, "baz" => boz) +foo.bar(foo, *args) +foo.bar(foo, *args, &block) +foo.bar(foo, {}) +foo.bar({ foo: boz }, boz) +foo.bar=:baz +foo(a: b) +foo.&(a: b) +foo.&(**a) +foo[*baz] +foo[1, 2] +foo[] +self.foo +self.foo=:bar +(a + b) / (c - d) +(a + b) / c.-(e, f) +(a + b) / c.-(*f) +x(**foo) +foo&.! +foo.~(b) diff --git a/test/yarp/fixtures/unparser/corpus/literal/since/27.txt b/test/yarp/fixtures/unparser/corpus/literal/since/27.txt new file mode 100644 index 0000000000..c332f9e48e --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/since/27.txt @@ -0,0 +1,4 @@ +-> { + _1 + _2 +} +(..1) diff --git a/test/yarp/fixtures/unparser/corpus/literal/since/30.txt b/test/yarp/fixtures/unparser/corpus/literal/since/30.txt new file mode 100644 index 0000000000..b73328a4b0 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/since/30.txt @@ -0,0 +1,4 @@ +1 => [a] +1 => [*] +1 in [*, 42, *] +1 in [*, a, *foo] diff --git a/test/yarp/fixtures/unparser/corpus/literal/since/31.txt b/test/yarp/fixtures/unparser/corpus/literal/since/31.txt new file mode 100644 index 0000000000..504eb94d5b --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/since/31.txt @@ -0,0 +1,7 @@ +def foo(&) + bar(&) +end + +def foo(a, &) + bar(&) +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/since/32.txt b/test/yarp/fixtures/unparser/corpus/literal/since/32.txt new file mode 100644 index 0000000000..fa279f11cf --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/since/32.txt @@ -0,0 +1,7 @@ +def foo(argument, **) + bar(argument, **) +end + +def foo(argument, *) + bar(argument, *) +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/singletons.txt b/test/yarp/fixtures/unparser/corpus/literal/singletons.txt new file mode 100644 index 0000000000..496e6a41ce --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/singletons.txt @@ -0,0 +1,4 @@ +false +nil +self +true diff --git a/test/yarp/fixtures/unparser/corpus/literal/super.txt b/test/yarp/fixtures/unparser/corpus/literal/super.txt new file mode 100644 index 0000000000..0e73e6f052 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/super.txt @@ -0,0 +1,21 @@ +super +super() +super(a) +super(a, b) +super(&block) +super(a, &block) +super(a { + foo +}) +super { + foo +} +super(a) { + foo +} +super() { + foo +} +super(a, b) { + foo +} diff --git a/test/yarp/fixtures/unparser/corpus/literal/unary.txt b/test/yarp/fixtures/unparser/corpus/literal/unary.txt new file mode 100644 index 0000000000..77685cb71d --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/unary.txt @@ -0,0 +1,8 @@ +!1 +!(!1) +!(!(foo || bar)) +!(!1).baz +~a +-a ++a +-(-a).foo diff --git a/test/yarp/fixtures/unparser/corpus/literal/undef.txt b/test/yarp/fixtures/unparser/corpus/literal/undef.txt new file mode 100644 index 0000000000..a65d8d0cc4 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/undef.txt @@ -0,0 +1,2 @@ +undef :foo +undef :foo, :bar diff --git a/test/yarp/fixtures/unparser/corpus/literal/variables.txt b/test/yarp/fixtures/unparser/corpus/literal/variables.txt new file mode 100644 index 0000000000..1de938f376 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/variables.txt @@ -0,0 +1,10 @@ +a +@a +@@a +$a +$1 +$` +CONST +SCOPED::CONST +::TOPLEVEL +::TOPLEVEL::CONST diff --git a/test/yarp/fixtures/unparser/corpus/literal/while.txt b/test/yarp/fixtures/unparser/corpus/literal/while.txt new file mode 100644 index 0000000000..19a60ef5ff --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/while.txt @@ -0,0 +1,73 @@ +module A + foo { |bar| + while foo + foo = bar + end + } +end + +def foo + foo = bar while foo != baz +end + +module A + foo = bar while foo +end + +module A + foo = bar until foo +end + +module A + while foo + foo = bar + end +end + +module A + each { |baz| + while foo + foo = bar + end + } +end + +module A + each { |foo| + while foo + foo = bar + end + } +end +x = (begin + foo +end while baz) +begin + foo +end while baz +begin + foo + bar +end until baz +begin + foo + bar +end while baz +while false +end +while false + 3 +end +while (foo { +}) + :body +end +until false +end +until false + 3 +end +until (foo { +}) + :body +end diff --git a/test/yarp/fixtures/unparser/corpus/literal/yield.txt b/test/yarp/fixtures/unparser/corpus/literal/yield.txt new file mode 100644 index 0000000000..c0b5820842 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/literal/yield.txt @@ -0,0 +1,3 @@ +yield +yield(a) +yield(a, b) diff --git a/test/yarp/fixtures/unparser/corpus/semantic/and.txt b/test/yarp/fixtures/unparser/corpus/semantic/and.txt new file mode 100644 index 0000000000..43d1712445 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/and.txt @@ -0,0 +1,8 @@ +a...b or c...d +a...b and c...d + +if a...b or c...d +end + +if a...b and c...d +end diff --git a/test/yarp/fixtures/unparser/corpus/semantic/block.txt b/test/yarp/fixtures/unparser/corpus/semantic/block.txt new file mode 100644 index 0000000000..5891690025 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/block.txt @@ -0,0 +1,26 @@ +foo do +end + +foo do +rescue +end + +foo do + nil rescue nil + nil +end + +foo do |a| +end + +foo(<<-DOC) do |a| + b +DOC + a +end + +foo(<<-DOC) do + b +DOC + a +end diff --git a/test/yarp/fixtures/unparser/corpus/semantic/def.txt b/test/yarp/fixtures/unparser/corpus/semantic/def.txt new file mode 100644 index 0000000000..7574619392 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/def.txt @@ -0,0 +1,7 @@ +def foo + (a - b) +end + +def foo + a rescue Exception +end diff --git a/test/yarp/fixtures/unparser/corpus/semantic/dstr.txt b/test/yarp/fixtures/unparser/corpus/semantic/dstr.txt new file mode 100644 index 0000000000..919e736077 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/dstr.txt @@ -0,0 +1,127 @@ +<<DOC +DOC + +<<'DOC' +DOC + +<<~DOC +DOC + +<<~'DOC' +DOC + +<<DOC + a +DOC + +<<'DOC' + a +DOC + +<<DOC + a + #{} +DOC + +<<~DOC + a + #{} +DOC + +<<~DOC + a + #{} + b +DOC + +<<~DOC + a + b +DOC + +<<'DOC' +a + +b +DOC + +<<'DOC' + a + + b +DOC + +<<'DOC' + a\nb +DOC + +<<DOC +#{}a + #{}a +DOC + +<<DOC + #{} + \#{} +DOC + +<<DOC + a#{}b + c +DOC + +<<~DOC + #{} +DOC + +if true + <<~DOC + #{} + DOC +end + +if true + <<~DOC + b#{} + DOC +end + +if true + <<~DOC + #{}a + DOC +end + +if true + <<-'DOC' + a + + b + DOC +end + +"#{}a" + +%(\n"#{}"\n) + +%Q(-\n"#{}"\n) + +"a +#{} +b" + +"a\n#{} +b" + +"a +#{}\nb" + +'a' \ +"#{}" + +"" "" "" + +"a#{@a}" "b" +"a#@a" "b" +"a#$a" "b" +"a#@@a" "b" diff --git a/test/yarp/fixtures/unparser/corpus/semantic/kwbegin.txt b/test/yarp/fixtures/unparser/corpus/semantic/kwbegin.txt new file mode 100644 index 0000000000..d275a96a5c --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/kwbegin.txt @@ -0,0 +1,42 @@ +begin +rescue +end + +begin +rescue +else +end + +begin + a +end + +begin + a +rescue + b +end + +begin + a + b +rescue + b +end + +begin +rescue A +else +end + +begin; rescue A; else; end + +begin + a +rescue A + b +rescue B + c +ensure + d +end diff --git a/test/yarp/fixtures/unparser/corpus/semantic/literal.txt b/test/yarp/fixtures/unparser/corpus/semantic/literal.txt new file mode 100644 index 0000000000..c424db5a53 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/literal.txt @@ -0,0 +1,14 @@ +1.0r +-0r +0x1 +1_000 +1e10 +10e10000000000 +-10e10000000000 +?c +%r(/) +%r(\)) +%r(#{@bar}baz) +10.2e10000000000 +-10.2e10000000000 +w(foo bar) diff --git a/test/yarp/fixtures/unparser/corpus/semantic/send.txt b/test/yarp/fixtures/unparser/corpus/semantic/send.txt new file mode 100644 index 0000000000..a65b27d2f2 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/send.txt @@ -0,0 +1,6 @@ +foo +foo(1) + +a.===(b).c == d + +a == d.c.===(c) diff --git a/test/yarp/fixtures/unparser/corpus/semantic/undef.txt b/test/yarp/fixtures/unparser/corpus/semantic/undef.txt new file mode 100644 index 0000000000..47debc3114 --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/undef.txt @@ -0,0 +1,2 @@ +undef foo +undef foo, bar diff --git a/test/yarp/fixtures/unparser/corpus/semantic/while.txt b/test/yarp/fixtures/unparser/corpus/semantic/while.txt new file mode 100644 index 0000000000..a55dcc52fc --- /dev/null +++ b/test/yarp/fixtures/unparser/corpus/semantic/while.txt @@ -0,0 +1,25 @@ +a until b? {} + +until b? {} + a +end + +foo = bar while foo + +a until b && a { } + +while a = b + a +end + +a until b(<<-FOO) do +FOO + c +end + +module A + foo = exp + while foo + foo = bar + end +end diff --git a/test/yarp/fixtures/until.txt b/test/yarp/fixtures/until.txt new file mode 100644 index 0000000000..fa93819e25 --- /dev/null +++ b/test/yarp/fixtures/until.txt @@ -0,0 +1,11 @@ +until true; 1; end + +1 until true + +break until true + +next until true + +return until true + +foo :a, :b until bar? diff --git a/test/yarp/fixtures/variables.txt b/test/yarp/fixtures/variables.txt new file mode 100644 index 0000000000..276dc3b3f1 --- /dev/null +++ b/test/yarp/fixtures/variables.txt @@ -0,0 +1,46 @@ +@@abc + +@@abc = 1 + +@@foo, @@bar = 1 + +@@foo = 1, 2 + +$abc = 1 + +$abc + +@abc + +@abc = 1 + +a + +abc = 1 + +$foo, $bar = 1 + +$foo = 1, 2 + +@foo, @bar = 1 + +@foo = 1, 2 + +foo = 1; foo = 1, 2 + +foo = 1, 2 + +foo, * = 1, 2 + +foo, = 1, 2 + +foo, *bar = 1, 2 + +foo, (bar, baz) = 1, [2, 3] + +foo = *bar + +Foo = 1, 2 + +(a; b; c) + diff --git a/test/yarp/fixtures/while.txt b/test/yarp/fixtures/while.txt new file mode 100644 index 0000000000..ed5ea0f45c --- /dev/null +++ b/test/yarp/fixtures/while.txt @@ -0,0 +1,19 @@ +while true; 1; end + +1 while true + +break while true + +next while true + +return while true + +foo :a, :b while bar? + +while def self.foo a = tap do end; end; break; end + +while class Foo a = tap do end; end; break; end + +while class << self; tap do end; end; break; end + +while class << self; a = tap do end; end; break; end diff --git a/test/yarp/fixtures/whitequark/LICENSE b/test/yarp/fixtures/whitequark/LICENSE new file mode 100644 index 0000000000..971310e3d6 --- /dev/null +++ b/test/yarp/fixtures/whitequark/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2013-2016 whitequark <whitequark@whitequark.org> + +Parts of the source are derived from ruby_parser: +Copyright (c) Ryan Davis, seattle.rb + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/test/yarp/fixtures/whitequark/__ENCODING__.txt b/test/yarp/fixtures/whitequark/__ENCODING__.txt new file mode 100644 index 0000000000..d6debf2f92 --- /dev/null +++ b/test/yarp/fixtures/whitequark/__ENCODING__.txt @@ -0,0 +1 @@ +__ENCODING__ diff --git a/test/yarp/fixtures/whitequark/__ENCODING___legacy_.txt b/test/yarp/fixtures/whitequark/__ENCODING___legacy_.txt new file mode 100644 index 0000000000..d6debf2f92 --- /dev/null +++ b/test/yarp/fixtures/whitequark/__ENCODING___legacy_.txt @@ -0,0 +1 @@ +__ENCODING__ diff --git a/test/yarp/fixtures/whitequark/alias.txt b/test/yarp/fixtures/whitequark/alias.txt new file mode 100644 index 0000000000..e33b120022 --- /dev/null +++ b/test/yarp/fixtures/whitequark/alias.txt @@ -0,0 +1 @@ +alias :foo bar diff --git a/test/yarp/fixtures/whitequark/alias_gvar.txt b/test/yarp/fixtures/whitequark/alias_gvar.txt new file mode 100644 index 0000000000..b975d97f8e --- /dev/null +++ b/test/yarp/fixtures/whitequark/alias_gvar.txt @@ -0,0 +1,3 @@ +alias $a $+ + +alias $a $b diff --git a/test/yarp/fixtures/whitequark/ambiuous_quoted_label_in_ternary_operator.txt b/test/yarp/fixtures/whitequark/ambiuous_quoted_label_in_ternary_operator.txt new file mode 100644 index 0000000000..9b2e3afad5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ambiuous_quoted_label_in_ternary_operator.txt @@ -0,0 +1 @@ +a ? b & '': nil diff --git a/test/yarp/fixtures/whitequark/and.txt b/test/yarp/fixtures/whitequark/and.txt new file mode 100644 index 0000000000..43fa6a65cd --- /dev/null +++ b/test/yarp/fixtures/whitequark/and.txt @@ -0,0 +1,3 @@ +foo && bar + +foo and bar diff --git a/test/yarp/fixtures/whitequark/and_asgn.txt b/test/yarp/fixtures/whitequark/and_asgn.txt new file mode 100644 index 0000000000..a979265914 --- /dev/null +++ b/test/yarp/fixtures/whitequark/and_asgn.txt @@ -0,0 +1,3 @@ +foo.a &&= 1 + +foo[0, 1] &&= 2 diff --git a/test/yarp/fixtures/whitequark/and_or_masgn.txt b/test/yarp/fixtures/whitequark/and_or_masgn.txt new file mode 100644 index 0000000000..e346041604 --- /dev/null +++ b/test/yarp/fixtures/whitequark/and_or_masgn.txt @@ -0,0 +1,3 @@ +foo && (a, b = bar) + +foo || (a, b = bar) diff --git a/test/yarp/fixtures/whitequark/anonymous_blockarg.txt b/test/yarp/fixtures/whitequark/anonymous_blockarg.txt new file mode 100644 index 0000000000..e3eaaad6ce --- /dev/null +++ b/test/yarp/fixtures/whitequark/anonymous_blockarg.txt @@ -0,0 +1 @@ +def foo(&); bar(&); end diff --git a/test/yarp/fixtures/whitequark/arg.txt b/test/yarp/fixtures/whitequark/arg.txt new file mode 100644 index 0000000000..b1984ad5c4 --- /dev/null +++ b/test/yarp/fixtures/whitequark/arg.txt @@ -0,0 +1,3 @@ +def f(foo); end + +def f(foo, bar); end diff --git a/test/yarp/fixtures/whitequark/arg_duplicate_ignored.txt b/test/yarp/fixtures/whitequark/arg_duplicate_ignored.txt new file mode 100644 index 0000000000..0f5cc33961 --- /dev/null +++ b/test/yarp/fixtures/whitequark/arg_duplicate_ignored.txt @@ -0,0 +1,3 @@ +def foo(_, _); end + +def foo(_a, _a); end diff --git a/test/yarp/fixtures/whitequark/arg_label.txt b/test/yarp/fixtures/whitequark/arg_label.txt new file mode 100644 index 0000000000..82db416cb4 --- /dev/null +++ b/test/yarp/fixtures/whitequark/arg_label.txt @@ -0,0 +1,6 @@ +def foo + a:b end + +def foo() a:b end + +f { || a:b } diff --git a/test/yarp/fixtures/whitequark/arg_scope.txt b/test/yarp/fixtures/whitequark/arg_scope.txt new file mode 100644 index 0000000000..6c67ab72e3 --- /dev/null +++ b/test/yarp/fixtures/whitequark/arg_scope.txt @@ -0,0 +1 @@ +lambda{|;a|a} diff --git a/test/yarp/fixtures/whitequark/args.txt b/test/yarp/fixtures/whitequark/args.txt new file mode 100644 index 0000000000..773be477d3 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args.txt @@ -0,0 +1,63 @@ +def f &b; end + +def f (((a))); end + +def f ((*)); end + +def f ((*, p)); end + +def f ((*r)); end + +def f ((*r, p)); end + +def f ((a, *)); end + +def f ((a, *, p)); end + +def f ((a, *r)); end + +def f ((a, *r, p)); end + +def f ((a, a1)); end + +def f (foo: 1, &b); end + +def f (foo: 1, bar: 2, **baz, &b); end + +def f **baz, &b; end + +def f *, **; end + +def f *r, &b; end + +def f *r, p, &b; end + +def f ; end + +def f a, &b; end + +def f a, *r, &b; end + +def f a, *r, p, &b; end + +def f a, o=1, &b; end + +def f a, o=1, *r, &b; end + +def f a, o=1, *r, p, &b; end + +def f a, o=1, p, &b; end + +def f foo: +; end + +def f foo: -1 +; end + +def f o=1, &b; end + +def f o=1, *r, &b; end + +def f o=1, *r, p, &b; end + +def f o=1, p, &b; end diff --git a/test/yarp/fixtures/whitequark/args_args_assocs.txt b/test/yarp/fixtures/whitequark/args_args_assocs.txt new file mode 100644 index 0000000000..445f899442 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_args_assocs.txt @@ -0,0 +1,3 @@ +fun(foo, :foo => 1) + +fun(foo, :foo => 1, &baz) diff --git a/test/yarp/fixtures/whitequark/args_args_assocs_comma.txt b/test/yarp/fixtures/whitequark/args_args_assocs_comma.txt new file mode 100644 index 0000000000..b566a59037 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_args_assocs_comma.txt @@ -0,0 +1 @@ +foo[bar, :baz => 1,] diff --git a/test/yarp/fixtures/whitequark/args_args_comma.txt b/test/yarp/fixtures/whitequark/args_args_comma.txt new file mode 100644 index 0000000000..80770716dd --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_args_comma.txt @@ -0,0 +1 @@ +foo[bar,] diff --git a/test/yarp/fixtures/whitequark/args_args_star.txt b/test/yarp/fixtures/whitequark/args_args_star.txt new file mode 100644 index 0000000000..d4dc9cc579 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_args_star.txt @@ -0,0 +1,3 @@ +fun(foo, *bar) + +fun(foo, *bar, &baz) diff --git a/test/yarp/fixtures/whitequark/args_assocs.txt b/test/yarp/fixtures/whitequark/args_assocs.txt new file mode 100644 index 0000000000..b33e131181 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_assocs.txt @@ -0,0 +1,11 @@ +fun(:foo => 1) + +fun(:foo => 1, &baz) + +self.[]= foo, :a => 1 + +self[:bar => 1] + +super(:foo => 42) + +yield(:foo => 42) diff --git a/test/yarp/fixtures/whitequark/args_assocs_comma.txt b/test/yarp/fixtures/whitequark/args_assocs_comma.txt new file mode 100644 index 0000000000..15e5cd65dc --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_assocs_comma.txt @@ -0,0 +1 @@ +foo[:baz => 1,] diff --git a/test/yarp/fixtures/whitequark/args_assocs_legacy.txt b/test/yarp/fixtures/whitequark/args_assocs_legacy.txt new file mode 100644 index 0000000000..b33e131181 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_assocs_legacy.txt @@ -0,0 +1,11 @@ +fun(:foo => 1) + +fun(:foo => 1, &baz) + +self.[]= foo, :a => 1 + +self[:bar => 1] + +super(:foo => 42) + +yield(:foo => 42) diff --git a/test/yarp/fixtures/whitequark/args_block_pass.txt b/test/yarp/fixtures/whitequark/args_block_pass.txt new file mode 100644 index 0000000000..35d7d23885 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_block_pass.txt @@ -0,0 +1 @@ +fun(&bar) diff --git a/test/yarp/fixtures/whitequark/args_cmd.txt b/test/yarp/fixtures/whitequark/args_cmd.txt new file mode 100644 index 0000000000..dd0c8891d0 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_cmd.txt @@ -0,0 +1 @@ +fun(f bar) diff --git a/test/yarp/fixtures/whitequark/args_star.txt b/test/yarp/fixtures/whitequark/args_star.txt new file mode 100644 index 0000000000..ce1e6f8465 --- /dev/null +++ b/test/yarp/fixtures/whitequark/args_star.txt @@ -0,0 +1,3 @@ +fun(*bar) + +fun(*bar, &baz) diff --git a/test/yarp/fixtures/whitequark/array_assocs.txt b/test/yarp/fixtures/whitequark/array_assocs.txt new file mode 100644 index 0000000000..fcecfcdefc --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_assocs.txt @@ -0,0 +1,3 @@ +[ 1 => 2 ] + +[ 1, 2 => 3 ] diff --git a/test/yarp/fixtures/whitequark/array_plain.txt b/test/yarp/fixtures/whitequark/array_plain.txt new file mode 100644 index 0000000000..44e2ace7e5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_plain.txt @@ -0,0 +1 @@ +[1, 2] diff --git a/test/yarp/fixtures/whitequark/array_splat.txt b/test/yarp/fixtures/whitequark/array_splat.txt new file mode 100644 index 0000000000..144c1eb124 --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_splat.txt @@ -0,0 +1,5 @@ +[*foo] + +[1, *foo, 2] + +[1, *foo] diff --git a/test/yarp/fixtures/whitequark/array_symbols.txt b/test/yarp/fixtures/whitequark/array_symbols.txt new file mode 100644 index 0000000000..a9f9df0404 --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_symbols.txt @@ -0,0 +1 @@ +%i[foo bar] diff --git a/test/yarp/fixtures/whitequark/array_symbols_empty.txt b/test/yarp/fixtures/whitequark/array_symbols_empty.txt new file mode 100644 index 0000000000..da3a89ee9b --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_symbols_empty.txt @@ -0,0 +1,3 @@ +%I() + +%i[] diff --git a/test/yarp/fixtures/whitequark/array_symbols_interp.txt b/test/yarp/fixtures/whitequark/array_symbols_interp.txt new file mode 100644 index 0000000000..d4950d0c05 --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_symbols_interp.txt @@ -0,0 +1,3 @@ +%I[foo #{bar}] + +%I[foo#{bar}] diff --git a/test/yarp/fixtures/whitequark/array_words.txt b/test/yarp/fixtures/whitequark/array_words.txt new file mode 100644 index 0000000000..a07380cadc --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_words.txt @@ -0,0 +1 @@ +%w[foo bar] diff --git a/test/yarp/fixtures/whitequark/array_words_empty.txt b/test/yarp/fixtures/whitequark/array_words_empty.txt new file mode 100644 index 0000000000..7568263f4a --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_words_empty.txt @@ -0,0 +1,3 @@ +%W() + +%w[] diff --git a/test/yarp/fixtures/whitequark/array_words_interp.txt b/test/yarp/fixtures/whitequark/array_words_interp.txt new file mode 100644 index 0000000000..1460f7dc03 --- /dev/null +++ b/test/yarp/fixtures/whitequark/array_words_interp.txt @@ -0,0 +1,3 @@ +%W[foo #{bar}] + +%W[foo #{bar}foo#@baz] diff --git a/test/yarp/fixtures/whitequark/asgn_cmd.txt b/test/yarp/fixtures/whitequark/asgn_cmd.txt new file mode 100644 index 0000000000..81f8cc1c8d --- /dev/null +++ b/test/yarp/fixtures/whitequark/asgn_cmd.txt @@ -0,0 +1,3 @@ +foo = bar = m foo + +foo = m foo diff --git a/test/yarp/fixtures/whitequark/asgn_mrhs.txt b/test/yarp/fixtures/whitequark/asgn_mrhs.txt new file mode 100644 index 0000000000..f0b0055e55 --- /dev/null +++ b/test/yarp/fixtures/whitequark/asgn_mrhs.txt @@ -0,0 +1,5 @@ +foo = *bar + +foo = bar, 1 + +foo = baz, *bar diff --git a/test/yarp/fixtures/whitequark/back_ref.txt b/test/yarp/fixtures/whitequark/back_ref.txt new file mode 100644 index 0000000000..03166e10ee --- /dev/null +++ b/test/yarp/fixtures/whitequark/back_ref.txt @@ -0,0 +1 @@ +$+ diff --git a/test/yarp/fixtures/whitequark/bang.txt b/test/yarp/fixtures/whitequark/bang.txt new file mode 100644 index 0000000000..6cf9410cf5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bang.txt @@ -0,0 +1 @@ +!foo diff --git a/test/yarp/fixtures/whitequark/bang_cmd.txt b/test/yarp/fixtures/whitequark/bang_cmd.txt new file mode 100644 index 0000000000..0a5252c001 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bang_cmd.txt @@ -0,0 +1 @@ +!m foo diff --git a/test/yarp/fixtures/whitequark/begin_cmdarg.txt b/test/yarp/fixtures/whitequark/begin_cmdarg.txt new file mode 100644 index 0000000000..a5873668e9 --- /dev/null +++ b/test/yarp/fixtures/whitequark/begin_cmdarg.txt @@ -0,0 +1 @@ +p begin 1.times do 1 end end diff --git a/test/yarp/fixtures/whitequark/beginless_erange_after_newline.txt b/test/yarp/fixtures/whitequark/beginless_erange_after_newline.txt new file mode 100644 index 0000000000..ae6c75564a --- /dev/null +++ b/test/yarp/fixtures/whitequark/beginless_erange_after_newline.txt @@ -0,0 +1,2 @@ +foo +...100 diff --git a/test/yarp/fixtures/whitequark/beginless_irange_after_newline.txt b/test/yarp/fixtures/whitequark/beginless_irange_after_newline.txt new file mode 100644 index 0000000000..bfc8d5e5e8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/beginless_irange_after_newline.txt @@ -0,0 +1,2 @@ +foo +..100 diff --git a/test/yarp/fixtures/whitequark/beginless_range.txt b/test/yarp/fixtures/whitequark/beginless_range.txt new file mode 100644 index 0000000000..ef52703b8a --- /dev/null +++ b/test/yarp/fixtures/whitequark/beginless_range.txt @@ -0,0 +1,3 @@ +...100 + +..100 diff --git a/test/yarp/fixtures/whitequark/blockarg.txt b/test/yarp/fixtures/whitequark/blockarg.txt new file mode 100644 index 0000000000..63552e97be --- /dev/null +++ b/test/yarp/fixtures/whitequark/blockarg.txt @@ -0,0 +1 @@ +def f(&block); end diff --git a/test/yarp/fixtures/whitequark/blockargs.txt b/test/yarp/fixtures/whitequark/blockargs.txt new file mode 100644 index 0000000000..cdd2c4f331 --- /dev/null +++ b/test/yarp/fixtures/whitequark/blockargs.txt @@ -0,0 +1,71 @@ +f{ } + +f{ | | } + +f{ |&b| } + +f{ |**baz, &b| } + +f{ |*, &b| } + +f{ |*r, p, &b| } + +f{ |*s, &b| } + +f{ |*s| } + +f{ |*| } + +f{ |; +a +| } + +f{ |;a| } + +f{ |a, &b| } + +f{ |a, *, &b| } + +f{ |a, *r, p, &b| } + +f{ |a, *s, &b| } + +f{ |a, *s| } + +f{ |a, *| } + +f{ |a, b,| } + +f{ |a, c| } + +f{ |a, o=1, &b| } + +f{ |a, o=1, *r, p, &b| } + +f{ |a, o=1, o1=2, *r, &b| } + +f{ |a, o=1, p, &b| } + +f{ |a,| } + +f{ |a| } + +f{ |a| } + +f{ |a| } + +f{ |foo: 1, &b| } + +f{ |foo: 1, bar: 2, **baz, &b| } + +f{ |foo:| } + +f{ |o=1, &b| } + +f{ |o=1, *r, &b| } + +f{ |o=1, *r, p, &b| } + +f{ |o=1, p, &b| } + +f{ || } diff --git a/test/yarp/fixtures/whitequark/break.txt b/test/yarp/fixtures/whitequark/break.txt new file mode 100644 index 0000000000..da51ec7c31 --- /dev/null +++ b/test/yarp/fixtures/whitequark/break.txt @@ -0,0 +1,7 @@ +break + +break foo + +break() + +break(foo) diff --git a/test/yarp/fixtures/whitequark/break_block.txt b/test/yarp/fixtures/whitequark/break_block.txt new file mode 100644 index 0000000000..4b58c58d5e --- /dev/null +++ b/test/yarp/fixtures/whitequark/break_block.txt @@ -0,0 +1 @@ +break fun foo do end diff --git a/test/yarp/fixtures/whitequark/bug_435.txt b/test/yarp/fixtures/whitequark/bug_435.txt new file mode 100644 index 0000000000..3e4e0d5abd --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_435.txt @@ -0,0 +1 @@ +"#{-> foo {}}" diff --git a/test/yarp/fixtures/whitequark/bug_447.txt b/test/yarp/fixtures/whitequark/bug_447.txt new file mode 100644 index 0000000000..7da59bbc2f --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_447.txt @@ -0,0 +1,3 @@ +m [] do end + +m [], 1 do end diff --git a/test/yarp/fixtures/whitequark/bug_452.txt b/test/yarp/fixtures/whitequark/bug_452.txt new file mode 100644 index 0000000000..8b41dd6027 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_452.txt @@ -0,0 +1 @@ +td (1_500).toString(); td.num do; end diff --git a/test/yarp/fixtures/whitequark/bug_466.txt b/test/yarp/fixtures/whitequark/bug_466.txt new file mode 100644 index 0000000000..ad02ad38ae --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_466.txt @@ -0,0 +1 @@ +foo "#{(1+1).to_i}" do; end diff --git a/test/yarp/fixtures/whitequark/bug_473.txt b/test/yarp/fixtures/whitequark/bug_473.txt new file mode 100644 index 0000000000..0d2ea883a1 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_473.txt @@ -0,0 +1 @@ +m "#{[]}" diff --git a/test/yarp/fixtures/whitequark/bug_480.txt b/test/yarp/fixtures/whitequark/bug_480.txt new file mode 100644 index 0000000000..0558b2c957 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_480.txt @@ -0,0 +1 @@ +m "#{}#{()}" diff --git a/test/yarp/fixtures/whitequark/bug_481.txt b/test/yarp/fixtures/whitequark/bug_481.txt new file mode 100644 index 0000000000..6328e9dbbd --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_481.txt @@ -0,0 +1 @@ +m def x(); end; 1.tap do end diff --git a/test/yarp/fixtures/whitequark/bug_ascii_8bit_in_literal.txt b/test/yarp/fixtures/whitequark/bug_ascii_8bit_in_literal.txt new file mode 100644 index 0000000000..85399bd19a --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_ascii_8bit_in_literal.txt @@ -0,0 +1,2 @@ +# coding:utf-8 + "\xD0\xBF\xD1\x80\xD0\xBE\xD0\xB2\xD0\xB5\xD1\x80\xD0\xBA\xD0\xB0" diff --git a/test/yarp/fixtures/whitequark/bug_cmd_string_lookahead.txt b/test/yarp/fixtures/whitequark/bug_cmd_string_lookahead.txt new file mode 100644 index 0000000000..7e9e54c518 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_cmd_string_lookahead.txt @@ -0,0 +1 @@ +desc "foo" do end diff --git a/test/yarp/fixtures/whitequark/bug_cmdarg.txt b/test/yarp/fixtures/whitequark/bug_cmdarg.txt new file mode 100644 index 0000000000..0281cd6668 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_cmdarg.txt @@ -0,0 +1,5 @@ +assert do: true + +assert dogs + +f x: -> do meth do end end diff --git a/test/yarp/fixtures/whitequark/bug_def_no_paren_eql_begin.txt b/test/yarp/fixtures/whitequark/bug_def_no_paren_eql_begin.txt new file mode 100644 index 0000000000..615dc88217 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_def_no_paren_eql_begin.txt @@ -0,0 +1,4 @@ +def foo +=begin +=end +end diff --git a/test/yarp/fixtures/whitequark/bug_do_block_in_call_args.txt b/test/yarp/fixtures/whitequark/bug_do_block_in_call_args.txt new file mode 100644 index 0000000000..21340fd6e8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_do_block_in_call_args.txt @@ -0,0 +1 @@ +bar def foo; self.each do end end diff --git a/test/yarp/fixtures/whitequark/bug_do_block_in_cmdarg.txt b/test/yarp/fixtures/whitequark/bug_do_block_in_cmdarg.txt new file mode 100644 index 0000000000..7dece50408 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_do_block_in_cmdarg.txt @@ -0,0 +1 @@ +tap (proc do end) diff --git a/test/yarp/fixtures/whitequark/bug_do_block_in_hash_brace.txt b/test/yarp/fixtures/whitequark/bug_do_block_in_hash_brace.txt new file mode 100644 index 0000000000..6c4dd205d2 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_do_block_in_hash_brace.txt @@ -0,0 +1,9 @@ +p :foo, {"a": proc do end, b: proc do end} + +p :foo, {** proc do end, b: proc do end} + +p :foo, {:a => proc do end, b: proc do end} + +p :foo, {a: proc do end, b: proc do end} + +p :foo, {proc do end => proc do end, b: proc do end} diff --git a/test/yarp/fixtures/whitequark/bug_heredoc_do.txt b/test/yarp/fixtures/whitequark/bug_heredoc_do.txt new file mode 100644 index 0000000000..06fef0a99f --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_heredoc_do.txt @@ -0,0 +1,3 @@ +f <<-TABLE do +TABLE +end diff --git a/test/yarp/fixtures/whitequark/bug_interp_single.txt b/test/yarp/fixtures/whitequark/bug_interp_single.txt new file mode 100644 index 0000000000..be0b1a8542 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_interp_single.txt @@ -0,0 +1,3 @@ +"#{1}" + +%W"#{1}" diff --git a/test/yarp/fixtures/whitequark/bug_lambda_leakage.txt b/test/yarp/fixtures/whitequark/bug_lambda_leakage.txt new file mode 100644 index 0000000000..372b36929a --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_lambda_leakage.txt @@ -0,0 +1 @@ +->(scope) {}; scope diff --git a/test/yarp/fixtures/whitequark/bug_regex_verification.txt b/test/yarp/fixtures/whitequark/bug_regex_verification.txt new file mode 100644 index 0000000000..f8483c8b10 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_regex_verification.txt @@ -0,0 +1 @@ +/#)/x diff --git a/test/yarp/fixtures/whitequark/bug_rescue_empty_else.txt b/test/yarp/fixtures/whitequark/bug_rescue_empty_else.txt new file mode 100644 index 0000000000..e8c81edc57 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_rescue_empty_else.txt @@ -0,0 +1 @@ +begin; rescue LoadError; else; end diff --git a/test/yarp/fixtures/whitequark/bug_while_not_parens_do.txt b/test/yarp/fixtures/whitequark/bug_while_not_parens_do.txt new file mode 100644 index 0000000000..628c36ef13 --- /dev/null +++ b/test/yarp/fixtures/whitequark/bug_while_not_parens_do.txt @@ -0,0 +1 @@ +while not (true) do end diff --git a/test/yarp/fixtures/whitequark/case_cond.txt b/test/yarp/fixtures/whitequark/case_cond.txt new file mode 100644 index 0000000000..a236b27ebd --- /dev/null +++ b/test/yarp/fixtures/whitequark/case_cond.txt @@ -0,0 +1 @@ +case; when foo; 'foo'; end diff --git a/test/yarp/fixtures/whitequark/case_cond_else.txt b/test/yarp/fixtures/whitequark/case_cond_else.txt new file mode 100644 index 0000000000..06eefa4a1b --- /dev/null +++ b/test/yarp/fixtures/whitequark/case_cond_else.txt @@ -0,0 +1 @@ +case; when foo; 'foo'; else 'bar'; end diff --git a/test/yarp/fixtures/whitequark/case_expr.txt b/test/yarp/fixtures/whitequark/case_expr.txt new file mode 100644 index 0000000000..472672c781 --- /dev/null +++ b/test/yarp/fixtures/whitequark/case_expr.txt @@ -0,0 +1 @@ +case foo; when 'bar'; bar; end diff --git a/test/yarp/fixtures/whitequark/case_expr_else.txt b/test/yarp/fixtures/whitequark/case_expr_else.txt new file mode 100644 index 0000000000..3c55826134 --- /dev/null +++ b/test/yarp/fixtures/whitequark/case_expr_else.txt @@ -0,0 +1 @@ +case foo; when 'bar'; bar; else baz; end diff --git a/test/yarp/fixtures/whitequark/casgn_scoped.txt b/test/yarp/fixtures/whitequark/casgn_scoped.txt new file mode 100644 index 0000000000..964d0f4c9b --- /dev/null +++ b/test/yarp/fixtures/whitequark/casgn_scoped.txt @@ -0,0 +1 @@ +Bar::Foo = 10 diff --git a/test/yarp/fixtures/whitequark/casgn_toplevel.txt b/test/yarp/fixtures/whitequark/casgn_toplevel.txt new file mode 100644 index 0000000000..047a3b6745 --- /dev/null +++ b/test/yarp/fixtures/whitequark/casgn_toplevel.txt @@ -0,0 +1 @@ +::Foo = 10 diff --git a/test/yarp/fixtures/whitequark/casgn_unscoped.txt b/test/yarp/fixtures/whitequark/casgn_unscoped.txt new file mode 100644 index 0000000000..5632cf64ee --- /dev/null +++ b/test/yarp/fixtures/whitequark/casgn_unscoped.txt @@ -0,0 +1 @@ +Foo = 10 diff --git a/test/yarp/fixtures/whitequark/character.txt b/test/yarp/fixtures/whitequark/character.txt new file mode 100644 index 0000000000..b22ffbb71a --- /dev/null +++ b/test/yarp/fixtures/whitequark/character.txt @@ -0,0 +1 @@ +?a diff --git a/test/yarp/fixtures/whitequark/class.txt b/test/yarp/fixtures/whitequark/class.txt new file mode 100644 index 0000000000..a30a248e96 --- /dev/null +++ b/test/yarp/fixtures/whitequark/class.txt @@ -0,0 +1,3 @@ +class Foo end + +class Foo; end diff --git a/test/yarp/fixtures/whitequark/class_definition_in_while_cond.txt b/test/yarp/fixtures/whitequark/class_definition_in_while_cond.txt new file mode 100644 index 0000000000..10427314b5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/class_definition_in_while_cond.txt @@ -0,0 +1,7 @@ +while class << self; a = tap do end; end; break; end + +while class << self; tap do end; end; break; end + +while class Foo a = tap do end; end; break; end + +while class Foo; tap do end; end; break; end diff --git a/test/yarp/fixtures/whitequark/class_super.txt b/test/yarp/fixtures/whitequark/class_super.txt new file mode 100644 index 0000000000..8829d82d36 --- /dev/null +++ b/test/yarp/fixtures/whitequark/class_super.txt @@ -0,0 +1 @@ +class Foo < Bar; end diff --git a/test/yarp/fixtures/whitequark/class_super_label.txt b/test/yarp/fixtures/whitequark/class_super_label.txt new file mode 100644 index 0000000000..5d47897ab6 --- /dev/null +++ b/test/yarp/fixtures/whitequark/class_super_label.txt @@ -0,0 +1 @@ +class Foo < a:b; end diff --git a/test/yarp/fixtures/whitequark/comments_before_leading_dot__27.txt b/test/yarp/fixtures/whitequark/comments_before_leading_dot__27.txt new file mode 100644 index 0000000000..208f2d87fe --- /dev/null +++ b/test/yarp/fixtures/whitequark/comments_before_leading_dot__27.txt @@ -0,0 +1,19 @@ +a # + # +&.foo + + +a # + # +.foo + + +a # +# +&.foo + + +a # +# +.foo + diff --git a/test/yarp/fixtures/whitequark/complex.txt b/test/yarp/fixtures/whitequark/complex.txt new file mode 100644 index 0000000000..1dbf2c13f4 --- /dev/null +++ b/test/yarp/fixtures/whitequark/complex.txt @@ -0,0 +1,7 @@ +42.1i + +42.1ri + +42i + +42ri diff --git a/test/yarp/fixtures/whitequark/cond_begin.txt b/test/yarp/fixtures/whitequark/cond_begin.txt new file mode 100644 index 0000000000..49d709b79c --- /dev/null +++ b/test/yarp/fixtures/whitequark/cond_begin.txt @@ -0,0 +1 @@ +if (bar); foo; end diff --git a/test/yarp/fixtures/whitequark/cond_begin_masgn.txt b/test/yarp/fixtures/whitequark/cond_begin_masgn.txt new file mode 100644 index 0000000000..f9b65026b4 --- /dev/null +++ b/test/yarp/fixtures/whitequark/cond_begin_masgn.txt @@ -0,0 +1 @@ +if (bar; a, b = foo); end diff --git a/test/yarp/fixtures/whitequark/cond_eflipflop.txt b/test/yarp/fixtures/whitequark/cond_eflipflop.txt new file mode 100644 index 0000000000..1236c2dbb5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/cond_eflipflop.txt @@ -0,0 +1,3 @@ +!(foo...bar) + +if foo...bar; end diff --git a/test/yarp/fixtures/whitequark/cond_iflipflop.txt b/test/yarp/fixtures/whitequark/cond_iflipflop.txt new file mode 100644 index 0000000000..84bee71a74 --- /dev/null +++ b/test/yarp/fixtures/whitequark/cond_iflipflop.txt @@ -0,0 +1,3 @@ +!(foo..bar) + +if foo..bar; end diff --git a/test/yarp/fixtures/whitequark/cond_match_current_line.txt b/test/yarp/fixtures/whitequark/cond_match_current_line.txt new file mode 100644 index 0000000000..21878c7bd8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/cond_match_current_line.txt @@ -0,0 +1,3 @@ +!/wat/ + +if /wat/; end diff --git a/test/yarp/fixtures/whitequark/const_op_asgn.txt b/test/yarp/fixtures/whitequark/const_op_asgn.txt new file mode 100644 index 0000000000..e72e7adee8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/const_op_asgn.txt @@ -0,0 +1,9 @@ +::A += 1 + +A += 1 + +B::A += 1 + +def x; ::A ||= 1; end + +def x; self::A ||= 1; end diff --git a/test/yarp/fixtures/whitequark/const_scoped.txt b/test/yarp/fixtures/whitequark/const_scoped.txt new file mode 100644 index 0000000000..4b03d85fc0 --- /dev/null +++ b/test/yarp/fixtures/whitequark/const_scoped.txt @@ -0,0 +1 @@ +Bar::Foo diff --git a/test/yarp/fixtures/whitequark/const_toplevel.txt b/test/yarp/fixtures/whitequark/const_toplevel.txt new file mode 100644 index 0000000000..f783ae752b --- /dev/null +++ b/test/yarp/fixtures/whitequark/const_toplevel.txt @@ -0,0 +1 @@ +::Foo diff --git a/test/yarp/fixtures/whitequark/const_unscoped.txt b/test/yarp/fixtures/whitequark/const_unscoped.txt new file mode 100644 index 0000000000..bc56c4d894 --- /dev/null +++ b/test/yarp/fixtures/whitequark/const_unscoped.txt @@ -0,0 +1 @@ +Foo diff --git a/test/yarp/fixtures/whitequark/cpath.txt b/test/yarp/fixtures/whitequark/cpath.txt new file mode 100644 index 0000000000..a4041692d1 --- /dev/null +++ b/test/yarp/fixtures/whitequark/cpath.txt @@ -0,0 +1,3 @@ +module ::Foo; end + +module Bar::Foo; end diff --git a/test/yarp/fixtures/whitequark/cvar.txt b/test/yarp/fixtures/whitequark/cvar.txt new file mode 100644 index 0000000000..4997896e4a --- /dev/null +++ b/test/yarp/fixtures/whitequark/cvar.txt @@ -0,0 +1 @@ +@@foo diff --git a/test/yarp/fixtures/whitequark/cvasgn.txt b/test/yarp/fixtures/whitequark/cvasgn.txt new file mode 100644 index 0000000000..8f7e19c4fe --- /dev/null +++ b/test/yarp/fixtures/whitequark/cvasgn.txt @@ -0,0 +1 @@ +@@var = 10 diff --git a/test/yarp/fixtures/whitequark/dedenting_heredoc.txt b/test/yarp/fixtures/whitequark/dedenting_heredoc.txt new file mode 100644 index 0000000000..2840ec3e1c --- /dev/null +++ b/test/yarp/fixtures/whitequark/dedenting_heredoc.txt @@ -0,0 +1,75 @@ +p <<~"E" + x + #{" y"} +E + +p <<~"E" + x + #{foo} +E + +p <<~E + x + y +E + +p <<~E + x + y +E + +p <<~E + x + y +E + +p <<~E + x + y +E + +p <<~E + x + \ y +E + +p <<~E + x + \ y +E + +p <<~E + E + +p <<~E + x + +y +E + +p <<~E + x + + y +E + +p <<~E + x + y +E + +p <<~E + x +E + +p <<~E + ð +E + +p <<~E +E + +p <<~`E` + x + #{foo} +E diff --git a/test/yarp/fixtures/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt b/test/yarp/fixtures/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt new file mode 100644 index 0000000000..0427715d61 --- /dev/null +++ b/test/yarp/fixtures/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt @@ -0,0 +1,4 @@ +<<~'FOO' + baz\\ + qux +FOO diff --git a/test/yarp/fixtures/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt b/test/yarp/fixtures/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt new file mode 100644 index 0000000000..fd7bc02419 --- /dev/null +++ b/test/yarp/fixtures/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt @@ -0,0 +1,4 @@ +<<~'FOO' + baz\ + qux +FOO diff --git a/test/yarp/fixtures/whitequark/def.txt b/test/yarp/fixtures/whitequark/def.txt new file mode 100644 index 0000000000..d96a4238b3 --- /dev/null +++ b/test/yarp/fixtures/whitequark/def.txt @@ -0,0 +1,11 @@ +def BEGIN; end + +def END; end + +def String; end + +def String=; end + +def foo; end + +def until; end diff --git a/test/yarp/fixtures/whitequark/defined.txt b/test/yarp/fixtures/whitequark/defined.txt new file mode 100644 index 0000000000..5cf93e22e3 --- /dev/null +++ b/test/yarp/fixtures/whitequark/defined.txt @@ -0,0 +1,5 @@ +defined? @foo + +defined? foo + +defined?(foo) diff --git a/test/yarp/fixtures/whitequark/defs.txt b/test/yarp/fixtures/whitequark/defs.txt new file mode 100644 index 0000000000..e0b7aa86eb --- /dev/null +++ b/test/yarp/fixtures/whitequark/defs.txt @@ -0,0 +1,9 @@ +def (foo).foo; end + +def String.foo; end + +def String::foo; end + +def self.foo; end + +def self::foo; end diff --git a/test/yarp/fixtures/whitequark/empty_stmt.txt b/test/yarp/fixtures/whitequark/empty_stmt.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/test/yarp/fixtures/whitequark/empty_stmt.txt @@ -0,0 +1 @@ + diff --git a/test/yarp/fixtures/whitequark/endless_comparison_method.txt b/test/yarp/fixtures/whitequark/endless_comparison_method.txt new file mode 100644 index 0000000000..e10c3a6ced --- /dev/null +++ b/test/yarp/fixtures/whitequark/endless_comparison_method.txt @@ -0,0 +1,11 @@ +def !=(other) = do_something + +def !=(other) = do_something + +def <=(other) = do_something + +def ==(other) = do_something + +def ===(other) = do_something + +def >=(other) = do_something diff --git a/test/yarp/fixtures/whitequark/endless_method.txt b/test/yarp/fixtures/whitequark/endless_method.txt new file mode 100644 index 0000000000..7002526229 --- /dev/null +++ b/test/yarp/fixtures/whitequark/endless_method.txt @@ -0,0 +1,7 @@ +def foo() = 42 + +def inc(x) = x + 1 + +def obj.foo() = 42 + +def obj.inc(x) = x + 1 diff --git a/test/yarp/fixtures/whitequark/endless_method_command_syntax.txt b/test/yarp/fixtures/whitequark/endless_method_command_syntax.txt new file mode 100644 index 0000000000..d9dad2d747 --- /dev/null +++ b/test/yarp/fixtures/whitequark/endless_method_command_syntax.txt @@ -0,0 +1,15 @@ +def foo = puts "Hello" + +def foo() = puts "Hello" + +def foo(x) = puts x + +def obj.foo = puts "Hello" + +def obj.foo() = puts "Hello" + +def obj.foo(x) = puts x + +def rescued(x) = raise "to be caught" rescue "instance #{x}" + +def self.rescued(x) = raise "to be caught" rescue "class #{x}" diff --git a/test/yarp/fixtures/whitequark/endless_method_forwarded_args_legacy.txt b/test/yarp/fixtures/whitequark/endless_method_forwarded_args_legacy.txt new file mode 100644 index 0000000000..5955e40b5b --- /dev/null +++ b/test/yarp/fixtures/whitequark/endless_method_forwarded_args_legacy.txt @@ -0,0 +1 @@ +def foo(...) = bar(...) diff --git a/test/yarp/fixtures/whitequark/endless_method_with_rescue_mod.txt b/test/yarp/fixtures/whitequark/endless_method_with_rescue_mod.txt new file mode 100644 index 0000000000..93dc63a45d --- /dev/null +++ b/test/yarp/fixtures/whitequark/endless_method_with_rescue_mod.txt @@ -0,0 +1,3 @@ +def m() = 1 rescue 2 + +def self.m() = 1 rescue 2 diff --git a/test/yarp/fixtures/whitequark/endless_method_without_args.txt b/test/yarp/fixtures/whitequark/endless_method_without_args.txt new file mode 100644 index 0000000000..90ea8f7c6d --- /dev/null +++ b/test/yarp/fixtures/whitequark/endless_method_without_args.txt @@ -0,0 +1,7 @@ +def foo = 42 + +def foo = 42 rescue nil + +def self.foo = 42 + +def self.foo = 42 rescue nil diff --git a/test/yarp/fixtures/whitequark/ensure.txt b/test/yarp/fixtures/whitequark/ensure.txt new file mode 100644 index 0000000000..6c4b47c63c --- /dev/null +++ b/test/yarp/fixtures/whitequark/ensure.txt @@ -0,0 +1 @@ +begin; meth; ensure; bar; end diff --git a/test/yarp/fixtures/whitequark/ensure_empty.txt b/test/yarp/fixtures/whitequark/ensure_empty.txt new file mode 100644 index 0000000000..39a175c371 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ensure_empty.txt @@ -0,0 +1 @@ +begin ensure end diff --git a/test/yarp/fixtures/whitequark/false.txt b/test/yarp/fixtures/whitequark/false.txt new file mode 100644 index 0000000000..c508d5366f --- /dev/null +++ b/test/yarp/fixtures/whitequark/false.txt @@ -0,0 +1 @@ +false diff --git a/test/yarp/fixtures/whitequark/float.txt b/test/yarp/fixtures/whitequark/float.txt new file mode 100644 index 0000000000..8c7592a192 --- /dev/null +++ b/test/yarp/fixtures/whitequark/float.txt @@ -0,0 +1,3 @@ +-1.33 + +1.33 diff --git a/test/yarp/fixtures/whitequark/for.txt b/test/yarp/fixtures/whitequark/for.txt new file mode 100644 index 0000000000..a27ae578da --- /dev/null +++ b/test/yarp/fixtures/whitequark/for.txt @@ -0,0 +1,3 @@ +for a in foo do p a; end + +for a in foo; p a; end diff --git a/test/yarp/fixtures/whitequark/for_mlhs.txt b/test/yarp/fixtures/whitequark/for_mlhs.txt new file mode 100644 index 0000000000..53cd5229a4 --- /dev/null +++ b/test/yarp/fixtures/whitequark/for_mlhs.txt @@ -0,0 +1 @@ +for a, b in foo; p a, b; end diff --git a/test/yarp/fixtures/whitequark/forward_arg.txt b/test/yarp/fixtures/whitequark/forward_arg.txt new file mode 100644 index 0000000000..c7590a8d53 --- /dev/null +++ b/test/yarp/fixtures/whitequark/forward_arg.txt @@ -0,0 +1 @@ +def foo(...); bar(...); end diff --git a/test/yarp/fixtures/whitequark/forward_arg_with_open_args.txt b/test/yarp/fixtures/whitequark/forward_arg_with_open_args.txt new file mode 100644 index 0000000000..fd4c06bcb5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/forward_arg_with_open_args.txt @@ -0,0 +1,27 @@ +(def foo ... + bar(...) +end) + +(def foo ...; bar(...); end) + +def foo ... +end + +def foo ...; bar(...); end + +def foo a, ... + bar(...) +end + +def foo a, ...; bar(...); end + +def foo a, b = 1, ... +end + +def foo b = 1, ... + bar(...) +end + +def foo b = 1, ...; bar(...); end + +def foo(a, ...) bar(...) end diff --git a/test/yarp/fixtures/whitequark/forward_args_legacy.txt b/test/yarp/fixtures/whitequark/forward_args_legacy.txt new file mode 100644 index 0000000000..0d9162457f --- /dev/null +++ b/test/yarp/fixtures/whitequark/forward_args_legacy.txt @@ -0,0 +1,5 @@ +def foo(...); bar(...); end + +def foo(...); end + +def foo(...); super(...); end diff --git a/test/yarp/fixtures/whitequark/forwarded_argument_with_kwrestarg.txt b/test/yarp/fixtures/whitequark/forwarded_argument_with_kwrestarg.txt new file mode 100644 index 0000000000..7dbf472232 --- /dev/null +++ b/test/yarp/fixtures/whitequark/forwarded_argument_with_kwrestarg.txt @@ -0,0 +1 @@ +def foo(argument, **); bar(argument, **); end diff --git a/test/yarp/fixtures/whitequark/forwarded_argument_with_restarg.txt b/test/yarp/fixtures/whitequark/forwarded_argument_with_restarg.txt new file mode 100644 index 0000000000..f734bfd9ec --- /dev/null +++ b/test/yarp/fixtures/whitequark/forwarded_argument_with_restarg.txt @@ -0,0 +1 @@ +def foo(argument, *); bar(argument, *); end diff --git a/test/yarp/fixtures/whitequark/forwarded_kwrestarg.txt b/test/yarp/fixtures/whitequark/forwarded_kwrestarg.txt new file mode 100644 index 0000000000..16cd8b2913 --- /dev/null +++ b/test/yarp/fixtures/whitequark/forwarded_kwrestarg.txt @@ -0,0 +1 @@ +def foo(**); bar(**); end diff --git a/test/yarp/fixtures/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt b/test/yarp/fixtures/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt new file mode 100644 index 0000000000..52759b838f --- /dev/null +++ b/test/yarp/fixtures/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt @@ -0,0 +1 @@ +def foo(**); bar(**, from_foo: true); end diff --git a/test/yarp/fixtures/whitequark/forwarded_restarg.txt b/test/yarp/fixtures/whitequark/forwarded_restarg.txt new file mode 100644 index 0000000000..65ac2cc1ed --- /dev/null +++ b/test/yarp/fixtures/whitequark/forwarded_restarg.txt @@ -0,0 +1 @@ +def foo(*); bar(*); end diff --git a/test/yarp/fixtures/whitequark/gvar.txt b/test/yarp/fixtures/whitequark/gvar.txt new file mode 100644 index 0000000000..bbf13489ad --- /dev/null +++ b/test/yarp/fixtures/whitequark/gvar.txt @@ -0,0 +1 @@ +$foo diff --git a/test/yarp/fixtures/whitequark/gvasgn.txt b/test/yarp/fixtures/whitequark/gvasgn.txt new file mode 100644 index 0000000000..2bcc22cdd1 --- /dev/null +++ b/test/yarp/fixtures/whitequark/gvasgn.txt @@ -0,0 +1 @@ +$var = 10 diff --git a/test/yarp/fixtures/whitequark/hash_empty.txt b/test/yarp/fixtures/whitequark/hash_empty.txt new file mode 100644 index 0000000000..ffcd4415b0 --- /dev/null +++ b/test/yarp/fixtures/whitequark/hash_empty.txt @@ -0,0 +1 @@ +{ } diff --git a/test/yarp/fixtures/whitequark/hash_hashrocket.txt b/test/yarp/fixtures/whitequark/hash_hashrocket.txt new file mode 100644 index 0000000000..2cbb3bd96d --- /dev/null +++ b/test/yarp/fixtures/whitequark/hash_hashrocket.txt @@ -0,0 +1,3 @@ +{ 1 => 2 } + +{ 1 => 2, :foo => "bar" } diff --git a/test/yarp/fixtures/whitequark/hash_kwsplat.txt b/test/yarp/fixtures/whitequark/hash_kwsplat.txt new file mode 100644 index 0000000000..921aa97c7c --- /dev/null +++ b/test/yarp/fixtures/whitequark/hash_kwsplat.txt @@ -0,0 +1 @@ +{ foo: 2, **bar } diff --git a/test/yarp/fixtures/whitequark/hash_label.txt b/test/yarp/fixtures/whitequark/hash_label.txt new file mode 100644 index 0000000000..3aacae4b69 --- /dev/null +++ b/test/yarp/fixtures/whitequark/hash_label.txt @@ -0,0 +1 @@ +{ foo: 2 } diff --git a/test/yarp/fixtures/whitequark/hash_label_end.txt b/test/yarp/fixtures/whitequark/hash_label_end.txt new file mode 100644 index 0000000000..ac9f7c4b41 --- /dev/null +++ b/test/yarp/fixtures/whitequark/hash_label_end.txt @@ -0,0 +1,5 @@ +f(a ? "a":1) + +{ 'foo': 2 } + +{ 'foo': 2, 'bar': {}} diff --git a/test/yarp/fixtures/whitequark/hash_pair_value_omission.txt b/test/yarp/fixtures/whitequark/hash_pair_value_omission.txt new file mode 100644 index 0000000000..9d8ccb5877 --- /dev/null +++ b/test/yarp/fixtures/whitequark/hash_pair_value_omission.txt @@ -0,0 +1,5 @@ +{BAR:} + +{a:, b:} + +{puts:} diff --git a/test/yarp/fixtures/whitequark/heredoc.txt b/test/yarp/fixtures/whitequark/heredoc.txt new file mode 100644 index 0000000000..1bfc963f94 --- /dev/null +++ b/test/yarp/fixtures/whitequark/heredoc.txt @@ -0,0 +1,14 @@ +<<'HERE' +foo +bar +HERE + +<<HERE +foo +bar +HERE + +<<`HERE` +foo +bar +HERE diff --git a/test/yarp/fixtures/whitequark/if.txt b/test/yarp/fixtures/whitequark/if.txt new file mode 100644 index 0000000000..3de3525286 --- /dev/null +++ b/test/yarp/fixtures/whitequark/if.txt @@ -0,0 +1,3 @@ +if foo then bar; end + +if foo; bar; end diff --git a/test/yarp/fixtures/whitequark/if_else.txt b/test/yarp/fixtures/whitequark/if_else.txt new file mode 100644 index 0000000000..62bab8138c --- /dev/null +++ b/test/yarp/fixtures/whitequark/if_else.txt @@ -0,0 +1,3 @@ +if foo then bar; else baz; end + +if foo; bar; else baz; end diff --git a/test/yarp/fixtures/whitequark/if_elsif.txt b/test/yarp/fixtures/whitequark/if_elsif.txt new file mode 100644 index 0000000000..4d71e82214 --- /dev/null +++ b/test/yarp/fixtures/whitequark/if_elsif.txt @@ -0,0 +1 @@ +if foo; bar; elsif baz; 1; else 2; end diff --git a/test/yarp/fixtures/whitequark/if_masgn__24.txt b/test/yarp/fixtures/whitequark/if_masgn__24.txt new file mode 100644 index 0000000000..0c2c8bb04f --- /dev/null +++ b/test/yarp/fixtures/whitequark/if_masgn__24.txt @@ -0,0 +1 @@ +if (a, b = foo); end diff --git a/test/yarp/fixtures/whitequark/if_mod.txt b/test/yarp/fixtures/whitequark/if_mod.txt new file mode 100644 index 0000000000..da177b5606 --- /dev/null +++ b/test/yarp/fixtures/whitequark/if_mod.txt @@ -0,0 +1 @@ +bar if foo diff --git a/test/yarp/fixtures/whitequark/if_nl_then.txt b/test/yarp/fixtures/whitequark/if_nl_then.txt new file mode 100644 index 0000000000..b68107bad2 --- /dev/null +++ b/test/yarp/fixtures/whitequark/if_nl_then.txt @@ -0,0 +1,2 @@ +if foo +then bar end diff --git a/test/yarp/fixtures/whitequark/if_while_after_class__since_32.txt b/test/yarp/fixtures/whitequark/if_while_after_class__since_32.txt new file mode 100644 index 0000000000..1552494d28 --- /dev/null +++ b/test/yarp/fixtures/whitequark/if_while_after_class__since_32.txt @@ -0,0 +1,7 @@ +class if true; Object end::Kernel; end + +class while true; break Object end::Kernel; end + +module if true; Object end::Kernel; end + +module while true; break Object end::Kernel; end diff --git a/test/yarp/fixtures/whitequark/int.txt b/test/yarp/fixtures/whitequark/int.txt new file mode 100644 index 0000000000..6d419918c6 --- /dev/null +++ b/test/yarp/fixtures/whitequark/int.txt @@ -0,0 +1,5 @@ ++42 + +-42 + +42 diff --git a/test/yarp/fixtures/whitequark/int___LINE__.txt b/test/yarp/fixtures/whitequark/int___LINE__.txt new file mode 100644 index 0000000000..05dcf7afe0 --- /dev/null +++ b/test/yarp/fixtures/whitequark/int___LINE__.txt @@ -0,0 +1 @@ +__LINE__ diff --git a/test/yarp/fixtures/whitequark/interp_digit_var.txt b/test/yarp/fixtures/whitequark/interp_digit_var.txt new file mode 100644 index 0000000000..37487ddbaf --- /dev/null +++ b/test/yarp/fixtures/whitequark/interp_digit_var.txt @@ -0,0 +1,87 @@ + "#@1" + + "#@@1" + + %I[#@1] + + %I[#@@1] + + %Q{#@1} + + %Q{#@@1} + + %W[#@1] + + %W[#@@1] + + %i[ #@1 ] + + %i[ #@@1 ] + + %q{#@1} + + %q{#@@1} + + %r{#@1} + + %r{#@@1} + + %s{#@1} + + %s{#@@1} + + %w[ #@1 ] + + %w[ #@@1 ] + + %x{#@1} + + %x{#@@1} + + %{#@1} + + %{#@@1} + + '#@1' + + '#@@1' + + /#@1/ + + /#@@1/ + + :"#@1" + + :"#@@1" + + :'#@1' + + :'#@@1' + + `#@1` + + `#@@1` + +<<-"HERE" +#@1 +HERE + +<<-"HERE" +#@@1 +HERE + +<<-'HERE' +#@1 +HERE + +<<-'HERE' +#@@1 +HERE + +<<-`HERE` +#@1 +HERE + +<<-`HERE` +#@@1 +HERE diff --git a/test/yarp/fixtures/whitequark/ivar.txt b/test/yarp/fixtures/whitequark/ivar.txt new file mode 100644 index 0000000000..9149fc67f9 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ivar.txt @@ -0,0 +1 @@ +@foo diff --git a/test/yarp/fixtures/whitequark/ivasgn.txt b/test/yarp/fixtures/whitequark/ivasgn.txt new file mode 100644 index 0000000000..ac291799db --- /dev/null +++ b/test/yarp/fixtures/whitequark/ivasgn.txt @@ -0,0 +1 @@ +@var = 10 diff --git a/test/yarp/fixtures/whitequark/keyword_argument_omission.txt b/test/yarp/fixtures/whitequark/keyword_argument_omission.txt new file mode 100644 index 0000000000..47883dc9a5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/keyword_argument_omission.txt @@ -0,0 +1 @@ +foo(a:, b:) diff --git a/test/yarp/fixtures/whitequark/kwarg.txt b/test/yarp/fixtures/whitequark/kwarg.txt new file mode 100644 index 0000000000..ca02a1fd2a --- /dev/null +++ b/test/yarp/fixtures/whitequark/kwarg.txt @@ -0,0 +1 @@ +def f(foo:); end diff --git a/test/yarp/fixtures/whitequark/kwbegin_compstmt.txt b/test/yarp/fixtures/whitequark/kwbegin_compstmt.txt new file mode 100644 index 0000000000..33ceff2489 --- /dev/null +++ b/test/yarp/fixtures/whitequark/kwbegin_compstmt.txt @@ -0,0 +1 @@ +begin foo!; bar! end diff --git a/test/yarp/fixtures/whitequark/kwnilarg.txt b/test/yarp/fixtures/whitequark/kwnilarg.txt new file mode 100644 index 0000000000..8fc482d5af --- /dev/null +++ b/test/yarp/fixtures/whitequark/kwnilarg.txt @@ -0,0 +1,5 @@ +->(**nil) {} + +def f(**nil); end + +m { |**nil| } diff --git a/test/yarp/fixtures/whitequark/kwoptarg.txt b/test/yarp/fixtures/whitequark/kwoptarg.txt new file mode 100644 index 0000000000..dc3ce728d6 --- /dev/null +++ b/test/yarp/fixtures/whitequark/kwoptarg.txt @@ -0,0 +1 @@ +def f(foo: 1); end diff --git a/test/yarp/fixtures/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt b/test/yarp/fixtures/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt new file mode 100644 index 0000000000..99dcc7239b --- /dev/null +++ b/test/yarp/fixtures/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt @@ -0,0 +1 @@ +def f(a: nil, **); b(**) end diff --git a/test/yarp/fixtures/whitequark/kwrestarg_named.txt b/test/yarp/fixtures/whitequark/kwrestarg_named.txt new file mode 100644 index 0000000000..e17a661001 --- /dev/null +++ b/test/yarp/fixtures/whitequark/kwrestarg_named.txt @@ -0,0 +1 @@ +def f(**foo); end diff --git a/test/yarp/fixtures/whitequark/kwrestarg_unnamed.txt b/test/yarp/fixtures/whitequark/kwrestarg_unnamed.txt new file mode 100644 index 0000000000..1b26b1d2ac --- /dev/null +++ b/test/yarp/fixtures/whitequark/kwrestarg_unnamed.txt @@ -0,0 +1 @@ +def f(**); end diff --git a/test/yarp/fixtures/whitequark/lbrace_arg_after_command_args.txt b/test/yarp/fixtures/whitequark/lbrace_arg_after_command_args.txt new file mode 100644 index 0000000000..277c200c9f --- /dev/null +++ b/test/yarp/fixtures/whitequark/lbrace_arg_after_command_args.txt @@ -0,0 +1 @@ +let (:a) { m do; end } diff --git a/test/yarp/fixtures/whitequark/lparenarg_after_lvar__since_25.txt b/test/yarp/fixtures/whitequark/lparenarg_after_lvar__since_25.txt new file mode 100644 index 0000000000..dc3a98b1c8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/lparenarg_after_lvar__since_25.txt @@ -0,0 +1,3 @@ +foo (-1.3).abs + +meth (-1.3).abs diff --git a/test/yarp/fixtures/whitequark/lvar.txt b/test/yarp/fixtures/whitequark/lvar.txt new file mode 100644 index 0000000000..257cc5642c --- /dev/null +++ b/test/yarp/fixtures/whitequark/lvar.txt @@ -0,0 +1 @@ +foo diff --git a/test/yarp/fixtures/whitequark/lvar_injecting_match.txt b/test/yarp/fixtures/whitequark/lvar_injecting_match.txt new file mode 100644 index 0000000000..ba814a1088 --- /dev/null +++ b/test/yarp/fixtures/whitequark/lvar_injecting_match.txt @@ -0,0 +1 @@ +/(?<match>bar)/ =~ 'bar'; match diff --git a/test/yarp/fixtures/whitequark/lvasgn.txt b/test/yarp/fixtures/whitequark/lvasgn.txt new file mode 100644 index 0000000000..330b8eff27 --- /dev/null +++ b/test/yarp/fixtures/whitequark/lvasgn.txt @@ -0,0 +1 @@ +var = 10; var diff --git a/test/yarp/fixtures/whitequark/masgn.txt b/test/yarp/fixtures/whitequark/masgn.txt new file mode 100644 index 0000000000..032124287c --- /dev/null +++ b/test/yarp/fixtures/whitequark/masgn.txt @@ -0,0 +1,5 @@ +(foo, bar) = 1, 2 + +foo, bar = 1, 2 + +foo, bar, baz = 1, 2 diff --git a/test/yarp/fixtures/whitequark/masgn_attr.txt b/test/yarp/fixtures/whitequark/masgn_attr.txt new file mode 100644 index 0000000000..91a703ef44 --- /dev/null +++ b/test/yarp/fixtures/whitequark/masgn_attr.txt @@ -0,0 +1,5 @@ +self.A, foo = foo + +self.a, self[1, 2] = foo + +self::a, foo = foo diff --git a/test/yarp/fixtures/whitequark/masgn_cmd.txt b/test/yarp/fixtures/whitequark/masgn_cmd.txt new file mode 100644 index 0000000000..18e096f1ee --- /dev/null +++ b/test/yarp/fixtures/whitequark/masgn_cmd.txt @@ -0,0 +1 @@ +foo, bar = m foo diff --git a/test/yarp/fixtures/whitequark/masgn_const.txt b/test/yarp/fixtures/whitequark/masgn_const.txt new file mode 100644 index 0000000000..3b6fba588a --- /dev/null +++ b/test/yarp/fixtures/whitequark/masgn_const.txt @@ -0,0 +1,3 @@ +::A, foo = foo + +self::A, foo = foo diff --git a/test/yarp/fixtures/whitequark/masgn_nested.txt b/test/yarp/fixtures/whitequark/masgn_nested.txt new file mode 100644 index 0000000000..a1ccf4e385 --- /dev/null +++ b/test/yarp/fixtures/whitequark/masgn_nested.txt @@ -0,0 +1,3 @@ +((b, )) = foo + +a, (b, c) = foo diff --git a/test/yarp/fixtures/whitequark/masgn_splat.txt b/test/yarp/fixtures/whitequark/masgn_splat.txt new file mode 100644 index 0000000000..a15dab10f2 --- /dev/null +++ b/test/yarp/fixtures/whitequark/masgn_splat.txt @@ -0,0 +1,19 @@ +* = bar + +*, c, d = bar + +*b = bar + +*b, c = bar + +@foo, @@bar = *foo + +a, * = bar + +a, *, c = bar + +a, *b = bar + +a, *b, c = bar + +a, b = *foo, bar diff --git a/test/yarp/fixtures/whitequark/method_definition_in_while_cond.txt b/test/yarp/fixtures/whitequark/method_definition_in_while_cond.txt new file mode 100644 index 0000000000..6ec38906a1 --- /dev/null +++ b/test/yarp/fixtures/whitequark/method_definition_in_while_cond.txt @@ -0,0 +1,7 @@ +while def foo a = tap do end; end; break; end + +while def foo; tap do end; end; break; end + +while def self.foo a = tap do end; end; break; end + +while def self.foo; tap do end; end; break; end diff --git a/test/yarp/fixtures/whitequark/module.txt b/test/yarp/fixtures/whitequark/module.txt new file mode 100644 index 0000000000..f999df3791 --- /dev/null +++ b/test/yarp/fixtures/whitequark/module.txt @@ -0,0 +1 @@ +module Foo; end diff --git a/test/yarp/fixtures/whitequark/multiple_pattern_matches.txt b/test/yarp/fixtures/whitequark/multiple_pattern_matches.txt new file mode 100644 index 0000000000..54a4bb4774 --- /dev/null +++ b/test/yarp/fixtures/whitequark/multiple_pattern_matches.txt @@ -0,0 +1,5 @@ +{a: 0} => a: +{a: 0} => a: + +{a: 0} in a: +{a: 0} in a: diff --git a/test/yarp/fixtures/whitequark/newline_in_hash_argument.txt b/test/yarp/fixtures/whitequark/newline_in_hash_argument.txt new file mode 100644 index 0000000000..1681844331 --- /dev/null +++ b/test/yarp/fixtures/whitequark/newline_in_hash_argument.txt @@ -0,0 +1,14 @@ +case foo +in a: +0 +true +in "b": +0 +true +end + +obj.set "foo": +1 + +obj.set foo: +1 diff --git a/test/yarp/fixtures/whitequark/next.txt b/test/yarp/fixtures/whitequark/next.txt new file mode 100644 index 0000000000..7556ac2b74 --- /dev/null +++ b/test/yarp/fixtures/whitequark/next.txt @@ -0,0 +1,7 @@ +next + +next foo + +next() + +next(foo) diff --git a/test/yarp/fixtures/whitequark/next_block.txt b/test/yarp/fixtures/whitequark/next_block.txt new file mode 100644 index 0000000000..d3b51dfa21 --- /dev/null +++ b/test/yarp/fixtures/whitequark/next_block.txt @@ -0,0 +1 @@ +next fun foo do end diff --git a/test/yarp/fixtures/whitequark/nil.txt b/test/yarp/fixtures/whitequark/nil.txt new file mode 100644 index 0000000000..607602cfc6 --- /dev/null +++ b/test/yarp/fixtures/whitequark/nil.txt @@ -0,0 +1 @@ +nil diff --git a/test/yarp/fixtures/whitequark/nil_expression.txt b/test/yarp/fixtures/whitequark/nil_expression.txt new file mode 100644 index 0000000000..aabf53f005 --- /dev/null +++ b/test/yarp/fixtures/whitequark/nil_expression.txt @@ -0,0 +1,3 @@ +() + +begin end diff --git a/test/yarp/fixtures/whitequark/non_lvar_injecting_match.txt b/test/yarp/fixtures/whitequark/non_lvar_injecting_match.txt new file mode 100644 index 0000000000..f1eb7d3c2c --- /dev/null +++ b/test/yarp/fixtures/whitequark/non_lvar_injecting_match.txt @@ -0,0 +1 @@ +/#{1}(?<match>bar)/ =~ 'bar' diff --git a/test/yarp/fixtures/whitequark/not.txt b/test/yarp/fixtures/whitequark/not.txt new file mode 100644 index 0000000000..d87f68f48c --- /dev/null +++ b/test/yarp/fixtures/whitequark/not.txt @@ -0,0 +1,5 @@ +not foo + +not() + +not(foo) diff --git a/test/yarp/fixtures/whitequark/not_cmd.txt b/test/yarp/fixtures/whitequark/not_cmd.txt new file mode 100644 index 0000000000..685ec209ee --- /dev/null +++ b/test/yarp/fixtures/whitequark/not_cmd.txt @@ -0,0 +1 @@ +not m foo diff --git a/test/yarp/fixtures/whitequark/not_masgn__24.txt b/test/yarp/fixtures/whitequark/not_masgn__24.txt new file mode 100644 index 0000000000..cb93b9103d --- /dev/null +++ b/test/yarp/fixtures/whitequark/not_masgn__24.txt @@ -0,0 +1 @@ +!(a, b = foo) diff --git a/test/yarp/fixtures/whitequark/nth_ref.txt b/test/yarp/fixtures/whitequark/nth_ref.txt new file mode 100644 index 0000000000..16ef65b105 --- /dev/null +++ b/test/yarp/fixtures/whitequark/nth_ref.txt @@ -0,0 +1 @@ +$10 diff --git a/test/yarp/fixtures/whitequark/numbered_args_after_27.txt b/test/yarp/fixtures/whitequark/numbered_args_after_27.txt new file mode 100644 index 0000000000..96fe7a32e2 --- /dev/null +++ b/test/yarp/fixtures/whitequark/numbered_args_after_27.txt @@ -0,0 +1,7 @@ +-> do _1 + _9 end + +-> { _1 + _9} + +m do _1 + _9 end + +m { _1 + _9 } diff --git a/test/yarp/fixtures/whitequark/numparam_outside_block.txt b/test/yarp/fixtures/whitequark/numparam_outside_block.txt new file mode 100644 index 0000000000..37cbce182d --- /dev/null +++ b/test/yarp/fixtures/whitequark/numparam_outside_block.txt @@ -0,0 +1,9 @@ +_1 + +class << foo; _1; end + +class A; _1; end + +def self.m; _1; end + +module A; _1; end diff --git a/test/yarp/fixtures/whitequark/op_asgn.txt b/test/yarp/fixtures/whitequark/op_asgn.txt new file mode 100644 index 0000000000..a5a28b1010 --- /dev/null +++ b/test/yarp/fixtures/whitequark/op_asgn.txt @@ -0,0 +1,5 @@ +foo.A += 1 + +foo.a += 1 + +foo::a += 1 diff --git a/test/yarp/fixtures/whitequark/op_asgn_cmd.txt b/test/yarp/fixtures/whitequark/op_asgn_cmd.txt new file mode 100644 index 0000000000..017aa9bef7 --- /dev/null +++ b/test/yarp/fixtures/whitequark/op_asgn_cmd.txt @@ -0,0 +1,7 @@ +foo.A += m foo + +foo.a += m foo + +foo::A += m foo + +foo::a += m foo diff --git a/test/yarp/fixtures/whitequark/op_asgn_index.txt b/test/yarp/fixtures/whitequark/op_asgn_index.txt new file mode 100644 index 0000000000..92cfb225fc --- /dev/null +++ b/test/yarp/fixtures/whitequark/op_asgn_index.txt @@ -0,0 +1 @@ +foo[0, 1] += 2 diff --git a/test/yarp/fixtures/whitequark/op_asgn_index_cmd.txt b/test/yarp/fixtures/whitequark/op_asgn_index_cmd.txt new file mode 100644 index 0000000000..161b244bd4 --- /dev/null +++ b/test/yarp/fixtures/whitequark/op_asgn_index_cmd.txt @@ -0,0 +1 @@ +foo[0, 1] += m foo diff --git a/test/yarp/fixtures/whitequark/optarg.txt b/test/yarp/fixtures/whitequark/optarg.txt new file mode 100644 index 0000000000..9d60609961 --- /dev/null +++ b/test/yarp/fixtures/whitequark/optarg.txt @@ -0,0 +1,3 @@ +def f foo = 1; end + +def f(foo=1, bar=2); end diff --git a/test/yarp/fixtures/whitequark/or.txt b/test/yarp/fixtures/whitequark/or.txt new file mode 100644 index 0000000000..c2042ebb41 --- /dev/null +++ b/test/yarp/fixtures/whitequark/or.txt @@ -0,0 +1,3 @@ +foo or bar + +foo || bar diff --git a/test/yarp/fixtures/whitequark/or_asgn.txt b/test/yarp/fixtures/whitequark/or_asgn.txt new file mode 100644 index 0000000000..6e4ecc9f93 --- /dev/null +++ b/test/yarp/fixtures/whitequark/or_asgn.txt @@ -0,0 +1,3 @@ +foo.a ||= 1 + +foo[0, 1] ||= 2 diff --git a/test/yarp/fixtures/whitequark/parser_bug_272.txt b/test/yarp/fixtures/whitequark/parser_bug_272.txt new file mode 100644 index 0000000000..2f2f2b84d2 --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_272.txt @@ -0,0 +1 @@ +a @b do |c|;end diff --git a/test/yarp/fixtures/whitequark/parser_bug_490.txt b/test/yarp/fixtures/whitequark/parser_bug_490.txt new file mode 100644 index 0000000000..cf544b1ff6 --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_490.txt @@ -0,0 +1,5 @@ +def m; class << self; A = nil; end; end + +def m; class << self; class C; end; end; end + +def m; class << self; module M; end; end; end diff --git a/test/yarp/fixtures/whitequark/parser_bug_507.txt b/test/yarp/fixtures/whitequark/parser_bug_507.txt new file mode 100644 index 0000000000..bf616b85c8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_507.txt @@ -0,0 +1 @@ +m = -> *args do end diff --git a/test/yarp/fixtures/whitequark/parser_bug_518.txt b/test/yarp/fixtures/whitequark/parser_bug_518.txt new file mode 100644 index 0000000000..22f4afe3c8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_518.txt @@ -0,0 +1,2 @@ +class A < B +end diff --git a/test/yarp/fixtures/whitequark/parser_bug_525.txt b/test/yarp/fixtures/whitequark/parser_bug_525.txt new file mode 100644 index 0000000000..59d0e735b4 --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_525.txt @@ -0,0 +1 @@ +m1 :k => m2 do; m3() do end; end diff --git a/test/yarp/fixtures/whitequark/parser_bug_604.txt b/test/yarp/fixtures/whitequark/parser_bug_604.txt new file mode 100644 index 0000000000..7eb91c2f46 --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_604.txt @@ -0,0 +1 @@ +m a + b do end diff --git a/test/yarp/fixtures/whitequark/parser_bug_640.txt b/test/yarp/fixtures/whitequark/parser_bug_640.txt new file mode 100644 index 0000000000..fb62ded04c --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_640.txt @@ -0,0 +1,4 @@ +<<~FOO + baz\ + qux +FOO diff --git a/test/yarp/fixtures/whitequark/parser_bug_645.txt b/test/yarp/fixtures/whitequark/parser_bug_645.txt new file mode 100644 index 0000000000..cb1e5a0dcf --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_645.txt @@ -0,0 +1 @@ +-> (arg={}) {} diff --git a/test/yarp/fixtures/whitequark/parser_bug_830.txt b/test/yarp/fixtures/whitequark/parser_bug_830.txt new file mode 100644 index 0000000000..e5865e960d --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_bug_830.txt @@ -0,0 +1 @@ +/\(/ diff --git a/test/yarp/fixtures/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt b/test/yarp/fixtures/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt new file mode 100644 index 0000000000..bddae8e153 --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt @@ -0,0 +1,3 @@ +<<~HERE + #{} +HERE diff --git a/test/yarp/fixtures/whitequark/parser_slash_slash_n_escaping_in_literals.txt b/test/yarp/fixtures/whitequark/parser_slash_slash_n_escaping_in_literals.txt new file mode 100644 index 0000000000..564cebdd74 --- /dev/null +++ b/test/yarp/fixtures/whitequark/parser_slash_slash_n_escaping_in_literals.txt @@ -0,0 +1,62 @@ +"a\ +b" + +%I{a\ +b} + +%Q{a\ +b} + +%W{a\ +b} + +%i{a\ +b} + +%q{a\ +b} + +%r{a\ +b} + +%s{a\ +b} + +%w{a\ +b} + +%x{a\ +b} + +%{a\ +b} + +'a\ +b' + +/a\ +b/ + +:"a\ +b" + +:'a\ +b' + +<<-"HERE" +a\ +b +HERE + +<<-'HERE' +a\ +b +HERE + +<<-`HERE` +a\ +b +HERE + +`a\ +b` diff --git a/test/yarp/fixtures/whitequark/pattern_matching__FILE__LINE_literals.txt b/test/yarp/fixtures/whitequark/pattern_matching__FILE__LINE_literals.txt new file mode 100644 index 0000000000..fe0edaed55 --- /dev/null +++ b/test/yarp/fixtures/whitequark/pattern_matching__FILE__LINE_literals.txt @@ -0,0 +1,4 @@ + case [__FILE__, __LINE__ + 1, __ENCODING__] + in [__FILE__, __LINE__, __ENCODING__] + end + diff --git a/test/yarp/fixtures/whitequark/pattern_matching_blank_else.txt b/test/yarp/fixtures/whitequark/pattern_matching_blank_else.txt new file mode 100644 index 0000000000..6bf059af41 --- /dev/null +++ b/test/yarp/fixtures/whitequark/pattern_matching_blank_else.txt @@ -0,0 +1 @@ +case 1; in 2; 3; else; end diff --git a/test/yarp/fixtures/whitequark/pattern_matching_else.txt b/test/yarp/fixtures/whitequark/pattern_matching_else.txt new file mode 100644 index 0000000000..29f14c91ab --- /dev/null +++ b/test/yarp/fixtures/whitequark/pattern_matching_else.txt @@ -0,0 +1 @@ +case 1; in 2; 3; else; 4; end diff --git a/test/yarp/fixtures/whitequark/pattern_matching_single_line.txt b/test/yarp/fixtures/whitequark/pattern_matching_single_line.txt new file mode 100644 index 0000000000..12279afa24 --- /dev/null +++ b/test/yarp/fixtures/whitequark/pattern_matching_single_line.txt @@ -0,0 +1,3 @@ +1 => [a]; a + +1 in [a]; a diff --git a/test/yarp/fixtures/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt b/test/yarp/fixtures/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt new file mode 100644 index 0000000000..1e429335d0 --- /dev/null +++ b/test/yarp/fixtures/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt @@ -0,0 +1,11 @@ +[1, 2] => a, b; a + +[1, 2] in a, b; a + +{a: 1} => a:; a + +{a: 1} in a:; a + +{key: :value} => key: value; value + +{key: :value} in key: value; value diff --git a/test/yarp/fixtures/whitequark/postexe.txt b/test/yarp/fixtures/whitequark/postexe.txt new file mode 100644 index 0000000000..baee33af66 --- /dev/null +++ b/test/yarp/fixtures/whitequark/postexe.txt @@ -0,0 +1 @@ +END { 1 } diff --git a/test/yarp/fixtures/whitequark/preexe.txt b/test/yarp/fixtures/whitequark/preexe.txt new file mode 100644 index 0000000000..9e802f3f4e --- /dev/null +++ b/test/yarp/fixtures/whitequark/preexe.txt @@ -0,0 +1 @@ +BEGIN { 1 } diff --git a/test/yarp/fixtures/whitequark/procarg0.txt b/test/yarp/fixtures/whitequark/procarg0.txt new file mode 100644 index 0000000000..70b368e7d5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/procarg0.txt @@ -0,0 +1,3 @@ +m { |(foo, bar)| } + +m { |foo| } diff --git a/test/yarp/fixtures/whitequark/range_exclusive.txt b/test/yarp/fixtures/whitequark/range_exclusive.txt new file mode 100644 index 0000000000..9e07faed27 --- /dev/null +++ b/test/yarp/fixtures/whitequark/range_exclusive.txt @@ -0,0 +1 @@ +1...2 diff --git a/test/yarp/fixtures/whitequark/range_inclusive.txt b/test/yarp/fixtures/whitequark/range_inclusive.txt new file mode 100644 index 0000000000..8c12abf7de --- /dev/null +++ b/test/yarp/fixtures/whitequark/range_inclusive.txt @@ -0,0 +1 @@ +1..2 diff --git a/test/yarp/fixtures/whitequark/rational.txt b/test/yarp/fixtures/whitequark/rational.txt new file mode 100644 index 0000000000..e11cacc742 --- /dev/null +++ b/test/yarp/fixtures/whitequark/rational.txt @@ -0,0 +1,3 @@ +42.1r + +42r diff --git a/test/yarp/fixtures/whitequark/redo.txt b/test/yarp/fixtures/whitequark/redo.txt new file mode 100644 index 0000000000..f49789cbab --- /dev/null +++ b/test/yarp/fixtures/whitequark/redo.txt @@ -0,0 +1 @@ +redo diff --git a/test/yarp/fixtures/whitequark/regex_interp.txt b/test/yarp/fixtures/whitequark/regex_interp.txt new file mode 100644 index 0000000000..f9ad7fcbc8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/regex_interp.txt @@ -0,0 +1 @@ +/foo#{bar}baz/ diff --git a/test/yarp/fixtures/whitequark/regex_plain.txt b/test/yarp/fixtures/whitequark/regex_plain.txt new file mode 100644 index 0000000000..b86faecf98 --- /dev/null +++ b/test/yarp/fixtures/whitequark/regex_plain.txt @@ -0,0 +1 @@ +/source/im diff --git a/test/yarp/fixtures/whitequark/resbody_list.txt b/test/yarp/fixtures/whitequark/resbody_list.txt new file mode 100644 index 0000000000..e40d45fc45 --- /dev/null +++ b/test/yarp/fixtures/whitequark/resbody_list.txt @@ -0,0 +1 @@ +begin; meth; rescue Exception; bar; end diff --git a/test/yarp/fixtures/whitequark/resbody_list_mrhs.txt b/test/yarp/fixtures/whitequark/resbody_list_mrhs.txt new file mode 100644 index 0000000000..92b8bb2c02 --- /dev/null +++ b/test/yarp/fixtures/whitequark/resbody_list_mrhs.txt @@ -0,0 +1 @@ +begin; meth; rescue Exception, foo; bar; end diff --git a/test/yarp/fixtures/whitequark/resbody_list_var.txt b/test/yarp/fixtures/whitequark/resbody_list_var.txt new file mode 100644 index 0000000000..0a2fb90b6d --- /dev/null +++ b/test/yarp/fixtures/whitequark/resbody_list_var.txt @@ -0,0 +1 @@ +begin; meth; rescue foo => ex; bar; end diff --git a/test/yarp/fixtures/whitequark/resbody_var.txt b/test/yarp/fixtures/whitequark/resbody_var.txt new file mode 100644 index 0000000000..2104ac58e7 --- /dev/null +++ b/test/yarp/fixtures/whitequark/resbody_var.txt @@ -0,0 +1,3 @@ +begin; meth; rescue => @ex; bar; end + +begin; meth; rescue => ex; bar; end diff --git a/test/yarp/fixtures/whitequark/rescue.txt b/test/yarp/fixtures/whitequark/rescue.txt new file mode 100644 index 0000000000..2d3be9dc56 --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue.txt @@ -0,0 +1 @@ +begin; meth; rescue; foo; end diff --git a/test/yarp/fixtures/whitequark/rescue_else.txt b/test/yarp/fixtures/whitequark/rescue_else.txt new file mode 100644 index 0000000000..a22f8d100e --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_else.txt @@ -0,0 +1 @@ +begin; meth; rescue; foo; else; bar; end diff --git a/test/yarp/fixtures/whitequark/rescue_else_ensure.txt b/test/yarp/fixtures/whitequark/rescue_else_ensure.txt new file mode 100644 index 0000000000..167eee194a --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_else_ensure.txt @@ -0,0 +1 @@ +begin; meth; rescue; baz; else foo; ensure; bar end diff --git a/test/yarp/fixtures/whitequark/rescue_ensure.txt b/test/yarp/fixtures/whitequark/rescue_ensure.txt new file mode 100644 index 0000000000..8237257c41 --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_ensure.txt @@ -0,0 +1 @@ +begin; meth; rescue; baz; ensure; bar; end diff --git a/test/yarp/fixtures/whitequark/rescue_in_lambda_block.txt b/test/yarp/fixtures/whitequark/rescue_in_lambda_block.txt new file mode 100644 index 0000000000..ccd8ed72c5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_in_lambda_block.txt @@ -0,0 +1 @@ +-> do rescue; end diff --git a/test/yarp/fixtures/whitequark/rescue_mod.txt b/test/yarp/fixtures/whitequark/rescue_mod.txt new file mode 100644 index 0000000000..06375d3e9b --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_mod.txt @@ -0,0 +1 @@ +meth rescue bar diff --git a/test/yarp/fixtures/whitequark/rescue_mod_asgn.txt b/test/yarp/fixtures/whitequark/rescue_mod_asgn.txt new file mode 100644 index 0000000000..abf7cd9a3d --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_mod_asgn.txt @@ -0,0 +1 @@ +foo = meth rescue bar diff --git a/test/yarp/fixtures/whitequark/rescue_mod_masgn.txt b/test/yarp/fixtures/whitequark/rescue_mod_masgn.txt new file mode 100644 index 0000000000..0716eb1f67 --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_mod_masgn.txt @@ -0,0 +1 @@ +foo, bar = meth rescue [1, 2] diff --git a/test/yarp/fixtures/whitequark/rescue_mod_op_assign.txt b/test/yarp/fixtures/whitequark/rescue_mod_op_assign.txt new file mode 100644 index 0000000000..178efa3a20 --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_mod_op_assign.txt @@ -0,0 +1 @@ +foo += meth rescue bar diff --git a/test/yarp/fixtures/whitequark/rescue_without_begin_end.txt b/test/yarp/fixtures/whitequark/rescue_without_begin_end.txt new file mode 100644 index 0000000000..8416569e2c --- /dev/null +++ b/test/yarp/fixtures/whitequark/rescue_without_begin_end.txt @@ -0,0 +1 @@ +meth do; foo; rescue; bar; end diff --git a/test/yarp/fixtures/whitequark/restarg_named.txt b/test/yarp/fixtures/whitequark/restarg_named.txt new file mode 100644 index 0000000000..355cd8f493 --- /dev/null +++ b/test/yarp/fixtures/whitequark/restarg_named.txt @@ -0,0 +1 @@ +def f(*foo); end diff --git a/test/yarp/fixtures/whitequark/restarg_unnamed.txt b/test/yarp/fixtures/whitequark/restarg_unnamed.txt new file mode 100644 index 0000000000..c9932dd30c --- /dev/null +++ b/test/yarp/fixtures/whitequark/restarg_unnamed.txt @@ -0,0 +1 @@ +def f(*); end diff --git a/test/yarp/fixtures/whitequark/retry.txt b/test/yarp/fixtures/whitequark/retry.txt new file mode 100644 index 0000000000..77428f7b73 --- /dev/null +++ b/test/yarp/fixtures/whitequark/retry.txt @@ -0,0 +1 @@ +retry diff --git a/test/yarp/fixtures/whitequark/return.txt b/test/yarp/fixtures/whitequark/return.txt new file mode 100644 index 0000000000..e3d966bda0 --- /dev/null +++ b/test/yarp/fixtures/whitequark/return.txt @@ -0,0 +1,7 @@ +return + +return foo + +return() + +return(foo) diff --git a/test/yarp/fixtures/whitequark/return_block.txt b/test/yarp/fixtures/whitequark/return_block.txt new file mode 100644 index 0000000000..00723a7517 --- /dev/null +++ b/test/yarp/fixtures/whitequark/return_block.txt @@ -0,0 +1 @@ +return fun foo do end diff --git a/test/yarp/fixtures/whitequark/ruby_bug_10279.txt b/test/yarp/fixtures/whitequark/ruby_bug_10279.txt new file mode 100644 index 0000000000..4d0fb213d8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_10279.txt @@ -0,0 +1 @@ +{a: if true then 42 end} diff --git a/test/yarp/fixtures/whitequark/ruby_bug_10653.txt b/test/yarp/fixtures/whitequark/ruby_bug_10653.txt new file mode 100644 index 0000000000..51354a1f70 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_10653.txt @@ -0,0 +1,5 @@ +false ? raise do end : tap do end + +false ? raise {} : tap {} + +true ? 1.tap do |n| p n end : 0 diff --git a/test/yarp/fixtures/whitequark/ruby_bug_11107.txt b/test/yarp/fixtures/whitequark/ruby_bug_11107.txt new file mode 100644 index 0000000000..1f28cb06f6 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_11107.txt @@ -0,0 +1 @@ +p ->() do a() do end end diff --git a/test/yarp/fixtures/whitequark/ruby_bug_11380.txt b/test/yarp/fixtures/whitequark/ruby_bug_11380.txt new file mode 100644 index 0000000000..1631548e3a --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_11380.txt @@ -0,0 +1 @@ +p -> { :hello }, a: 1 do end diff --git a/test/yarp/fixtures/whitequark/ruby_bug_11873.txt b/test/yarp/fixtures/whitequark/ruby_bug_11873.txt new file mode 100644 index 0000000000..a25aa9e267 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_11873.txt @@ -0,0 +1,23 @@ +a b(c d), "x" do end + +a b(c d), /x/ do end + +a b(c d), /x/m do end + +a b(c(d)), "x" do end + +a b(c(d)), /x/ do end + +a b(c(d)), /x/m do end + +a b{c d}, "x" do end + +a b{c d}, /x/ do end + +a b{c d}, /x/m do end + +a b{c(d)}, "x" do end + +a b{c(d)}, /x/ do end + +a b{c(d)}, /x/m do end diff --git a/test/yarp/fixtures/whitequark/ruby_bug_11873_a.txt b/test/yarp/fixtures/whitequark/ruby_bug_11873_a.txt new file mode 100644 index 0000000000..1856235ce5 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_11873_a.txt @@ -0,0 +1,39 @@ +a b(c d), 1 do end + +a b(c d), 1.0 do end + +a b(c d), 1.0i do end + +a b(c d), 1.0r do end + +a b(c d), :e do end + +a b(c(d)), 1 do end + +a b(c(d)), 1.0 do end + +a b(c(d)), 1.0i do end + +a b(c(d)), 1.0r do end + +a b(c(d)), :e do end + +a b{c d}, 1 do end + +a b{c d}, 1.0 do end + +a b{c d}, 1.0i do end + +a b{c d}, 1.0r do end + +a b{c d}, :e do end + +a b{c(d)}, 1 do end + +a b{c(d)}, 1.0 do end + +a b{c(d)}, 1.0i do end + +a b{c(d)}, 1.0r do end + +a b{c(d)}, :e do end diff --git a/test/yarp/fixtures/whitequark/ruby_bug_11873_b.txt b/test/yarp/fixtures/whitequark/ruby_bug_11873_b.txt new file mode 100644 index 0000000000..1b86662008 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_11873_b.txt @@ -0,0 +1 @@ +p p{p(p);p p}, tap do end diff --git a/test/yarp/fixtures/whitequark/ruby_bug_11989.txt b/test/yarp/fixtures/whitequark/ruby_bug_11989.txt new file mode 100644 index 0000000000..d49b8614ed --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_11989.txt @@ -0,0 +1,3 @@ +p <<~"E" + x\n y +E diff --git a/test/yarp/fixtures/whitequark/ruby_bug_11990.txt b/test/yarp/fixtures/whitequark/ruby_bug_11990.txt new file mode 100644 index 0000000000..d0fe7b2739 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_11990.txt @@ -0,0 +1,3 @@ +p <<~E " y" + x +E diff --git a/test/yarp/fixtures/whitequark/ruby_bug_12073.txt b/test/yarp/fixtures/whitequark/ruby_bug_12073.txt new file mode 100644 index 0000000000..b2e3784422 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_12073.txt @@ -0,0 +1,3 @@ +a = 1; a b: 1 + +def foo raise; raise A::B, ''; end diff --git a/test/yarp/fixtures/whitequark/ruby_bug_12402.txt b/test/yarp/fixtures/whitequark/ruby_bug_12402.txt new file mode 100644 index 0000000000..060d5d95a1 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_12402.txt @@ -0,0 +1,27 @@ +foo += raise bar rescue nil + +foo += raise(bar) rescue nil + +foo = raise bar rescue nil + +foo = raise(bar) rescue nil + +foo.C += raise bar rescue nil + +foo.C += raise(bar) rescue nil + +foo.m += raise bar rescue nil + +foo.m += raise(bar) rescue nil + +foo::C ||= raise bar rescue nil + +foo::C ||= raise(bar) rescue nil + +foo::m += raise bar rescue nil + +foo::m += raise(bar) rescue nil + +foo[0] += raise bar rescue nil + +foo[0] += raise(bar) rescue nil diff --git a/test/yarp/fixtures/whitequark/ruby_bug_12669.txt b/test/yarp/fixtures/whitequark/ruby_bug_12669.txt new file mode 100644 index 0000000000..cd89689446 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_12669.txt @@ -0,0 +1,7 @@ +a += b += raise :x + +a += b = raise :x + +a = b += raise :x + +a = b = raise :x diff --git a/test/yarp/fixtures/whitequark/ruby_bug_12686.txt b/test/yarp/fixtures/whitequark/ruby_bug_12686.txt new file mode 100644 index 0000000000..7742e791b8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_12686.txt @@ -0,0 +1 @@ +f (g rescue nil) diff --git a/test/yarp/fixtures/whitequark/ruby_bug_13547.txt b/test/yarp/fixtures/whitequark/ruby_bug_13547.txt new file mode 100644 index 0000000000..29eafc3a4c --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_13547.txt @@ -0,0 +1 @@ +meth[] {} diff --git a/test/yarp/fixtures/whitequark/ruby_bug_14690.txt b/test/yarp/fixtures/whitequark/ruby_bug_14690.txt new file mode 100644 index 0000000000..b73b1d8aad --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_14690.txt @@ -0,0 +1 @@ +let () { m(a) do; end } diff --git a/test/yarp/fixtures/whitequark/ruby_bug_15789.txt b/test/yarp/fixtures/whitequark/ruby_bug_15789.txt new file mode 100644 index 0000000000..6324db5110 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_15789.txt @@ -0,0 +1,3 @@ +m ->(a = ->{_1}) {a} + +m ->(a: ->{_1}) {a} diff --git a/test/yarp/fixtures/whitequark/ruby_bug_9669.txt b/test/yarp/fixtures/whitequark/ruby_bug_9669.txt new file mode 100644 index 0000000000..60dfa09d51 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ruby_bug_9669.txt @@ -0,0 +1,8 @@ +def a b: +return +end + +o = { +a: +1 +} diff --git a/test/yarp/fixtures/whitequark/sclass.txt b/test/yarp/fixtures/whitequark/sclass.txt new file mode 100644 index 0000000000..e6aadaef21 --- /dev/null +++ b/test/yarp/fixtures/whitequark/sclass.txt @@ -0,0 +1 @@ +class << foo; nil; end diff --git a/test/yarp/fixtures/whitequark/self.txt b/test/yarp/fixtures/whitequark/self.txt new file mode 100644 index 0000000000..31f9efa4a1 --- /dev/null +++ b/test/yarp/fixtures/whitequark/self.txt @@ -0,0 +1 @@ +self diff --git a/test/yarp/fixtures/whitequark/send_attr_asgn.txt b/test/yarp/fixtures/whitequark/send_attr_asgn.txt new file mode 100644 index 0000000000..b477966b2a --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_attr_asgn.txt @@ -0,0 +1,7 @@ +foo.A = 1 + +foo.a = 1 + +foo::A = 1 + +foo::a = 1 diff --git a/test/yarp/fixtures/whitequark/send_attr_asgn_conditional.txt b/test/yarp/fixtures/whitequark/send_attr_asgn_conditional.txt new file mode 100644 index 0000000000..1279e02cfc --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_attr_asgn_conditional.txt @@ -0,0 +1 @@ +a&.b = 1 diff --git a/test/yarp/fixtures/whitequark/send_binary_op.txt b/test/yarp/fixtures/whitequark/send_binary_op.txt new file mode 100644 index 0000000000..3e3e9300b3 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_binary_op.txt @@ -0,0 +1,41 @@ +foo != 1 + +foo !~ 1 + +foo % 1 + +foo & 1 + +foo * 1 + +foo ** 1 + +foo + 1 + +foo - 1 + +foo / 1 + +foo < 1 + +foo << 1 + +foo <= 1 + +foo <=> 1 + +foo == 1 + +foo === 1 + +foo =~ 1 + +foo > 1 + +foo >= 1 + +foo >> 1 + +foo ^ 1 + +foo | 1 diff --git a/test/yarp/fixtures/whitequark/send_block_chain_cmd.txt b/test/yarp/fixtures/whitequark/send_block_chain_cmd.txt new file mode 100644 index 0000000000..c6fe1aab0e --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_block_chain_cmd.txt @@ -0,0 +1,13 @@ +meth 1 do end.fun bar + +meth 1 do end.fun bar do end + +meth 1 do end.fun {} + +meth 1 do end.fun(bar) + +meth 1 do end.fun(bar) {} + +meth 1 do end::fun bar + +meth 1 do end::fun(bar) diff --git a/test/yarp/fixtures/whitequark/send_block_conditional.txt b/test/yarp/fixtures/whitequark/send_block_conditional.txt new file mode 100644 index 0000000000..dcc8361762 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_block_conditional.txt @@ -0,0 +1 @@ +foo&.bar {} diff --git a/test/yarp/fixtures/whitequark/send_call.txt b/test/yarp/fixtures/whitequark/send_call.txt new file mode 100644 index 0000000000..99701270bb --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_call.txt @@ -0,0 +1,3 @@ +foo.(1) + +foo::(1) diff --git a/test/yarp/fixtures/whitequark/send_conditional.txt b/test/yarp/fixtures/whitequark/send_conditional.txt new file mode 100644 index 0000000000..8ecd27e0fe --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_conditional.txt @@ -0,0 +1 @@ +a&.b diff --git a/test/yarp/fixtures/whitequark/send_index.txt b/test/yarp/fixtures/whitequark/send_index.txt new file mode 100644 index 0000000000..f9c4dafc4e --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_index.txt @@ -0,0 +1 @@ +foo[1, 2] diff --git a/test/yarp/fixtures/whitequark/send_index_asgn.txt b/test/yarp/fixtures/whitequark/send_index_asgn.txt new file mode 100644 index 0000000000..e232fa3b96 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_index_asgn.txt @@ -0,0 +1 @@ +foo[1, 2] = 3 diff --git a/test/yarp/fixtures/whitequark/send_index_asgn_legacy.txt b/test/yarp/fixtures/whitequark/send_index_asgn_legacy.txt new file mode 100644 index 0000000000..e232fa3b96 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_index_asgn_legacy.txt @@ -0,0 +1 @@ +foo[1, 2] = 3 diff --git a/test/yarp/fixtures/whitequark/send_index_cmd.txt b/test/yarp/fixtures/whitequark/send_index_cmd.txt new file mode 100644 index 0000000000..32090e7536 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_index_cmd.txt @@ -0,0 +1 @@ +foo[m bar] diff --git a/test/yarp/fixtures/whitequark/send_index_legacy.txt b/test/yarp/fixtures/whitequark/send_index_legacy.txt new file mode 100644 index 0000000000..f9c4dafc4e --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_index_legacy.txt @@ -0,0 +1 @@ +foo[1, 2] diff --git a/test/yarp/fixtures/whitequark/send_lambda.txt b/test/yarp/fixtures/whitequark/send_lambda.txt new file mode 100644 index 0000000000..eadd6c9c03 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_lambda.txt @@ -0,0 +1,5 @@ +-> * { } + +-> do end + +->{ } diff --git a/test/yarp/fixtures/whitequark/send_lambda_args.txt b/test/yarp/fixtures/whitequark/send_lambda_args.txt new file mode 100644 index 0000000000..68392f2f34 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_lambda_args.txt @@ -0,0 +1,3 @@ +-> (a) { } + +->(a) { } diff --git a/test/yarp/fixtures/whitequark/send_lambda_args_noparen.txt b/test/yarp/fixtures/whitequark/send_lambda_args_noparen.txt new file mode 100644 index 0000000000..c0ae077f95 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_lambda_args_noparen.txt @@ -0,0 +1,3 @@ +-> a: 1 { } + +-> a: { } diff --git a/test/yarp/fixtures/whitequark/send_lambda_args_shadow.txt b/test/yarp/fixtures/whitequark/send_lambda_args_shadow.txt new file mode 100644 index 0000000000..230f35ab89 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_lambda_args_shadow.txt @@ -0,0 +1 @@ +->(a; foo, bar) { } diff --git a/test/yarp/fixtures/whitequark/send_lambda_legacy.txt b/test/yarp/fixtures/whitequark/send_lambda_legacy.txt new file mode 100644 index 0000000000..a509407c43 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_lambda_legacy.txt @@ -0,0 +1 @@ +->{ } diff --git a/test/yarp/fixtures/whitequark/send_op_asgn_conditional.txt b/test/yarp/fixtures/whitequark/send_op_asgn_conditional.txt new file mode 100644 index 0000000000..906088dcd1 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_op_asgn_conditional.txt @@ -0,0 +1 @@ +a&.b &&= 1 diff --git a/test/yarp/fixtures/whitequark/send_plain.txt b/test/yarp/fixtures/whitequark/send_plain.txt new file mode 100644 index 0000000000..ebaf1d18c7 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_plain.txt @@ -0,0 +1,5 @@ +foo.fun + +foo::Fun() + +foo::fun diff --git a/test/yarp/fixtures/whitequark/send_plain_cmd.txt b/test/yarp/fixtures/whitequark/send_plain_cmd.txt new file mode 100644 index 0000000000..e3fd63f272 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_plain_cmd.txt @@ -0,0 +1,5 @@ +foo.fun bar + +foo::Fun bar + +foo::fun bar diff --git a/test/yarp/fixtures/whitequark/send_self.txt b/test/yarp/fixtures/whitequark/send_self.txt new file mode 100644 index 0000000000..f084b9bca7 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_self.txt @@ -0,0 +1,5 @@ +fun + +fun! + +fun(1) diff --git a/test/yarp/fixtures/whitequark/send_self_block.txt b/test/yarp/fixtures/whitequark/send_self_block.txt new file mode 100644 index 0000000000..1cd6703c82 --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_self_block.txt @@ -0,0 +1,7 @@ +fun do end + +fun { } + +fun() { } + +fun(1) { } diff --git a/test/yarp/fixtures/whitequark/send_unary_op.txt b/test/yarp/fixtures/whitequark/send_unary_op.txt new file mode 100644 index 0000000000..73814d199f --- /dev/null +++ b/test/yarp/fixtures/whitequark/send_unary_op.txt @@ -0,0 +1,5 @@ ++foo + +-foo + +~foo diff --git a/test/yarp/fixtures/whitequark/slash_newline_in_heredocs.txt b/test/yarp/fixtures/whitequark/slash_newline_in_heredocs.txt new file mode 100644 index 0000000000..4962a058ea --- /dev/null +++ b/test/yarp/fixtures/whitequark/slash_newline_in_heredocs.txt @@ -0,0 +1,13 @@ +<<-E + 1 \ + 2 + 3 +E + + +<<~E + 1 \ + 2 + 3 +E + diff --git a/test/yarp/fixtures/whitequark/space_args_arg.txt b/test/yarp/fixtures/whitequark/space_args_arg.txt new file mode 100644 index 0000000000..47957cba54 --- /dev/null +++ b/test/yarp/fixtures/whitequark/space_args_arg.txt @@ -0,0 +1 @@ +fun (1) diff --git a/test/yarp/fixtures/whitequark/space_args_arg_block.txt b/test/yarp/fixtures/whitequark/space_args_arg_block.txt new file mode 100644 index 0000000000..5560a82818 --- /dev/null +++ b/test/yarp/fixtures/whitequark/space_args_arg_block.txt @@ -0,0 +1,5 @@ +foo.fun (1) {} + +foo::fun (1) {} + +fun (1) {} diff --git a/test/yarp/fixtures/whitequark/space_args_arg_call.txt b/test/yarp/fixtures/whitequark/space_args_arg_call.txt new file mode 100644 index 0000000000..3b0ae831fe --- /dev/null +++ b/test/yarp/fixtures/whitequark/space_args_arg_call.txt @@ -0,0 +1 @@ +fun (1).to_i diff --git a/test/yarp/fixtures/whitequark/space_args_arg_newline.txt b/test/yarp/fixtures/whitequark/space_args_arg_newline.txt new file mode 100644 index 0000000000..a6cdac6ed1 --- /dev/null +++ b/test/yarp/fixtures/whitequark/space_args_arg_newline.txt @@ -0,0 +1,2 @@ +fun (1 +) diff --git a/test/yarp/fixtures/whitequark/space_args_block.txt b/test/yarp/fixtures/whitequark/space_args_block.txt new file mode 100644 index 0000000000..555a097605 --- /dev/null +++ b/test/yarp/fixtures/whitequark/space_args_block.txt @@ -0,0 +1 @@ +fun () {} diff --git a/test/yarp/fixtures/whitequark/space_args_cmd.txt b/test/yarp/fixtures/whitequark/space_args_cmd.txt new file mode 100644 index 0000000000..a749695cb7 --- /dev/null +++ b/test/yarp/fixtures/whitequark/space_args_cmd.txt @@ -0,0 +1 @@ +fun (f bar) diff --git a/test/yarp/fixtures/whitequark/string___FILE__.txt b/test/yarp/fixtures/whitequark/string___FILE__.txt new file mode 100644 index 0000000000..4815727d05 --- /dev/null +++ b/test/yarp/fixtures/whitequark/string___FILE__.txt @@ -0,0 +1 @@ +__FILE__ diff --git a/test/yarp/fixtures/whitequark/string_concat.txt b/test/yarp/fixtures/whitequark/string_concat.txt new file mode 100644 index 0000000000..30cc4f8116 --- /dev/null +++ b/test/yarp/fixtures/whitequark/string_concat.txt @@ -0,0 +1 @@ +"foo#@a" "bar" diff --git a/test/yarp/fixtures/whitequark/string_dvar.txt b/test/yarp/fixtures/whitequark/string_dvar.txt new file mode 100644 index 0000000000..bbe5b617b2 --- /dev/null +++ b/test/yarp/fixtures/whitequark/string_dvar.txt @@ -0,0 +1 @@ +"#@a #@@a #$a" diff --git a/test/yarp/fixtures/whitequark/string_interp.txt b/test/yarp/fixtures/whitequark/string_interp.txt new file mode 100644 index 0000000000..5fdd803341 --- /dev/null +++ b/test/yarp/fixtures/whitequark/string_interp.txt @@ -0,0 +1 @@ +"foo#{bar}baz" diff --git a/test/yarp/fixtures/whitequark/string_plain.txt b/test/yarp/fixtures/whitequark/string_plain.txt new file mode 100644 index 0000000000..4aca78decb --- /dev/null +++ b/test/yarp/fixtures/whitequark/string_plain.txt @@ -0,0 +1,3 @@ +%q(foobar) + +'foobar' diff --git a/test/yarp/fixtures/whitequark/super.txt b/test/yarp/fixtures/whitequark/super.txt new file mode 100644 index 0000000000..9e68a9e988 --- /dev/null +++ b/test/yarp/fixtures/whitequark/super.txt @@ -0,0 +1,5 @@ +super foo + +super() + +super(foo) diff --git a/test/yarp/fixtures/whitequark/super_block.txt b/test/yarp/fixtures/whitequark/super_block.txt new file mode 100644 index 0000000000..05a7d7fdd8 --- /dev/null +++ b/test/yarp/fixtures/whitequark/super_block.txt @@ -0,0 +1,3 @@ +super do end + +super foo, bar do end diff --git a/test/yarp/fixtures/whitequark/symbol_interp.txt b/test/yarp/fixtures/whitequark/symbol_interp.txt new file mode 100644 index 0000000000..d5011b270d --- /dev/null +++ b/test/yarp/fixtures/whitequark/symbol_interp.txt @@ -0,0 +1 @@ +:"foo#{bar}baz" diff --git a/test/yarp/fixtures/whitequark/symbol_plain.txt b/test/yarp/fixtures/whitequark/symbol_plain.txt new file mode 100644 index 0000000000..fd1fd0017c --- /dev/null +++ b/test/yarp/fixtures/whitequark/symbol_plain.txt @@ -0,0 +1,3 @@ +:'foo' + +:foo diff --git a/test/yarp/fixtures/whitequark/ternary.txt b/test/yarp/fixtures/whitequark/ternary.txt new file mode 100644 index 0000000000..3a149d4e1c --- /dev/null +++ b/test/yarp/fixtures/whitequark/ternary.txt @@ -0,0 +1 @@ +foo ? 1 : 2 diff --git a/test/yarp/fixtures/whitequark/ternary_ambiguous_symbol.txt b/test/yarp/fixtures/whitequark/ternary_ambiguous_symbol.txt new file mode 100644 index 0000000000..19aa523c07 --- /dev/null +++ b/test/yarp/fixtures/whitequark/ternary_ambiguous_symbol.txt @@ -0,0 +1 @@ +t=1;(foo)?t:T diff --git a/test/yarp/fixtures/whitequark/trailing_forward_arg.txt b/test/yarp/fixtures/whitequark/trailing_forward_arg.txt new file mode 100644 index 0000000000..043870ade2 --- /dev/null +++ b/test/yarp/fixtures/whitequark/trailing_forward_arg.txt @@ -0,0 +1 @@ +def foo(a, b, ...); bar(a, 42, ...); end diff --git a/test/yarp/fixtures/whitequark/true.txt b/test/yarp/fixtures/whitequark/true.txt new file mode 100644 index 0000000000..27ba77ddaf --- /dev/null +++ b/test/yarp/fixtures/whitequark/true.txt @@ -0,0 +1 @@ +true diff --git a/test/yarp/fixtures/whitequark/unary_num_pow_precedence.txt b/test/yarp/fixtures/whitequark/unary_num_pow_precedence.txt new file mode 100644 index 0000000000..f0343e3c8b --- /dev/null +++ b/test/yarp/fixtures/whitequark/unary_num_pow_precedence.txt @@ -0,0 +1,5 @@ ++2.0 ** 10 + +-2 ** 10 + +-2.0 ** 10 diff --git a/test/yarp/fixtures/whitequark/undef.txt b/test/yarp/fixtures/whitequark/undef.txt new file mode 100644 index 0000000000..3e88ec7084 --- /dev/null +++ b/test/yarp/fixtures/whitequark/undef.txt @@ -0,0 +1 @@ +undef foo, :bar, :"foo#{1}" diff --git a/test/yarp/fixtures/whitequark/unless.txt b/test/yarp/fixtures/whitequark/unless.txt new file mode 100644 index 0000000000..d04043ed90 --- /dev/null +++ b/test/yarp/fixtures/whitequark/unless.txt @@ -0,0 +1,3 @@ +unless foo then bar; end + +unless foo; bar; end diff --git a/test/yarp/fixtures/whitequark/unless_else.txt b/test/yarp/fixtures/whitequark/unless_else.txt new file mode 100644 index 0000000000..8243d42031 --- /dev/null +++ b/test/yarp/fixtures/whitequark/unless_else.txt @@ -0,0 +1,3 @@ +unless foo then bar; else baz; end + +unless foo; bar; else baz; end diff --git a/test/yarp/fixtures/whitequark/unless_mod.txt b/test/yarp/fixtures/whitequark/unless_mod.txt new file mode 100644 index 0000000000..2d0376a310 --- /dev/null +++ b/test/yarp/fixtures/whitequark/unless_mod.txt @@ -0,0 +1 @@ +bar unless foo diff --git a/test/yarp/fixtures/whitequark/until.txt b/test/yarp/fixtures/whitequark/until.txt new file mode 100644 index 0000000000..06082233cb --- /dev/null +++ b/test/yarp/fixtures/whitequark/until.txt @@ -0,0 +1,3 @@ +until foo do meth end + +until foo; meth end diff --git a/test/yarp/fixtures/whitequark/until_mod.txt b/test/yarp/fixtures/whitequark/until_mod.txt new file mode 100644 index 0000000000..46a85d2ba9 --- /dev/null +++ b/test/yarp/fixtures/whitequark/until_mod.txt @@ -0,0 +1 @@ +meth until foo diff --git a/test/yarp/fixtures/whitequark/until_post.txt b/test/yarp/fixtures/whitequark/until_post.txt new file mode 100644 index 0000000000..988e43b665 --- /dev/null +++ b/test/yarp/fixtures/whitequark/until_post.txt @@ -0,0 +1 @@ +begin meth end until foo diff --git a/test/yarp/fixtures/whitequark/var_and_asgn.txt b/test/yarp/fixtures/whitequark/var_and_asgn.txt new file mode 100644 index 0000000000..25502968f9 --- /dev/null +++ b/test/yarp/fixtures/whitequark/var_and_asgn.txt @@ -0,0 +1 @@ +a &&= 1 diff --git a/test/yarp/fixtures/whitequark/var_op_asgn.txt b/test/yarp/fixtures/whitequark/var_op_asgn.txt new file mode 100644 index 0000000000..402d818a7e --- /dev/null +++ b/test/yarp/fixtures/whitequark/var_op_asgn.txt @@ -0,0 +1,7 @@ +@@var |= 10 + +@a |= 1 + +a += 1 + +def a; @@var |= 10; end diff --git a/test/yarp/fixtures/whitequark/var_op_asgn_cmd.txt b/test/yarp/fixtures/whitequark/var_op_asgn_cmd.txt new file mode 100644 index 0000000000..33f4bc0e73 --- /dev/null +++ b/test/yarp/fixtures/whitequark/var_op_asgn_cmd.txt @@ -0,0 +1 @@ +foo += m foo diff --git a/test/yarp/fixtures/whitequark/var_or_asgn.txt b/test/yarp/fixtures/whitequark/var_or_asgn.txt new file mode 100644 index 0000000000..aa30b3d5ca --- /dev/null +++ b/test/yarp/fixtures/whitequark/var_or_asgn.txt @@ -0,0 +1 @@ +a ||= 1 diff --git a/test/yarp/fixtures/whitequark/when_multi.txt b/test/yarp/fixtures/whitequark/when_multi.txt new file mode 100644 index 0000000000..b4fbd33125 --- /dev/null +++ b/test/yarp/fixtures/whitequark/when_multi.txt @@ -0,0 +1 @@ +case foo; when 'bar', 'baz'; bar; end diff --git a/test/yarp/fixtures/whitequark/when_splat.txt b/test/yarp/fixtures/whitequark/when_splat.txt new file mode 100644 index 0000000000..695e5da34e --- /dev/null +++ b/test/yarp/fixtures/whitequark/when_splat.txt @@ -0,0 +1 @@ +case foo; when 1, *baz; bar; when *foo; end diff --git a/test/yarp/fixtures/whitequark/when_then.txt b/test/yarp/fixtures/whitequark/when_then.txt new file mode 100644 index 0000000000..63293452b3 --- /dev/null +++ b/test/yarp/fixtures/whitequark/when_then.txt @@ -0,0 +1 @@ +case foo; when 'bar' then bar; end diff --git a/test/yarp/fixtures/whitequark/while.txt b/test/yarp/fixtures/whitequark/while.txt new file mode 100644 index 0000000000..28b204f247 --- /dev/null +++ b/test/yarp/fixtures/whitequark/while.txt @@ -0,0 +1,3 @@ +while foo do meth end + +while foo; meth end diff --git a/test/yarp/fixtures/whitequark/while_mod.txt b/test/yarp/fixtures/whitequark/while_mod.txt new file mode 100644 index 0000000000..ce3cf01d14 --- /dev/null +++ b/test/yarp/fixtures/whitequark/while_mod.txt @@ -0,0 +1 @@ +meth while foo diff --git a/test/yarp/fixtures/whitequark/while_post.txt b/test/yarp/fixtures/whitequark/while_post.txt new file mode 100644 index 0000000000..ac6e05008b --- /dev/null +++ b/test/yarp/fixtures/whitequark/while_post.txt @@ -0,0 +1 @@ +begin meth end while foo diff --git a/test/yarp/fixtures/whitequark/xstring_interp.txt b/test/yarp/fixtures/whitequark/xstring_interp.txt new file mode 100644 index 0000000000..dfede8123f --- /dev/null +++ b/test/yarp/fixtures/whitequark/xstring_interp.txt @@ -0,0 +1 @@ +`foo#{bar}baz` diff --git a/test/yarp/fixtures/whitequark/xstring_plain.txt b/test/yarp/fixtures/whitequark/xstring_plain.txt new file mode 100644 index 0000000000..fce255049d --- /dev/null +++ b/test/yarp/fixtures/whitequark/xstring_plain.txt @@ -0,0 +1 @@ +`foobar` diff --git a/test/yarp/fixtures/whitequark/yield.txt b/test/yarp/fixtures/whitequark/yield.txt new file mode 100644 index 0000000000..0ecf639589 --- /dev/null +++ b/test/yarp/fixtures/whitequark/yield.txt @@ -0,0 +1,7 @@ +yield + +yield foo + +yield() + +yield(foo) diff --git a/test/yarp/fixtures/whitequark/zsuper.txt b/test/yarp/fixtures/whitequark/zsuper.txt new file mode 100644 index 0000000000..16f5c2d3aa --- /dev/null +++ b/test/yarp/fixtures/whitequark/zsuper.txt @@ -0,0 +1 @@ +super diff --git a/test/yarp/fixtures/xstring.txt b/test/yarp/fixtures/xstring.txt new file mode 100644 index 0000000000..01bcc09fc5 --- /dev/null +++ b/test/yarp/fixtures/xstring.txt @@ -0,0 +1,7 @@ +%x[foo] + +`foo #{bar} baz` + +`f\oo` + +`foo` diff --git a/test/yarp/fixtures/yield.txt b/test/yarp/fixtures/yield.txt new file mode 100644 index 0000000000..d75ab57a18 --- /dev/null +++ b/test/yarp/fixtures/yield.txt @@ -0,0 +1,7 @@ +yield + +yield() + +yield(1) + +yield(1, 2, 3) diff --git a/test/yarp/heredoc_dedent_test.rb b/test/yarp/heredoc_dedent_test.rb new file mode 100644 index 0000000000..64627c564f --- /dev/null +++ b/test/yarp/heredoc_dedent_test.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +module YARP + class HeredocDedentTest < Test::Unit::TestCase + filepath = File.expand_path("fixtures/tilde_heredocs.txt", __dir__) + + File.read(filepath).split(/(?=\n)\n(?=<)/).each_with_index do |heredoc, index| + define_method "test_heredoc_#{index}" do + parts = YARP.parse(heredoc).value.statements.body.first.parts + actual = parts.map { |part| part.is_a?(StringNode) ? part.unescaped : "1" }.join + + assert_equal(eval(heredoc), actual, "Expected heredocs to match.") + end + end + end +end diff --git a/test/yarp/language_server_test.rb b/test/yarp/language_server_test.rb new file mode 100644 index 0000000000..4561911c01 --- /dev/null +++ b/test/yarp/language_server_test.rb @@ -0,0 +1,363 @@ +# frozen_string_literal: true + +require_relative "yarp_test_helper" +require "yarp/language_server" + +module YARP + class LanguageServerTest < Test::Unit::TestCase + module Request + # Represents a hash pattern. + class Shape + attr_reader :values + + def initialize(values) + @values = values + end + + def ===(other) + values.all? do |key, value| + value == :any ? other.key?(key) : value === other[key] + end + end + end + + # Represents an array pattern. + class Tuple + attr_reader :values + + def initialize(values) + @values = values + end + + def ===(other) + values.each_with_index.all? { |value, index| value === other[index] } + end + end + + def self.[](value) + case value + when Array + Tuple.new(value.map { |child| self[child] }) + when Hash + Shape.new(value.transform_values { |child| self[child] }) + else + value + end + end + end + + class Initialize < Struct.new(:id) + def to_hash + { method: "initialize", id: id } + end + end + + class Shutdown < Struct.new(:id) + def to_hash + { method: "shutdown", id: id } + end + end + + class TextDocumentDidOpen < Struct.new(:uri, :text) + def to_hash + { + method: "textDocument/didOpen", + params: { textDocument: { uri: uri, text: text } } + } + end + end + + class TextDocumentDidChange < Struct.new(:uri, :text) + def to_hash + { + method: "textDocument/didChange", + params: { + textDocument: { uri: uri }, + contentChanges: [{ text: text }] + } + } + end + end + + class TextDocumentDidClose < Struct.new(:uri) + def to_hash + { + method: "textDocument/didClose", + params: { textDocument: { uri: uri } } + } + end + end + + class TextDocumentCodeAction < Struct.new(:id, :uri, :diagnostics) + def to_hash + { + method: "textDocument/codeAction", + id: id, + params: { + textDocument: { uri: uri }, + context: { + diagnostics: diagnostics, + }, + }, + } + end + end + + class TextDocumentDiagnostic < Struct.new(:id, :uri) + def to_hash + { + method: "textDocument/diagnostic", + id: id, + params: { + textDocument: { uri: uri }, + } + } + end + end + + def test_reading_file + Tempfile.create(%w[test- .rb]) do |file| + file.write("class Foo; end") + file.rewind + + responses = run_server([ + Initialize.new(1), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + end + end + + def test_clean_shutdown + responses = run_server([Initialize.new(1), Shutdown.new(2)]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: {} } + ]] + + assert_operator(shape, :===, responses) + end + + def test_file_that_does_not_exist + responses = run_server([ + Initialize.new(1), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + end + + def test_code_action_request + message = "this is an error" + diagnostic = { + range: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } }, + message: message, + severity: 1, + } + responses = run_server([ + Initialize.new(1), + TextDocumentDidOpen.new("file:///path/to/file.rb", <<~RUBY), + 1 + ( + RUBY + TextDocumentCodeAction.new(2, "file:///path/to/file.rb", [diagnostic]), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: [ + { + title: "Report incorrect error: `#{message}`", + kind: "quickfix", + diagnostics: [diagnostic], + command: { + title: "Report incorrect error", + command: "vscode.open", + arguments: [String] + } + } + ], + }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + assert(responses.dig(1, :result, 0, :command, :arguments, 0).include?(URI.encode_www_form_component(message))) + end + + def test_code_action_request_no_diagnostic + responses = run_server([ + Initialize.new(1), + TextDocumentDidOpen.new("file:///path/to/file.rb", <<~RUBY), + 1 + ( + RUBY + TextDocumentCodeAction.new(2, "file:///path/to/file.rb", []), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: [] }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + end + + def test_code_action_request_no_content + message = "this is an error" + diagnostic = { + range: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } }, + message: message, + severity: 1, + } + responses = run_server([ + Initialize.new(1), + TextDocumentCodeAction.new(2, "file:///path/to/file.rb", [diagnostic]), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: nil }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + end + + def test_diagnostics_request_error + responses = run_server([ + Initialize.new(1), + TextDocumentDidOpen.new("file:///path/to/file.rb", <<~RUBY), + 1 + ( + RUBY + TextDocumentDiagnostic.new(2, "file:///path/to/file.rb"), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: { kind: "full", items: [ + { + range: { + start: { line: Integer, character: Integer }, + end: { line: Integer, character: Integer } + }, + message: String, + severity: Integer + }, + ] } }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + assert(responses.dig(1, :result, :items).count { |item| item[:severity] == 1 } > 0) + end + + def test_diagnostics_request_warning + responses = run_server([ + Initialize.new(1), + TextDocumentDidOpen.new("file:///path/to/file.rb", <<~RUBY), + a/b /c + RUBY + TextDocumentDiagnostic.new(2, "file:///path/to/file.rb"), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: { kind: "full", items: [ + { + range: { + start: { line: Integer, character: Integer }, + end: { line: Integer, character: Integer } + }, + message: String, + severity: Integer + }, + ] } }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + assert(responses.dig(1, :result, :items).count { |item| item[:severity] == 2 } > 0) + end + + def test_diagnostics_request_nothing + responses = run_server([ + Initialize.new(1), + TextDocumentDidOpen.new("file:///path/to/file.rb", <<~RUBY), + a = 1 + RUBY + TextDocumentDiagnostic.new(2, "file:///path/to/file.rb"), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: { kind: "full", items: [] } }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + assert_equal(0, responses.dig(1, :result, :items).size) + end + + def test_diagnostics_request_no_content + responses = run_server([ + Initialize.new(1), + TextDocumentDiagnostic.new(2, "file:///path/to/file.rb"), + Shutdown.new(3) + ]) + + shape = Request[[ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: nil }, + { id: 3, result: {} } + ]] + + assert_operator(shape, :===, responses) + end + + private + + def write(content) + request = content.to_hash.merge(jsonrpc: "2.0").to_json + "Content-Length: #{request.bytesize}\r\n\r\n#{request}" + end + + def read(content) + [].tap do |messages| + while (headers = content.gets("\r\n\r\n")) + source = content.read(headers[/Content-Length: (\d+)/i, 1].to_i) + messages << JSON.parse(source, symbolize_names: true) + end + end + end + + def run_server(messages) + input = StringIO.new(messages.map { |message| write(message) }.join) + output = StringIO.new + + LanguageServer.new( + input: input, + output: output, + ).run + + read(output.tap(&:rewind)) + end + end +end diff --git a/test/yarp/location_test.rb b/test/yarp/location_test.rb new file mode 100644 index 0000000000..2f551949e5 --- /dev/null +++ b/test/yarp/location_test.rb @@ -0,0 +1,766 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +module YARP + class LocationTest < Test::Unit::TestCase + def test_AliasNode + assert_location(AliasNode, "alias foo bar") + end + + def test_AlternationPatternNode + assert_location(AlternationPatternNode, "foo => bar | baz", 7...16, &:pattern) + end + + def test_AndNode + assert_location(AndNode, "foo and bar") + assert_location(AndNode, "foo && bar") + end + + def test_ArgumentsNode + assert_location(ArgumentsNode, "foo(bar, baz, qux)", 4...17, &:arguments) + end + + def test_ArrayNode + assert_location(ArrayNode, "[foo, bar, baz]") + assert_location(ArrayNode, "%i[foo bar baz]") + assert_location(ArrayNode, "%I[foo bar baz]") + assert_location(ArrayNode, "%w[foo bar baz]") + assert_location(ArrayNode, "%W[foo bar baz]") + end + + def test_ArrayPatternNode + assert_location(ArrayPatternNode, "foo => bar, baz", 7...15, &:pattern) + assert_location(ArrayPatternNode, "foo => [bar, baz]", 7...17, &:pattern) + assert_location(ArrayPatternNode, "foo => *bar", 7...11, &:pattern) + assert_location(ArrayPatternNode, "foo => []", 7...9, &:pattern) + assert_location(ArrayPatternNode, "foo => Foo[]", 7...12, &:pattern) + assert_location(ArrayPatternNode, "foo => Foo[bar]", 7...15, &:pattern) + end + + def test_AssocNode + assert_location(AssocNode, "{ foo: :bar }", 2...11) { |node| node.elements.first } + assert_location(AssocNode, "{ :foo => :bar }", 2...14) { |node| node.elements.first } + assert_location(AssocNode, "foo(bar: :baz)", 4...13) { |node| node.arguments.arguments.first.elements.first } + end + + def test_AssocSplatNode + assert_location(AssocSplatNode, "{ **foo }", 2...7) { |node| node.elements.first } + assert_location(AssocSplatNode, "foo(**bar)", 4...9) { |node| node.arguments.arguments.first.elements.first } + end + + def test_BackReferenceReadNode + assert_location(BackReferenceReadNode, "$+") + end + + def test_BeginNode + assert_location(BeginNode, "begin foo end") + assert_location(BeginNode, "begin foo rescue bar end") + assert_location(BeginNode, "begin foo; rescue bar\nelse baz end") + assert_location(BeginNode, "begin foo; rescue bar\nelse baz\nensure qux end") + + assert_location(BeginNode, "class Foo\nrescue then end", 10..25, &:statements) + assert_location(BeginNode, "module Foo\nrescue then end", 11..26, &:statements) + end + + def test_BlockArgumentNode + assert_location(BlockArgumentNode, "foo(&bar)", 4...8) { |node| node.arguments.arguments.last } + end + + def test_BlockNode + assert_location(BlockNode, "foo {}", 4...6, &:block) + assert_location(BlockNode, "foo do end", 4...10, &:block) + end + + def test_BlockParameterNode + assert_location(BlockParameterNode, "def foo(&bar) end", 8...12) { |node| node.parameters.block } + end + + def test_BlockParametersNode + assert_location(BlockParametersNode, "foo { || }", 6...8) { |node| node.block.parameters } + assert_location(BlockParametersNode, "foo { |bar| baz }", 6...11) { |node| node.block.parameters } + assert_location(BlockParametersNode, "foo { |bar; baz| baz }", 6...16) { |node| node.block.parameters } + + assert_location(BlockParametersNode, "-> () {}", 3...5, &:parameters) + assert_location(BlockParametersNode, "-> (bar) { baz }", 3...8, &:parameters) + assert_location(BlockParametersNode, "-> (bar; baz) { baz }", 3...13, &:parameters) + end + + def test_BreakNode + assert_location(BreakNode, "break") + assert_location(BreakNode, "break foo") + assert_location(BreakNode, "break foo, bar") + assert_location(BreakNode, "break(foo)") + end + + def test_CallNode + assert_location(CallNode, "foo") + assert_location(CallNode, "foo?") + assert_location(CallNode, "foo!") + + assert_location(CallNode, "foo()") + assert_location(CallNode, "foo?()") + assert_location(CallNode, "foo!()") + + assert_location(CallNode, "foo(bar)") + assert_location(CallNode, "foo?(bar)") + assert_location(CallNode, "foo!(bar)") + + assert_location(CallNode, "!foo") + assert_location(CallNode, "~foo") + assert_location(CallNode, "+foo") + assert_location(CallNode, "-foo") + + assert_location(CallNode, "not foo") + assert_location(CallNode, "not(foo)") + assert_location(CallNode, "not()") + + assert_location(CallNode, "foo + bar") + assert_location(CallNode, "foo -\n bar") + + assert_location(CallNode, "Foo()") + assert_location(CallNode, "Foo(bar)") + + assert_location(CallNode, "Foo::Bar()") + assert_location(CallNode, "Foo::Bar(baz)") + + assert_location(CallNode, "Foo::bar") + assert_location(CallNode, "Foo::bar()") + assert_location(CallNode, "Foo::bar(baz)") + + assert_location(CallNode, "Foo.bar") + assert_location(CallNode, "Foo.bar()") + assert_location(CallNode, "Foo.bar(baz)") + + assert_location(CallNode, "foo::bar") + assert_location(CallNode, "foo::bar()") + assert_location(CallNode, "foo::bar(baz)") + + assert_location(CallNode, "foo.bar") + assert_location(CallNode, "foo.bar()") + assert_location(CallNode, "foo.bar(baz)") + + assert_location(CallNode, "foo&.bar") + assert_location(CallNode, "foo&.bar()") + assert_location(CallNode, "foo&.bar(baz)") + + assert_location(CallNode, "foo[]") + assert_location(CallNode, "foo[bar]") + assert_location(CallNode, "foo[bar, baz]") + + assert_location(CallNode, "foo[] = 1") + assert_location(CallNode, "foo[bar] = 1") + assert_location(CallNode, "foo[bar, baz] = 1") + + assert_location(CallNode, "foo.()") + assert_location(CallNode, "foo.(bar)") + + assert_location(CallNode, "foo&.()") + assert_location(CallNode, "foo&.(bar)") + + assert_location(CallNode, "foo::()") + assert_location(CallNode, "foo::(bar)") + assert_location(CallNode, "foo::(bar, baz)") + + assert_location(CallNode, "foo bar baz") + assert_location(CallNode, "foo bar('baz')") + end + + def test_CallOperatorAndWriteNode + assert_location(CallOperatorAndWriteNode, "foo.foo &&= bar") + assert_location(CallOperatorAndWriteNode, "foo[foo] &&= bar") + end + + def test_CallOperatorWriteNode + assert_location(CallOperatorWriteNode, "foo.foo += bar") + assert_location(CallOperatorWriteNode, "foo[foo] += bar") + end + + def test_CallOperatorOrWriteNode + assert_location(CallOperatorOrWriteNode, "foo.foo ||= bar") + assert_location(CallOperatorOrWriteNode, "foo[foo] ||= bar") + end + + def test_CapturePatternNode + assert_location(CapturePatternNode, "case foo; in bar => baz; end", 13...23) do |node| + node.conditions.first.pattern + end + end + + def test_CaseNode + assert_location(CaseNode, "case foo; when bar; end") + assert_location(CaseNode, "case foo; when bar; else; end") + assert_location(CaseNode, "case foo; when bar; when baz; end") + assert_location(CaseNode, "case foo; when bar; when baz; else; end") + end + + def test_ClassNode + assert_location(ClassNode, "class Foo end") + assert_location(ClassNode, "class Foo < Bar end") + end + + def test_ClassVariableOperatorAndWriteNode + assert_location(ClassVariableOperatorAndWriteNode, "@@foo &&= bar") + end + + def test_ClassVariableOperatorWriteNode + assert_location(ClassVariableOperatorWriteNode, "@@foo += bar") + end + + def test_ClassVariableOperatorOrWriteNode + assert_location(ClassVariableOperatorOrWriteNode, "@@foo ||= bar") + end + + def test_ClassVariableReadNode + assert_location(ClassVariableReadNode, "@@foo") + end + + def test_ClassVariableWriteNode + assert_location(ClassVariableWriteNode, "@@foo = bar") + end + + def test_ConstantPathNode + assert_location(ConstantPathNode, "Foo::Bar") + assert_location(ConstantPathNode, "::Foo") + assert_location(ConstantPathNode, "::Foo::Bar") + end + + def test_ConstantPathWriteNode + assert_location(ConstantPathWriteNode, "Foo::Bar = baz") + assert_location(ConstantPathWriteNode, "::Foo = bar") + assert_location(ConstantPathWriteNode, "::Foo::Bar = baz") + end + + def test_ConstantPathOperatorAndWriteNode + assert_location(ConstantPathOperatorAndWriteNode, "Parent::Child &&= bar") + end + + def test_ConstantPathOperatorWriteNode + assert_location(ConstantPathOperatorWriteNode, "Parent::Child += bar") + end + + def test_ConstantPathOperatorOrWriteNode + assert_location(ConstantPathOperatorOrWriteNode, "Parent::Child ||= bar") + end + + def test_ConstantOperatorAndWriteNode + assert_location(ConstantOperatorAndWriteNode, "Foo &&= bar") + end + + def test_ConstantOperatorWriteNode + assert_location(ConstantOperatorWriteNode, "Foo += bar") + end + + def test_ConstantOperatorOrWriteNode + assert_location(ConstantOperatorOrWriteNode, "Foo ||= bar") + end + + def test_ConstantReadNode + assert_location(ConstantReadNode, "Foo") + assert_location(ConstantReadNode, "Foo::Bar", 5...8, &:child) + end + + def test_DefNode + assert_location(DefNode, "def foo; bar; end") + assert_location(DefNode, "def foo = bar") + assert_location(DefNode, "def foo.bar; baz; end") + assert_location(DefNode, "def foo.bar = baz") + end + + def test_DefinedNode + assert_location(DefinedNode, "defined? foo") + assert_location(DefinedNode, "defined?(foo)") + end + + def test_ElseNode + assert_location(ElseNode, "if foo; bar; else; baz; end", 13...27, &:consequent) + assert_location(ElseNode, "foo ? bar : baz", 10...15, &:consequent) + end + + def test_EmbeddedStatementsNode + assert_location(EmbeddedStatementsNode, '"foo #{bar} baz"', 5...11) { |node| node.parts[1] } + end + + def test_EmbeddedVariableNode + assert_location(EmbeddedVariableNode, '"foo #@@bar baz"', 5...11) { |node| node.parts[1] } + end + + def test_EnsureNode + assert_location(EnsureNode, "begin; foo; ensure; bar; end", 12...28, &:ensure_clause) + end + + def test_FalseNode + assert_location(FalseNode, "false") + end + + def test_FindPatternNode + assert_location(FindPatternNode, "case foo; in *, bar, *; end", 13...22) do |node| + node.conditions.first.pattern + end + end + + def test_FloatNode + assert_location(FloatNode, "0.0") + assert_location(FloatNode, "1.0") + assert_location(FloatNode, "1.0e10") + assert_location(FloatNode, "1.0e-10") + end + + def test_ForNode + assert_location(ForNode, "for foo in bar; end") + assert_location(ForNode, "for foo, bar in baz do end") + end + + def test_ForwardingArgumentsNode + assert_location(ForwardingArgumentsNode, "def foo(...); bar(...); end", 18...21) do |node| + node.statements.body.first.arguments.arguments.first + end + end + + def test_ForwardingParameterNode + assert_location(ForwardingParameterNode, "def foo(...); end", 8...11) do |node| + node.parameters.keyword_rest + end + end + + def test_ForwardingSuperNode + assert_location(ForwardingSuperNode, "super") + assert_location(ForwardingSuperNode, "super {}") + end + + def test_GlobalVariableOperatorAndWriteNode + assert_location(GlobalVariableOperatorAndWriteNode, "$foo &&= bar") + end + + def test_GlobalVariableOperatorWriteNode + assert_location(GlobalVariableOperatorWriteNode, "$foo += bar") + end + + def test_GlobalVariableOperatorOrWriteNode + assert_location(GlobalVariableOperatorOrWriteNode, "$foo ||= bar") + end + + def test_GlobalVariableReadNode + assert_location(GlobalVariableReadNode, "$foo") + end + + def test_GlobalVariableWriteNode + assert_location(GlobalVariableWriteNode, "$foo = bar") + end + + def test_HashNode + assert_location(HashNode, "{ foo: 2 }") + assert_location(HashNode, "{ \nfoo: 2, \nbar: 3 \n}") + end + + def test_HashPatternNode + assert_location(HashPatternNode, "case foo; in bar: baz; end", 13...21) do |node| + node.conditions.first.pattern + end + end + + def test_IfNode + assert_location(IfNode, "if type in 1;elsif type in B;end") + end + + def test_ImaginaryNode + assert_location(ImaginaryNode, "1i") + assert_location(ImaginaryNode, "1ri") + end + + def test_InNode + assert_location(InNode, "case foo; in bar; end", 10...16) do |node| + node.conditions.first + end + end + + def test_InstanceVariableOperatorAndWriteNode + assert_location(InstanceVariableOperatorAndWriteNode, "@foo &&= bar") + end + + def test_InstanceVariableOperatorWriteNode + assert_location(InstanceVariableOperatorWriteNode, "@foo += bar") + end + + def test_InstanceVariableOperatorOrWriteNode + assert_location(InstanceVariableOperatorOrWriteNode, "@foo ||= bar") + end + + def test_InstanceVariableReadNode + assert_location(InstanceVariableReadNode, "@foo") + end + + def test_InstanceVariableWriteNode + assert_location(InstanceVariableWriteNode, "@foo = bar") + end + + def test_IntegerNode + assert_location(IntegerNode, "0") + assert_location(IntegerNode, "1") + assert_location(IntegerNode, "1_000") + assert_location(IntegerNode, "0x1") + assert_location(IntegerNode, "0x1_000") + assert_location(IntegerNode, "0b1") + assert_location(IntegerNode, "0b1_000") + assert_location(IntegerNode, "0o1") + assert_location(IntegerNode, "0o1_000") + end + + def test_InterpolatedRegularExpressionNode + assert_location(InterpolatedRegularExpressionNode, "/\#{foo}/") + end + + def test_InterpolatedStringNode + assert_location(InterpolatedStringNode, "<<~A\nhello world\nA") + end + + def test_InterpolatedSymbolNode + assert_location(InterpolatedSymbolNode, ':"#{foo}bar"') + end + + def test_InterpolatedXStringNode + assert_location(InterpolatedXStringNode, '`foo #{bar} baz`') + end + + def test_KeywordHashNode + assert_location(KeywordHashNode, "foo(a, b: 1)", 7...11) { |node| node.arguments.arguments[1] } + end + + def test_KeywordParameterNode + assert_location(KeywordParameterNode, "def foo(bar:); end", 8...12) do |node| + node.parameters.keywords.first + end + + assert_location(KeywordParameterNode, "def foo(bar: nil); end", 8...16) do |node| + node.parameters.keywords.first + end + end + + def test_KeywordRestParameterNode + assert_location(KeywordRestParameterNode, "def foo(**); end", 8...10) do |node| + node.parameters.keyword_rest + end + + assert_location(KeywordRestParameterNode, "def foo(**bar); end", 8...13) do |node| + node.parameters.keyword_rest + end + end + + def test_LambdaNode + assert_location(LambdaNode, "-> { foo }") + assert_location(LambdaNode, "-> do foo end") + end + + def test_LocalVariableOperatorAndWriteNode + assert_location(LocalVariableOperatorAndWriteNode, "foo &&= bar") + assert_location(LocalVariableOperatorAndWriteNode, "foo = 1; foo &&= bar", 9...20) + end + + def test_LocalVariableOperatorWriteNode + assert_location(LocalVariableOperatorWriteNode, "foo += bar") + assert_location(LocalVariableOperatorWriteNode, "foo = 1; foo += bar", 9...19) + end + + def test_LocalVariableOperatorOrWriteNode + assert_location(LocalVariableOperatorOrWriteNode, "foo ||= bar") + assert_location(LocalVariableOperatorOrWriteNode, "foo = 1; foo ||= bar", 9...20) + end + + def test_LocalVariableReadNode + assert_location(LocalVariableReadNode, "foo = 1; foo", 9...12) + end + + def test_LocalVariableWriteNode + assert_location(LocalVariableWriteNode, "foo = bar") + end + + def test_MatchPredicateNode + assert_location(MatchPredicateNode, "foo in bar") + end + + def test_MatchRequiredNode + assert_location(MatchRequiredNode, "foo => bar") + end + + def test_ModuleNode + assert_location(ModuleNode, "module Foo end") + end + + def test_MultiWriteNode + assert_location(MultiWriteNode, "foo, bar = baz") + end + + def test_NextNode + assert_location(NextNode, "next") + assert_location(NextNode, "next foo") + assert_location(NextNode, "next foo, bar") + assert_location(NextNode, "next(foo)") + end + + def test_NilNode + assert_location(NilNode, "nil") + end + + def test_NoKeywordsParameterNode + assert_location(NoKeywordsParameterNode, "def foo(**nil); end", 8...13) { |node| node.parameters.keyword_rest } + end + + def test_NumberedReferenceReadNode + assert_location(NumberedReferenceReadNode, "$1") + end + + def test_OptionalParameterNode + assert_location(OptionalParameterNode, "def foo(bar = nil); end", 8...17) do |node| + node.parameters.optionals.first + end + end + + def test_OrNode + assert_location(OrNode, "foo || bar") + assert_location(OrNode, "foo or bar") + end + + def test_ParametersNode + assert_location(ParametersNode, "def foo(bar, baz); end", 8...16, &:parameters) + end + + def test_ParenthesesNode + assert_location(ParenthesesNode, "()") + assert_location(ParenthesesNode, "(foo)") + assert_location(ParenthesesNode, "foo (bar), baz", 4...9) { |node| node.arguments.arguments.first } + assert_location(ParenthesesNode, "def (foo).bar; end", 4...9, &:receiver) + end + + def test_PinnedExpressionNode + assert_location(PinnedExpressionNode, "foo in ^(bar)", 7...13, &:pattern) + end + + def test_PinnedVariableNode + assert_location(PinnedVariableNode, "foo in ^bar", 7...11, &:pattern) + end + + def test_PostExecutionNode + assert_location(PostExecutionNode, "END {}") + assert_location(PostExecutionNode, "END { foo }") + end + + def test_PreExecutionNode + assert_location(PreExecutionNode, "BEGIN {}") + assert_location(PreExecutionNode, "BEGIN { foo }") + end + + def test_RangeNode + assert_location(RangeNode, "1..2") + assert_location(RangeNode, "1...2") + + assert_location(RangeNode, "..2") + assert_location(RangeNode, "...2") + + assert_location(RangeNode, "1..") + assert_location(RangeNode, "1...") + end + + def test_RationalNode + assert_location(RationalNode, "1r") + assert_location(RationalNode, "1.0r") + end + + def test_RedoNode + assert_location(RedoNode, "redo") + end + + def test_RegularExpressionNode + assert_location(RegularExpressionNode, "/foo/") + end + + def test_RequiredParameterNode + assert_location(RequiredParameterNode, "def foo(bar); end", 8...11) do |node| + node.parameters.requireds.first + end + end + + def test_RequiredDestructuredParameterNode + assert_location(RequiredDestructuredParameterNode, "def foo((bar)); end", 8...13) do |node| + node.parameters.requireds.first + end + end + + def test_RescueNode + code = <<~RUBY + begin + body + rescue TypeError + rescue ArgumentError + end + RUBY + assert_location(RescueNode, code, 13...50) { |node| node.rescue_clause } + assert_location(RescueNode, code, 30...50) { |node| node.rescue_clause.consequent } + end + + def test_RescueModifierNode + assert_location(RescueModifierNode, "foo rescue bar") + end + + def test_RestParameterNode + assert_location(RestParameterNode, "def foo(*bar); end", 8...12) do |node| + node.parameters.rest + end + end + + def test_RetryNode + assert_location(RetryNode, "retry") + end + + def test_ReturnNode + assert_location(ReturnNode, "return") + assert_location(ReturnNode, "return foo") + assert_location(ReturnNode, "return foo, bar") + assert_location(ReturnNode, "return(foo)") + end + + def test_SelfNode + assert_location(SelfNode, "self") + end + + def test_SingletonClassNode + assert_location(SingletonClassNode, "class << self; end") + end + + def test_SourceEncodingNode + assert_location(SourceEncodingNode, "__ENCODING__") + end + + def test_SourceFileNode + assert_location(SourceFileNode, "__FILE__") + end + + def test_SourceLineNode + assert_location(SourceLineNode, "__LINE__") + end + + def test_SplatNode + assert_location(SplatNode, "*foo = bar", 0...4) { |node| node.targets.first } + end + + def test_StatementsNode + assert_location(StatementsNode, "foo { 1 }", 6...7) { |node| node.block.statements } + + assert_location(StatementsNode, "(1)", 1...2, &:statements) + + assert_location(StatementsNode, "def foo; 1; end", 9...10, &:statements) + assert_location(StatementsNode, "def foo = 1", 10...11, &:statements) + assert_location(StatementsNode, "def foo; 1\n2; end", 9...12, &:statements) + + assert_location(StatementsNode, "if foo; bar; end", 8...11, &:statements) + assert_location(StatementsNode, "foo if bar", 0...3, &:statements) + + assert_location(StatementsNode, "if foo; foo; elsif bar; bar; end", 24...27) { |node| node.consequent.statements } + assert_location(StatementsNode, "if foo; foo; else; bar; end", 19...22) { |node| node.consequent.statements } + + assert_location(StatementsNode, "unless foo; bar; end", 12...15, &:statements) + assert_location(StatementsNode, "foo unless bar", 0...3, &:statements) + + assert_location(StatementsNode, "case; when foo; bar; end", 16...19) { |node| node.conditions.first.statements } + + assert_location(StatementsNode, "while foo; bar; end", 11...14, &:statements) + assert_location(StatementsNode, "foo while bar", 0...3, &:statements) + + assert_location(StatementsNode, "until foo; bar; end", 11...14, &:statements) + assert_location(StatementsNode, "foo until bar", 0...3, &:statements) + + assert_location(StatementsNode, "for foo in bar; baz; end", 16...19, &:statements) + + assert_location(StatementsNode, "begin; foo; end", 7...10, &:statements) + assert_location(StatementsNode, "begin; rescue; foo; end", 15...18) { |node| node.rescue_clause.statements } + assert_location(StatementsNode, "begin; ensure; foo; end", 15...18) { |node| node.ensure_clause.statements } + assert_location(StatementsNode, "begin; rescue; else; foo; end", 21...24) { |node| node.else_clause.statements } + + assert_location(StatementsNode, "class Foo; foo; end", 11...14, &:statements) + assert_location(StatementsNode, "module Foo; foo; end", 12...15, &:statements) + assert_location(StatementsNode, "class << self; foo; end", 15...18, &:statements) + + assert_location(StatementsNode, "-> { foo }", 5...8, &:statements) + assert_location(StatementsNode, "BEGIN { foo }", 8...11, &:statements) + assert_location(StatementsNode, "END { foo }", 6...9, &:statements) + + assert_location(StatementsNode, "\"\#{foo}\"", 3...6) { |node| node.parts.first.statements } + end + + def test_StringConcatNode + assert_location(StringConcatNode, '"foo" "bar"') + end + + def test_StringNode + assert_location(StringNode, '"foo"') + assert_location(StringNode, '%q[foo]') + end + + def test_SuperNode + assert_location(SuperNode, "super foo") + assert_location(SuperNode, "super foo, bar") + + assert_location(SuperNode, "super()") + assert_location(SuperNode, "super(foo)") + assert_location(SuperNode, "super(foo, bar)") + + assert_location(SuperNode, "super() {}") + end + + def test_SymbolNode + assert_location(SymbolNode, ":foo") + end + + def test_TrueNode + assert_location(TrueNode, "true") + end + + def test_UndefNode + assert_location(UndefNode, "undef foo") + assert_location(UndefNode, "undef foo, bar") + end + + def test_UnlessNode + assert_location(UnlessNode, "foo unless bar") + assert_location(UnlessNode, "unless bar; foo; end") + end + + def test_UntilNode + assert_location(UntilNode, "foo = bar until baz") + assert_location(UntilNode, "until bar;baz;end") + end + + def test_WhenNode + assert_location(WhenNode, "case foo; when bar; end", 10...18) { |node| node.conditions.first } + end + + def test_WhileNode + assert_location(WhileNode, "foo = bar while foo != baz") + assert_location(WhileNode, "while a;bar;baz;end") + end + + def test_XStringNode + assert_location(XStringNode, "`foo`") + assert_location(XStringNode, "%x[foo]") + end + + def test_YieldNode + assert_location(YieldNode, "yield") + assert_location(YieldNode, "yield foo") + assert_location(YieldNode, "yield foo, bar") + assert_location(YieldNode, "yield(foo)") + end + + private + + def assert_location(kind, source, expected = 0...source.length) + YARP.parse(source) => ParseResult[comments: [], errors: [], value: node] + + node => ProgramNode[statements: [*, node]] + node = yield node if block_given? + + assert_kind_of kind, node + assert_equal expected.begin, node.location.start_offset + assert_equal expected.end, node.location.end_offset + end + end +end diff --git a/test/yarp/memsize_test.rb b/test/yarp/memsize_test.rb new file mode 100644 index 0000000000..1a6c64f95e --- /dev/null +++ b/test/yarp/memsize_test.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +class MemsizeTest < Test::Unit::TestCase + def test_memsize + result = YARP.memsize("2 + 3") + + assert_equal 5, result[:length] + assert_kind_of Integer, result[:memsize] + assert_equal 6, result[:node_count] + end +end diff --git a/test/yarp/parse_test.rb b/test/yarp/parse_test.rb new file mode 100644 index 0000000000..8934faf5c5 --- /dev/null +++ b/test/yarp/parse_test.rb @@ -0,0 +1,114 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +class ParseTest < Test::Unit::TestCase + def test_Ruby_3_2_plus + assert_operator RUBY_VERSION, :>=, "3.2.0", "ParseTest requires Ruby 3.2+" + end + + def test_empty_string + YARP.parse("") => YARP::ParseResult[value: YARP::ProgramNode[statements: YARP::StatementsNode[body: []]]] + end + + known_failures = %w[ + seattlerb/heredoc_nested.txt + seattlerb/pct_w_heredoc_interp_nested.txt + ] + + # Because the filepath in SourceFileNodes is different from one maching to the + # next, PP.pp(sexp, +"", 79) can have different results: both the path itself + # and the line breaks based on the length of the path. + def normalize_printed(printed) + printed + .gsub( + /SourceFileNode \s* + \(\s* (\d+\.\.\.\d+) \s*\) \s* + \(\s* ("[^"]*") \s*\) + /mx, + 'SourceFileNode(\1)(\2)') + .gsub(__dir__, "") + end + + def find_source_file_node(node) + if node.is_a?(YARP::SourceFileNode) + node + else + node && node.child_nodes.each do |child_node| + source_file_node = find_source_file_node(child_node) + return source_file_node if source_file_node + end + end + end + + def test_parse_takes_file_path + filepath = "filepath.rb" + parsed_result = YARP.parse("def foo; __FILE__; end", filepath) + + assert_equal filepath, find_source_file_node(parsed_result.value).filepath + end + + Dir[File.expand_path("fixtures/**/*.txt", __dir__)].each do |filepath| + relative = filepath.delete_prefix("#{File.expand_path("fixtures", __dir__)}/") + next if known_failures.include?(relative) + + snapshot = File.expand_path(File.join("snapshots", relative), __dir__) + directory = File.dirname(snapshot) + FileUtils.mkdir_p(directory) unless File.directory?(directory) + + define_method "test_filepath_#{filepath}" do + # First, read the source from the filepath. Use binmode to avoid converting CRLF on Windows, + # and explicitly set the external encoding to UTF-8 to override the binmode default. + source = File.read(filepath, binmode: true, external_encoding: Encoding::UTF_8) + + # Make sure that it can be correctly parsed by Ripper. If it can't, then we have a fixture + # that is invalid Ruby. + refute_nil Ripper.sexp_raw(source) + + # Next, parse the source and print the value. + result = YARP.parse_file(filepath) + value = result.value + printed = normalize_printed(PP.pp(value, +"", 79)) + + # Next, assert that there were no errors during parsing. + assert_empty result.errors, value + + if File.exist?(snapshot) + expected = File.read(snapshot) + normalized = normalize_printed(expected) + if expected != normalized + File.write(snapshot, normalized) + warn("Updated snapshot at #{snapshot}.") + end + # If the snapshot file exists, then assert that the printed value + # matches the snapshot. + assert_equal(normalized, printed) + else + # If the snapshot file does not yet exist, then write it out now. + File.write(snapshot, printed) + warn("Created snapshot at #{snapshot}.") + end + + # Next, assert that the value can be serialized and deserialized without + # changing the shape of the tree. + assert_equal_nodes(value, YARP.load(source, YARP.dump(source, filepath))) + + # Next, assert that the newlines are in the expected places. + expected_newlines = [0] + source.b.scan("\n") { expected_newlines << $~.offset(0)[0] } + assert_equal expected_newlines, YARP.newlines(source) + + # Finally, assert that we can lex the source and get the same tokens as + # Ripper. + YARP.lex_compat(source) => { errors: [], value: tokens } + + begin + YARP.lex_ripper(source).zip(tokens).each do |(ripper, yarp)| + assert_equal ripper, yarp + end + rescue SyntaxError + raise ArgumentError, "Test file has invalid syntax #{filepath}" + end + end + end +end diff --git a/test/yarp/regexp_test.rb b/test/yarp/regexp_test.rb new file mode 100644 index 0000000000..3bad27019b --- /dev/null +++ b/test/yarp/regexp_test.rb @@ -0,0 +1,187 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +class RegexpTest < Test::Unit::TestCase + ############################################################################## + # These tests test the actual use case of extracting named capture groups + ############################################################################## + + def test_named_captures_with_arrows + assert_equal(["foo"], YARP.named_captures("(?<foo>bar)")) + end + + def test_named_captures_with_single_quotes + assert_equal(["foo"], YARP.named_captures("(?'foo'bar)")) + end + + def test_nested_named_captures_with_arrows + assert_equal(["foo", "bar"], YARP.named_captures("(?<foo>(?<bar>baz))")) + end + + def test_nested_named_captures_with_single_quotes + assert_equal(["foo", "bar"], YARP.named_captures("(?'foo'(?'bar'baz))")) + end + + def test_allows_duplicate_named_captures + assert_equal(["foo", "foo"], YARP.named_captures("(?<foo>bar)(?<foo>baz)")) + end + + def test_named_capture_inside_fake_range_quantifier + assert_equal(["foo"], YARP.named_captures("foo{1, (?<foo>2)}")) + end + + ############################################################################## + # These tests test the rest of the AST. They are not exhaustive, but they + # should cover the most common cases. We test these to make sure we don't + # accidentally regress and stop being able to extract named captures. + ############################################################################## + + def test_alternation + refute_nil(YARP.named_captures("foo|bar")) + end + + def test_anchors + refute_nil(YARP.named_captures("^foo$")) + end + + def test_any + refute_nil(YARP.named_captures(".")) + end + + def test_posix_character_classes + refute_nil(YARP.named_captures("[[:digit:]]")) + end + + def test_negated_posix_character_classes + refute_nil(YARP.named_captures("[[:^digit:]]")) + end + + def test_invalid_posix_character_classes_should_fall_back_to_regular_classes + refute_nil(YARP.named_captures("[[:foo]]")) + end + + def test_character_sets + refute_nil(YARP.named_captures("[abc]")) + end + + def test_nested_character_sets + refute_nil(YARP.named_captures("[[abc]]")) + end + + def test_nested_character_sets_with_operators + refute_nil(YARP.named_captures("[[abc] && [def]]")) + end + + def test_named_capture_inside_nested_character_set + assert_equal([], YARP.named_captures("[foo (?<foo>bar)]")) + end + + def test_negated_character_sets + refute_nil(YARP.named_captures("[^abc]")) + end + + def test_character_ranges + refute_nil(YARP.named_captures("[a-z]")) + end + + def test_negated_character_ranges + refute_nil(YARP.named_captures("[^a-z]")) + end + + def test_fake_named_captures_inside_character_sets + assert_equal([], YARP.named_captures("[a-z(?<foo>)]")) + end + + def test_fake_named_capture_inside_character_set_with_escaped_ending + assert_equal([], YARP.named_captures("[a-z\\](?<foo>)]")) + end + + def test_comments + refute_nil(YARP.named_captures("(?#foo)")) + end + + def test_non_capturing_groups + refute_nil(YARP.named_captures("(?:foo)")) + end + + def test_positive_lookaheads + refute_nil(YARP.named_captures("(?=foo)")) + end + + def test_negative_lookaheads + refute_nil(YARP.named_captures("(?!foo)")) + end + + def test_positive_lookbehinds + refute_nil(YARP.named_captures("(?<=foo)")) + end + + def test_negative_lookbehinds + refute_nil(YARP.named_captures("(?<!foo)")) + end + + def test_atomic_groups + refute_nil(YARP.named_captures("(?>foo)")) + end + + def test_absence_operator + refute_nil(YARP.named_captures("(?~foo)")) + end + + def test_conditional_expression_with_index + refute_nil(YARP.named_captures("(?(1)foo)")) + end + + def test_conditional_expression_with_name + refute_nil(YARP.named_captures("(?(foo)bar)")) + end + + def test_conditional_expression_with_group + refute_nil(YARP.named_captures("(?(<foo>)bar)")) + end + + def test_options_on_groups + refute_nil(YARP.named_captures("(?imxdau:foo)")) + end + + def test_options_on_groups_with_invalid_options + assert_nil(YARP.named_captures("(?z:bar)")) + end + + def test_options_on_groups_getting_turned_off + refute_nil(YARP.named_captures("(?-imx:foo)")) + end + + def test_options_on_groups_some_getting_turned_on_some_getting_turned_off + refute_nil(YARP.named_captures("(?im-x:foo)")) + end + + def test_star_quantifier + refute_nil(YARP.named_captures("foo*")) + end + + def test_plus_quantifier + refute_nil(YARP.named_captures("foo+")) + end + + def test_question_mark_quantifier + refute_nil(YARP.named_captures("foo?")) + end + + def test_endless_range_quantifier + refute_nil(YARP.named_captures("foo{1,}")) + end + + def test_beginless_range_quantifier + refute_nil(YARP.named_captures("foo{,1}")) + end + + def test_range_quantifier + refute_nil(YARP.named_captures("foo{1,2}")) + end + + def test_fake_range_quantifier_because_of_spaces + refute_nil(YARP.named_captures("foo{1, 2}")) + end +end diff --git a/test/yarp/ripper_compat_test.rb b/test/yarp/ripper_compat_test.rb new file mode 100644 index 0000000000..4350ba7f81 --- /dev/null +++ b/test/yarp/ripper_compat_test.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +module YARP + class RipperCompatTest < Test::Unit::TestCase + def test_1_plus_2 + assert_equivalent("1 + 2") + end + + def test_2_minus_3 + assert_equivalent("2 - 3") + end + + private + + def assert_equivalent(source) + assert_equal Ripper.sexp_raw(source), RipperCompat.sexp_raw(source) + end + end +end diff --git a/test/yarp/snapshots/alias.txt b/test/yarp/snapshots/alias.txt new file mode 100644 index 0000000000..639311e64a --- /dev/null +++ b/test/yarp/snapshots/alias.txt @@ -0,0 +1,74 @@ +ProgramNode(0...199)( + [], + StatementsNode(0...199)( + [AliasNode(0...15)( + SymbolNode(6...10)((6...7), (7...10), nil, "foo"), + SymbolNode(11...15)((11...12), (12...15), nil, "bar"), + (0...5) + ), + AliasNode(17...38)( + SymbolNode(23...30)((23...26), (26...29), (29...30), "abc"), + SymbolNode(31...38)((31...34), (34...37), (37...38), "def"), + (17...22) + ), + AliasNode(40...59)( + SymbolNode(46...52)((46...48), (48...51), (51...52), "abc"), + SymbolNode(53...59)((53...55), (55...58), (58...59), "def"), + (40...45) + ), + AliasNode(61...84)( + InterpolatedSymbolNode(67...77)( + (67...69), + [StringNode(69...72)(nil, (69...72), nil, "abc"), + EmbeddedStatementsNode(72...76)( + (72...74), + StatementsNode(74...75)([IntegerNode(74...75)()]), + (75...76) + )], + (76...77) + ), + SymbolNode(78...84)((78...80), (80...83), (83...84), "def"), + (61...66) + ), + AliasNode(86...97)( + GlobalVariableReadNode(92...94)(), + BackReferenceReadNode(95...97)(), + (86...91) + ), + AliasNode(99...112)( + SymbolNode(105...108)(nil, (105...108), nil, "foo"), + SymbolNode(109...112)(nil, (109...112), nil, "bar"), + (99...104) + ), + AliasNode(114...129)( + GlobalVariableReadNode(120...124)(), + GlobalVariableReadNode(125...129)(), + (114...119) + ), + AliasNode(131...143)( + SymbolNode(137...140)(nil, (137...140), nil, "foo"), + SymbolNode(141...143)(nil, (141...143), nil, "if"), + (131...136) + ), + AliasNode(145...158)( + SymbolNode(151...154)(nil, (151...154), nil, "foo"), + SymbolNode(155...158)(nil, (155...158), nil, "<=>"), + (145...150) + ), + AliasNode(160...175)( + SymbolNode(166...169)((166...167), (167...169), nil, "=="), + SymbolNode(170...175)((170...171), (171...175), nil, "eql?"), + (160...165) + ), + AliasNode(177...186)( + SymbolNode(183...184)(nil, (183...184), nil, "A"), + SymbolNode(185...186)(nil, (185...186), nil, "B"), + (177...182) + ), + AliasNode(188...199)( + SymbolNode(194...196)((194...195), (195...196), nil, "A"), + SymbolNode(197...199)((197...198), (198...199), nil, "B"), + (188...193) + )] + ) +) diff --git a/test/yarp/snapshots/arithmetic.txt b/test/yarp/snapshots/arithmetic.txt new file mode 100644 index 0000000000..7de7a714b6 --- /dev/null +++ b/test/yarp/snapshots/arithmetic.txt @@ -0,0 +1,107 @@ +ProgramNode(0...39)( + [], + StatementsNode(0...39)( + [CallNode(0...8)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...8)( + [CallNode(4...8)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "bar"), + nil, + (4...5), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(10...18)( + CallNode(10...14)( + CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "foo"), + nil, + (10...11), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + nil, + (14...15), + nil, + ArgumentsNode(15...18)( + [CallNode(15...18)(nil, nil, (15...18), nil, nil, nil, nil, 0, "bar")] + ), + nil, + nil, + 0, + "*" + ), + CallNode(20...29)( + CallNode(20...24)( + CallNode(21...24)(nil, nil, (21...24), nil, nil, nil, nil, 0, "foo"), + nil, + (20...21), + nil, + nil, + nil, + nil, + 0, + "+@" + ), + nil, + (24...26), + nil, + ArgumentsNode(26...29)( + [CallNode(26...29)(nil, nil, (26...29), nil, nil, nil, nil, 0, "bar")] + ), + nil, + nil, + 0, + "**" + ), + CallNode(31...39)( + nil, + nil, + (31...34), + nil, + ArgumentsNode(35...39)( + [CallNode(35...39)( + CallNode(36...39)( + nil, + nil, + (36...39), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + (35...36), + nil, + nil, + nil, + nil, + 0, + "~" + )] + ), + nil, + nil, + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/arrays.txt b/test/yarp/snapshots/arrays.txt new file mode 100644 index 0000000000..1f0360f965 --- /dev/null +++ b/test/yarp/snapshots/arrays.txt @@ -0,0 +1,696 @@ +ProgramNode(0...502)( + [], + StatementsNode(0...502)( + [ArrayNode(0...4)( + [SplatNode(1...3)( + (1...2), + CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "a") + )], + (0...1), + (3...4) + ), + CallNode(6...29)( + CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "foo"), + nil, + (9...19), + (9...10), + ArgumentsNode(10...29)( + [CallNode(10...13)(nil, nil, (10...13), nil, nil, nil, nil, 0, "bar"), + CallNode(15...18)(nil, nil, (15...18), nil, nil, nil, nil, 0, "baz"), + ArrayNode(22...29)( + [IntegerNode(22...23)(), + IntegerNode(25...26)(), + IntegerNode(28...29)()], + nil, + nil + )] + ), + (18...19), + nil, + 0, + "[]=" + ), + ArrayNode(31...44)( + [KeywordHashNode(32...43)( + [AssocNode(32...43)( + SymbolNode(32...34)(nil, (32...33), (33...34), "a"), + ArrayNode(35...43)( + [SymbolNode(36...38)((36...37), (37...38), nil, "b"), + SymbolNode(40...42)((40...41), (41...42), nil, "c")], + (35...36), + (42...43) + ), + nil + )] + )], + (31...32), + (43...44) + ), + ArrayNode(48...71)( + [SymbolNode(49...51)((49...50), (50...51), nil, "a"), + SymbolNode(53...55)((53...54), (54...55), nil, "b"), + SymbolNode(57...59)((57...58), (58...59), nil, "c"), + IntegerNode(60...61)(), + SymbolNode(66...68)((66...67), (67...68), nil, "d")], + (48...49), + (70...71) + ), + ArrayNode(74...98)( + [SymbolNode(75...77)((75...76), (76...77), nil, "a"), + SymbolNode(79...81)((79...80), (80...81), nil, "b"), + SymbolNode(83...85)((83...84), (84...85), nil, "c"), + IntegerNode(86...87)(), + SymbolNode(92...94)((92...93), (93...94), nil, "d")], + (74...75), + (97...98) + ), + ArrayNode(100...112)( + [KeywordHashNode(101...111)( + [AssocNode(101...111)( + CallNode(101...104)( + nil, + nil, + (101...104), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(108...111)( + nil, + nil, + (108...111), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (105...107) + )] + )], + (100...101), + (111...112) + ), + CallNode(114...133)( + CallNode(114...122)( + CallNode(114...117)( + nil, + nil, + (114...117), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (117...122), + (117...118), + ArgumentsNode(118...121)( + [CallNode(118...121)( + nil, + nil, + (118...121), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (121...122), + nil, + 0, + "[]" + ), + nil, + (122...127), + (122...123), + ArgumentsNode(123...133)( + [CallNode(123...126)( + nil, + nil, + (123...126), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + CallNode(130...133)( + nil, + nil, + (130...133), + nil, + nil, + nil, + nil, + 0, + "qux" + )] + ), + (126...127), + nil, + 0, + "[]=" + ), + CallNode(135...148)( + CallNode(135...143)( + CallNode(135...138)( + nil, + nil, + (135...138), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (138...143), + (138...139), + ArgumentsNode(139...142)( + [CallNode(139...142)( + nil, + nil, + (139...142), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (142...143), + nil, + 0, + "[]" + ), + nil, + (143...148), + (143...144), + ArgumentsNode(144...147)( + [CallNode(144...147)( + nil, + nil, + (144...147), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (147...148), + nil, + 0, + "[]" + ), + ArrayNode(150...153)([], (150...151), (152...153)), + CallNode(155...168)( + CallNode(155...158)( + nil, + nil, + (155...158), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (158...168), + (158...159), + ArgumentsNode(159...167)( + [CallNode(159...162)( + nil, + nil, + (159...162), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(164...167)( + nil, + nil, + (164...167), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (167...168), + nil, + 0, + "[]" + ), + CallNode(170...189)( + CallNode(170...173)( + nil, + nil, + (170...173), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (173...183), + (173...174), + ArgumentsNode(174...189)( + [CallNode(174...177)( + nil, + nil, + (174...177), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(179...182)( + nil, + nil, + (179...182), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + CallNode(186...189)( + nil, + nil, + (186...189), + nil, + nil, + nil, + nil, + 0, + "qux" + )] + ), + (182...183), + nil, + 0, + "[]=" + ), + MultiWriteNode(191...212)( + [CallNode(191...197)( + CallNode(191...194)( + nil, + nil, + (191...194), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (194...197), + (194...195), + ArgumentsNode(195...196)([IntegerNode(195...196)()]), + (196...197), + nil, + 0, + "[]=" + ), + CallNode(199...205)( + CallNode(199...202)( + nil, + nil, + (199...202), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + (202...205), + (202...203), + ArgumentsNode(203...204)([IntegerNode(203...204)()]), + (204...205), + nil, + 0, + "[]=" + )], + (206...207), + ArrayNode(208...212)( + [IntegerNode(208...209)(), IntegerNode(211...212)()], + nil, + nil + ), + nil, + nil + ), + CallNode(214...233)( + CallNode(214...217)( + nil, + nil, + (214...217), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (217...233), + (217...218), + ArgumentsNode(218...232)( + [CallNode(218...232)( + CallNode(218...221)( + nil, + nil, + (218...221), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + (221...226), + (221...222), + ArgumentsNode(222...232)( + [CallNode(222...225)( + nil, + nil, + (222...225), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + CallNode(229...232)( + nil, + nil, + (229...232), + nil, + nil, + nil, + nil, + 0, + "qux" + )] + ), + (225...226), + nil, + 0, + "[]=" + )] + ), + (232...233), + nil, + 0, + "[]" + ), + CallNode(235...243)( + CallNode(235...238)( + nil, + nil, + (235...238), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (238...243), + (238...239), + ArgumentsNode(239...242)( + [CallNode(239...242)( + nil, + nil, + (239...242), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (242...243), + nil, + 0, + "[]" + ), + CallNode(245...259)( + CallNode(245...248)( + nil, + nil, + (245...248), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (248...253), + (248...249), + ArgumentsNode(249...259)( + [CallNode(249...252)( + nil, + nil, + (249...252), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(256...259)( + nil, + nil, + (256...259), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (252...253), + nil, + 0, + "[]=" + ), + ArrayNode(261...267)( + [KeywordHashNode(262...266)( + [AssocSplatNode(262...266)( + HashNode(264...266)((264...265), [], (265...266)), + (262...264) + )] + )], + (261...262), + (266...267) + ), + ArrayNode(269...275)( + [KeywordHashNode(270...274)( + [AssocSplatNode(270...274)( + CallNode(272...274)( + nil, + nil, + (272...274), + nil, + nil, + nil, + nil, + 0, + "kw" + ), + (270...272) + )] + )], + (269...270), + (274...275) + ), + ArrayNode(277...286)( + [IntegerNode(278...279)(), + KeywordHashNode(281...285)( + [AssocSplatNode(281...285)( + CallNode(283...285)( + nil, + nil, + (283...285), + nil, + nil, + nil, + nil, + 0, + "kw" + ), + (281...283) + )] + )], + (277...278), + (285...286) + ), + ArrayNode(288...309)( + [IntegerNode(289...290)(), + KeywordHashNode(292...308)( + [AssocSplatNode(292...296)( + CallNode(294...296)( + nil, + nil, + (294...296), + nil, + nil, + nil, + nil, + 0, + "kw" + ), + (292...294) + ), + AssocSplatNode(298...302)( + HashNode(300...302)((300...301), [], (301...302)), + (298...300) + ), + AssocSplatNode(304...308)( + CallNode(306...308)( + nil, + nil, + (306...308), + nil, + nil, + nil, + nil, + 0, + "kw" + ), + (304...306) + )] + )], + (288...289), + (308...309) + ), + ArrayNode(311...328)( + [KeywordHashNode(315...325)( + [AssocNode(315...325)( + CallNode(315...318)( + nil, + nil, + (315...318), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(322...325)( + nil, + nil, + (322...325), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (319...321) + )] + )], + (311...312), + (327...328) + ), + ArrayNode(331...348)( + [SymbolNode(334...337)(nil, (334...337), nil, "one"), + SymbolNode(338...341)(nil, (338...341), nil, "two"), + SymbolNode(342...347)(nil, (342...347), nil, "three")], + (331...334), + (347...348) + ), + ArrayNode(350...367)( + [StringNode(353...356)(nil, (353...356), nil, "one"), + StringNode(357...360)(nil, (357...360), nil, "two"), + StringNode(361...366)(nil, (361...366), nil, "three")], + (350...353), + (366...367) + ), + XStringNode(369...386)( + (369...372), + (372...385), + (385...386), + "one two three" + ), + ArrayNode(389...406)( + [SymbolNode(392...395)(nil, (392...395), nil, "one"), + SymbolNode(396...399)(nil, (396...399), nil, "two"), + SymbolNode(400...405)(nil, (400...405), nil, "three")], + (389...392), + (405...406) + ), + ArrayNode(408...425)( + [StringNode(411...414)(nil, (411...414), nil, "one"), + StringNode(415...418)(nil, (415...418), nil, "two"), + StringNode(419...424)(nil, (419...424), nil, "three")], + (408...411), + (424...425) + ), + XStringNode(427...444)( + (427...430), + (430...443), + (443...444), + "one two three" + ), + ArrayNode(447...464)( + [SymbolNode(450...453)(nil, (450...453), nil, "one"), + SymbolNode(454...457)(nil, (454...457), nil, "two"), + SymbolNode(458...463)(nil, (458...463), nil, "three")], + (447...450), + (463...464) + ), + ArrayNode(466...483)( + [StringNode(469...472)(nil, (469...472), nil, "one"), + StringNode(473...476)(nil, (473...476), nil, "two"), + StringNode(477...482)(nil, (477...482), nil, "three")], + (466...469), + (482...483) + ), + XStringNode(485...502)( + (485...488), + (488...501), + (501...502), + "one two three" + )] + ) +) diff --git a/test/yarp/snapshots/begin_ensure.txt b/test/yarp/snapshots/begin_ensure.txt new file mode 100644 index 0000000000..b82cf6a007 --- /dev/null +++ b/test/yarp/snapshots/begin_ensure.txt @@ -0,0 +1,69 @@ +ProgramNode(0...94)( + [], + StatementsNode(0...94)( + [BeginNode(0...20)( + (0...5), + StatementsNode(6...7)( + [CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "a")] + ), + nil, + nil, + EnsureNode(8...20)( + (8...14), + StatementsNode(15...16)( + [CallNode(15...16)(nil, nil, (15...16), nil, nil, nil, nil, 0, "b")] + ), + (17...20) + ), + (17...20) + ), + BeginNode(22...46)( + (22...27), + StatementsNode(29...30)( + [CallNode(29...30)(nil, nil, (29...30), nil, nil, nil, nil, 0, "a")] + ), + nil, + nil, + EnsureNode(32...46)( + (32...38), + StatementsNode(40...41)( + [CallNode(40...41)(nil, nil, (40...41), nil, nil, nil, nil, 0, "b")] + ), + (43...46) + ), + (43...46) + ), + BeginNode(48...70)( + (48...53), + StatementsNode(54...55)( + [CallNode(54...55)(nil, nil, (54...55), nil, nil, nil, nil, 0, "a")] + ), + nil, + nil, + EnsureNode(57...70)( + (57...63), + StatementsNode(64...65)( + [CallNode(64...65)(nil, nil, (64...65), nil, nil, nil, nil, 0, "b")] + ), + (67...70) + ), + (67...70) + ), + BeginNode(72...94)( + (72...77), + StatementsNode(78...79)( + [CallNode(78...79)(nil, nil, (78...79), nil, nil, nil, nil, 0, "a")] + ), + nil, + nil, + EnsureNode(81...94)( + (81...87), + StatementsNode(88...89)( + [CallNode(88...89)(nil, nil, (88...89), nil, nil, nil, nil, 0, "b")] + ), + (91...94) + ), + (91...94) + )] + ) +) diff --git a/test/yarp/snapshots/begin_rescue.txt b/test/yarp/snapshots/begin_rescue.txt new file mode 100644 index 0000000000..7c8b139dce --- /dev/null +++ b/test/yarp/snapshots/begin_rescue.txt @@ -0,0 +1,595 @@ +ProgramNode(0...578)( + [:ex], + StatementsNode(0...578)( + [BeginNode(0...33)( + (0...5), + StatementsNode(7...8)( + [CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "a")] + ), + RescueNode(10...19)( + (10...16), + [], + nil, + nil, + StatementsNode(18...19)( + [CallNode(18...19)(nil, nil, (18...19), nil, nil, nil, nil, 0, "b")] + ), + nil + ), + ElseNode(21...33)( + (21...25), + StatementsNode(27...28)( + [CallNode(27...28)(nil, nil, (27...28), nil, nil, nil, nil, 0, "c")] + ), + (30...33) + ), + nil, + (30...33) + ), + BeginNode(35...79)( + (35...40), + StatementsNode(42...43)( + [CallNode(42...43)(nil, nil, (42...43), nil, nil, nil, nil, 0, "a")] + ), + RescueNode(45...54)( + (45...51), + [], + nil, + nil, + StatementsNode(53...54)( + [CallNode(53...54)(nil, nil, (53...54), nil, nil, nil, nil, 0, "b")] + ), + nil + ), + ElseNode(56...71)( + (56...60), + StatementsNode(62...63)( + [CallNode(62...63)(nil, nil, (62...63), nil, nil, nil, nil, 0, "c")] + ), + (65...71) + ), + EnsureNode(65...79)( + (65...71), + StatementsNode(73...74)( + [CallNode(73...74)(nil, nil, (73...74), nil, nil, nil, nil, 0, "d")] + ), + (76...79) + ), + (76...79) + ), + BeginNode(81...92)( + (81...86), + StatementsNode(87...88)( + [CallNode(87...88)(nil, nil, (87...88), nil, nil, nil, nil, 0, "a")] + ), + nil, + nil, + nil, + (89...92) + ), + BeginNode(94...107)( + (94...99), + StatementsNode(101...102)( + [CallNode(101...102)( + nil, + nil, + (101...102), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + nil, + nil, + nil, + (104...107) + ), + BeginNode(109...121)( + (109...114), + StatementsNode(115...116)( + [CallNode(115...116)( + nil, + nil, + (115...116), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + nil, + nil, + nil, + (118...121) + ), + BeginNode(123...135)( + (123...128), + StatementsNode(129...130)( + [CallNode(129...130)( + nil, + nil, + (129...130), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + nil, + nil, + nil, + (132...135) + ), + BeginNode(137...175)( + (137...142), + StatementsNode(143...144)( + [CallNode(143...144)( + nil, + nil, + (143...144), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(145...171)( + (145...151), + [], + nil, + nil, + StatementsNode(152...153)( + [CallNode(152...153)( + nil, + nil, + (152...153), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + RescueNode(154...171)( + (154...160), + [], + nil, + nil, + StatementsNode(161...162)( + [CallNode(161...162)( + nil, + nil, + (161...162), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + RescueNode(163...171)( + (163...169), + [], + nil, + nil, + StatementsNode(170...171)( + [CallNode(170...171)( + nil, + nil, + (170...171), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil + ) + ) + ), + nil, + nil, + (172...175) + ), + BeginNode(177...269)( + (177...182), + StatementsNode(185...186)( + [CallNode(185...186)( + nil, + nil, + (185...186), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(187...265)( + (187...193), + [ConstantReadNode(194...203)()], + (204...206), + LocalVariableWriteNode(207...209)(:ex, 0, nil, (207...209), nil), + StatementsNode(212...213)( + [CallNode(212...213)( + nil, + nil, + (212...213), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + RescueNode(214...265)( + (214...220), + [ConstantReadNode(221...237)(), ConstantReadNode(239...255)()], + (256...258), + LocalVariableWriteNode(259...261)(:ex, 0, nil, (259...261), nil), + StatementsNode(264...265)( + [CallNode(264...265)( + nil, + nil, + (264...265), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + nil + ) + ), + nil, + nil, + (266...269) + ), + BeginNode(271...322)( + (271...276), + StatementsNode(279...280)( + [CallNode(279...280)( + nil, + nil, + (279...280), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(281...307)( + (281...287), + [ConstantReadNode(288...297)()], + (298...300), + LocalVariableWriteNode(301...303)(:ex, 0, nil, (301...303), nil), + StatementsNode(306...307)( + [CallNode(306...307)( + nil, + nil, + (306...307), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + EnsureNode(308...322)( + (308...314), + StatementsNode(317...318)( + [CallNode(317...318)( + nil, + nil, + (317...318), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (319...322) + ), + (319...322) + ), + StringNode(324...330)((324...326), (326...329), (329...330), "abc"), + BeginNode(332...352)( + (332...337), + StatementsNode(338...339)( + [CallNode(338...339)( + nil, + nil, + (338...339), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(340...348)( + (340...346), + [], + nil, + nil, + StatementsNode(347...348)( + [CallNode(347...348)( + nil, + nil, + (347...348), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (349...352) + ), + BeginNode(354...374)( + (354...359), + StatementsNode(360...361)( + [CallNode(360...361)( + nil, + nil, + (360...361), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(362...370)( + (362...368), + [], + nil, + nil, + StatementsNode(369...370)( + [CallNode(369...370)( + nil, + nil, + (369...370), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (371...374) + ), + BeginNode(376...396)( + (376...381), + StatementsNode(382...383)( + [CallNode(382...383)( + nil, + nil, + (382...383), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(384...392)( + (384...390), + [], + nil, + nil, + StatementsNode(391...392)( + [CallNode(391...392)( + nil, + nil, + (391...392), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (393...396) + ), + BeginNode(398...428)( + (398...403), + StatementsNode(404...405)( + [CallNode(404...405)( + nil, + nil, + (404...405), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(406...424)( + (406...412), + [ConstantReadNode(413...422)()], + nil, + nil, + StatementsNode(423...424)( + [CallNode(423...424)( + nil, + nil, + (423...424), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (425...428) + ), + BeginNode(430...477)( + (430...435), + StatementsNode(436...437)( + [CallNode(436...437)( + nil, + nil, + (436...437), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(438...473)( + (438...444), + [ConstantReadNode(445...454)(), ConstantReadNode(456...471)()], + nil, + nil, + StatementsNode(472...473)( + [CallNode(472...473)( + nil, + nil, + (472...473), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (474...477) + ), + BeginNode(479...536)( + (479...484), + StatementsNode(487...488)( + [CallNode(487...488)( + nil, + nil, + (487...488), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(489...532)( + (489...495), + [ConstantReadNode(496...505)(), ConstantReadNode(507...522)()], + (523...525), + LocalVariableWriteNode(526...528)(:ex, 0, nil, (526...528), nil), + StatementsNode(531...532)( + [CallNode(531...532)( + nil, + nil, + (531...532), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (533...536) + ), + BeginNode(538...578)( + (538...543), + StatementsNode(546...547)( + [CallNode(546...547)( + nil, + nil, + (546...547), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(548...574)( + (548...554), + [ConstantReadNode(555...564)()], + (565...567), + LocalVariableWriteNode(568...570)(:ex, 0, nil, (568...570), nil), + StatementsNode(573...574)( + [CallNode(573...574)( + nil, + nil, + (573...574), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (575...578) + )] + ) +) diff --git a/test/yarp/snapshots/blocks.txt b/test/yarp/snapshots/blocks.txt new file mode 100644 index 0000000000..4fcbaace14 --- /dev/null +++ b/test/yarp/snapshots/blocks.txt @@ -0,0 +1,621 @@ +ProgramNode(0...402)( + [:fork], + StatementsNode(0...402)( + [CallNode(0...16)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...8), + (3...4), + ArgumentsNode(4...7)( + [CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "bar")] + ), + (7...8), + BlockNode(9...16)( + [], + nil, + StatementsNode(11...14)( + [CallNode(11...14)( + nil, + nil, + (11...14), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (9...10), + (15...16) + ), + 0, + "[]" + ), + CallNode(18...37)( + CallNode(18...21)(nil, nil, (18...21), nil, nil, nil, nil, 0, "foo"), + nil, + (21...26), + (21...22), + ArgumentsNode(22...25)( + [CallNode(22...25)(nil, nil, (22...25), nil, nil, nil, nil, 0, "bar")] + ), + (25...26), + BlockNode(27...37)( + [], + nil, + StatementsNode(30...33)( + [CallNode(30...33)( + nil, + nil, + (30...33), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (27...29), + (34...37) + ), + 0, + "[]" + ), + CallNode(39...74)( + CallNode(39...40)(nil, nil, (39...40), nil, nil, nil, nil, 0, "x"), + (40...41), + (41...47), + (47...48), + ArgumentsNode(48...49)([IntegerNode(48...49)()]), + (49...50), + BlockNode(51...74)( + [:x, :memo], + BlockParametersNode(53...62)( + ParametersNode(54...61)( + [RequiredParameterNode(54...55)(:x), + RequiredParameterNode(57...61)(:memo)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (53...54), + (61...62) + ), + StatementsNode(63...72)( + [LocalVariableOperatorWriteNode(63...72)( + (63...67), + (68...70), + LocalVariableReadNode(71...72)(:x, 0), + :memo, + :+ + )] + ), + (51...52), + (73...74) + ), + 0, + "reduce" + ), + CallNode(76...86)( + nil, + nil, + (76...79), + nil, + nil, + nil, + BlockNode(80...86)([], nil, nil, (80...82), (83...86)), + 0, + "foo" + ), + CallNode(88...109)( + nil, + nil, + (88...91), + nil, + ArgumentsNode(92...109)( + [CallNode(92...95)(nil, nil, (92...95), nil, nil, nil, nil, 0, "bar"), + ParenthesesNode(97...109)( + StatementsNode(98...108)( + [CallNode(98...108)( + nil, + nil, + (98...101), + nil, + nil, + nil, + BlockNode(102...108)([], nil, nil, (102...104), (105...108)), + 0, + "baz" + )] + ), + (97...98), + (108...109) + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(111...125)( + nil, + nil, + (111...114), + nil, + ArgumentsNode(115...118)( + [CallNode(115...118)( + nil, + nil, + (115...118), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + BlockNode(119...125)([], nil, nil, (119...121), (122...125)), + 0, + "foo" + ), + CallNode(127...145)( + nil, + nil, + (127...130), + nil, + ArgumentsNode(131...138)( + [CallNode(131...138)( + nil, + nil, + (131...134), + nil, + ArgumentsNode(135...138)( + [CallNode(135...138)( + nil, + nil, + (135...138), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil, + nil, + 0, + "bar" + )] + ), + nil, + BlockNode(139...145)([], nil, nil, (139...141), (142...145)), + 0, + "foo" + ), + CallNode(147...168)( + nil, + nil, + (147...150), + nil, + nil, + nil, + BlockNode(151...168)( + [:a], + BlockParametersNode(154...164)( + ParametersNode(155...163)( + [], + [OptionalParameterNode(155...163)( + :a, + (155...156), + (157...158), + CallNode(159...163)( + CallNode(159...160)( + nil, + nil, + (159...160), + nil, + nil, + nil, + nil, + 0, + "b" + ), + nil, + (160...163), + (160...161), + ArgumentsNode(161...162)([IntegerNode(161...162)()]), + (162...163), + nil, + 0, + "[]" + ) + )], + [], + nil, + [], + nil, + nil + ), + [], + (154...155), + (163...164) + ), + nil, + (151...153), + (165...168) + ), + 0, + "foo" + ), + CallNode(170...187)( + nil, + nil, + (170...173), + nil, + nil, + nil, + BlockNode(174...187)( + [], + nil, + BeginNode(177...187)( + nil, + nil, + RescueNode(177...183)((177...183), [], nil, nil, nil, nil), + nil, + nil, + (184...187) + ), + (174...176), + (184...187) + ), + 0, + "foo" + ), + CallNode(189...233)( + nil, + nil, + (189...192), + nil, + nil, + nil, + BlockNode(193...233)( + [], + nil, + StatementsNode(198...229)( + [CallNode(198...229)( + nil, + nil, + (198...201), + nil, + nil, + nil, + BlockNode(202...229)( + [], + nil, + StatementsNode(209...223)( + [CallNode(209...223)( + nil, + nil, + (209...212), + nil, + nil, + nil, + BlockNode(213...223)( + [], + nil, + nil, + (213...215), + (220...223) + ), + 0, + "baz" + )] + ), + (202...204), + (226...229) + ), + 0, + "bar" + )] + ), + (193...195), + (230...233) + ), + 0, + "foo" + ), + CallNode(235...251)( + CallNode(235...238)( + nil, + nil, + (235...238), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (238...243), + (238...239), + ArgumentsNode(239...242)( + [CallNode(239...242)( + nil, + nil, + (239...242), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (242...243), + BlockNode(244...251)( + [], + nil, + StatementsNode(246...249)( + [CallNode(246...249)( + nil, + nil, + (246...249), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (244...245), + (250...251) + ), + 0, + "[]" + ), + CallNode(253...277)( + nil, + nil, + (253...256), + nil, + nil, + nil, + BlockNode(257...277)( + [:x, :y, :z], + BlockParametersNode(259...273)( + ParametersNode(260...272)( + [RequiredParameterNode(260...261)(:x)], + [OptionalParameterNode(263...268)( + :y, + (263...264), + (265...266), + IntegerNode(267...268)() + )], + [], + nil, + [KeywordParameterNode(270...272)((270...272), nil)], + nil, + nil + ), + [], + (259...260), + (272...273) + ), + StatementsNode(274...275)([LocalVariableReadNode(274...275)(:x, 0)]), + (257...258), + (276...277) + ), + 0, + "foo" + ), + CallNode(279...290)( + nil, + nil, + (279...282), + nil, + nil, + nil, + BlockNode(283...290)( + [:x], + BlockParametersNode(285...288)( + ParametersNode(286...287)( + [RequiredParameterNode(286...287)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (285...286), + (287...288) + ), + nil, + (283...284), + (289...290) + ), + 0, + "foo" + ), + LocalVariableWriteNode(292...300)( + :fork, + 0, + IntegerNode(299...300)(), + (292...296), + (297...298) + ), + CallNode(301...316)( + nil, + nil, + (301...305), + nil, + nil, + nil, + BlockNode(306...316)( + [:a], + BlockParametersNode(309...312)( + ParametersNode(310...311)( + [RequiredParameterNode(310...311)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (309...310), + (311...312) + ), + nil, + (306...308), + (313...316) + ), + 0, + "fork" + ), + CallNode(318...330)( + nil, + nil, + (318...322), + nil, + nil, + nil, + BlockNode(323...330)( + [:a], + BlockParametersNode(325...328)( + ParametersNode(326...327)( + [RequiredParameterNode(326...327)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (325...326), + (327...328) + ), + nil, + (323...324), + (329...330) + ), + 0, + "fork" + ), + CallNode(332...340)( + nil, + nil, + (332...333), + nil, + nil, + nil, + BlockNode(334...340)([], nil, nil, (334...336), (337...340)), + 0, + "C" + ), + CallNode(342...346)( + nil, + nil, + (342...343), + nil, + nil, + nil, + BlockNode(344...346)([], nil, nil, (344...345), (345...346)), + 0, + "C" + ), + CallNode(348...383)( + nil, + nil, + (348...351), + nil, + ArgumentsNode(352...383)( + [CallNode(352...383)( + nil, + nil, + (352...358), + nil, + nil, + nil, + BlockNode(359...383)( + [:a, :b], + BlockParametersNode(361...381)( + ParametersNode(365...377)( + [], + [], + [], + nil, + [KeywordParameterNode(365...369)( + (365...367), + IntegerNode(368...369)() + ), + KeywordParameterNode(373...377)( + (373...375), + IntegerNode(376...377)() + )], + nil, + nil + ), + [], + (361...362), + (380...381) + ), + nil, + (359...360), + (382...383) + ), + 0, + "lambda" + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(385...402)( + nil, + nil, + (385...388), + nil, + nil, + nil, + BlockNode(389...402)( + [:bar], + BlockParametersNode(392...398)( + ParametersNode(393...397)( + [RequiredParameterNode(393...396)(:bar)], + [], + [], + RestParameterNode(396...397)((396...397), nil), + [], + nil, + nil + ), + [], + (392...393), + (397...398) + ), + nil, + (389...391), + (399...402) + ), + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/boolean_operators.txt b/test/yarp/snapshots/boolean_operators.txt new file mode 100644 index 0000000000..6c3ef5a4a7 --- /dev/null +++ b/test/yarp/snapshots/boolean_operators.txt @@ -0,0 +1,24 @@ +ProgramNode(0...24)( + [:a], + StatementsNode(0...24)( + [LocalVariableOperatorAndWriteNode(0...7)( + (0...1), + (2...5), + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "b"), + :a + ), + LocalVariableOperatorWriteNode(9...15)( + (9...10), + (11...13), + CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 0, "b"), + :a, + :+ + ), + LocalVariableOperatorOrWriteNode(17...24)( + (17...18), + (19...22), + CallNode(23...24)(nil, nil, (23...24), nil, nil, nil, nil, 0, "b"), + :a + )] + ) +) diff --git a/test/yarp/snapshots/booleans.txt b/test/yarp/snapshots/booleans.txt new file mode 100644 index 0000000000..f4e609652c --- /dev/null +++ b/test/yarp/snapshots/booleans.txt @@ -0,0 +1,4 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)([FalseNode(0...5)(), TrueNode(7...11)()]) +) diff --git a/test/yarp/snapshots/break.txt b/test/yarp/snapshots/break.txt new file mode 100644 index 0000000000..b8ae8ffe81 --- /dev/null +++ b/test/yarp/snapshots/break.txt @@ -0,0 +1,158 @@ +ProgramNode(0...168)( + [], + StatementsNode(0...168)( + [BreakNode(0...5)(nil, (0...5)), + BreakNode(7...26)( + ArgumentsNode(13...26)( + [ParenthesesNode(13...16)( + StatementsNode(14...15)([IntegerNode(14...15)()]), + (13...14), + (15...16) + ), + ParenthesesNode(18...21)( + StatementsNode(19...20)([IntegerNode(19...20)()]), + (18...19), + (20...21) + ), + ParenthesesNode(23...26)( + StatementsNode(24...25)([IntegerNode(24...25)()]), + (23...24), + (25...26) + )] + ), + (7...12) + ), + BreakNode(28...35)( + ArgumentsNode(34...35)([IntegerNode(34...35)()]), + (28...33) + ), + BreakNode(37...50)( + ArgumentsNode(43...50)( + [IntegerNode(43...44)(), + IntegerNode(46...47)(), + IntegerNode(49...50)()] + ), + (37...42) + ), + BreakNode(52...65)( + ArgumentsNode(58...65)( + [IntegerNode(58...59)(), + IntegerNode(61...62)(), + IntegerNode(64...65)()] + ), + (52...57) + ), + BreakNode(67...82)( + ArgumentsNode(73...82)( + [ArrayNode(73...82)( + [IntegerNode(74...75)(), + IntegerNode(77...78)(), + IntegerNode(80...81)()], + (73...74), + (81...82) + )] + ), + (67...72) + ), + BreakNode(84...100)( + ArgumentsNode(89...100)( + [ParenthesesNode(89...100)( + StatementsNode(93...98)( + [IntegerNode(93...94)(), IntegerNode(97...98)()] + ), + (89...90), + (99...100) + )] + ), + (84...89) + ), + BreakNode(102...109)( + ArgumentsNode(107...109)( + [ParenthesesNode(107...109)(nil, (107...108), (108...109))] + ), + (102...107) + ), + BreakNode(111...119)( + ArgumentsNode(116...119)( + [ParenthesesNode(116...119)( + StatementsNode(117...118)([IntegerNode(117...118)()]), + (116...117), + (118...119) + )] + ), + (111...116) + ), + CallNode(121...143)( + CallNode(121...137)( + nil, + nil, + (121...124), + nil, + nil, + nil, + BlockNode(125...137)( + [], + nil, + StatementsNode(127...135)( + [BreakNode(127...135)( + ArgumentsNode(133...135)([IntegerNode(133...135)()]), + (127...132) + )] + ), + (125...126), + (136...137) + ), + 0, + "foo" + ), + nil, + (138...140), + nil, + ArgumentsNode(141...143)([IntegerNode(141...143)()]), + nil, + nil, + 0, + "==" + ), + CallNode(145...168)( + CallNode(145...162)( + nil, + nil, + (145...148), + nil, + nil, + nil, + BlockNode(149...162)( + [:a], + BlockParametersNode(151...154)( + ParametersNode(152...153)( + [RequiredParameterNode(152...153)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (151...152), + (153...154) + ), + StatementsNode(155...160)([BreakNode(155...160)(nil, (155...160))]), + (149...150), + (161...162) + ), + 0, + "foo" + ), + nil, + (163...165), + nil, + ArgumentsNode(166...168)([IntegerNode(166...168)()]), + nil, + nil, + 0, + "==" + )] + ) +) diff --git a/test/yarp/snapshots/case.txt b/test/yarp/snapshots/case.txt new file mode 100644 index 0000000000..f1ee1c9c2d --- /dev/null +++ b/test/yarp/snapshots/case.txt @@ -0,0 +1,207 @@ +ProgramNode(0...272)( + [], + StatementsNode(0...272)( + [CaseNode(0...21)( + SymbolNode(5...8)((5...6), (6...8), nil, "hi"), + [WhenNode(9...17)( + (9...13), + [SymbolNode(14...17)((14...15), (15...17), nil, "hi")], + nil + )], + nil, + (0...4), + (18...21) + ), + CaseNode(23...81)( + TrueNode(28...32)(), + [WhenNode(34...53)( + (34...38), + [TrueNode(39...43)()], + StatementsNode(45...53)( + [CallNode(45...53)( + nil, + nil, + (45...49), + nil, + ArgumentsNode(50...53)( + [SymbolNode(50...53)((50...51), (51...53), nil, "hi")] + ), + nil, + nil, + 0, + "puts" + )] + ) + ), + WhenNode(55...76)( + (55...59), + [FalseNode(60...65)()], + StatementsNode(67...76)( + [CallNode(67...76)( + nil, + nil, + (67...71), + nil, + ArgumentsNode(72...76)( + [SymbolNode(72...76)((72...73), (73...76), nil, "bye")] + ), + nil, + nil, + 0, + "puts" + )] + ) + )], + nil, + (23...27), + (78...81) + ), + CaseNode(83...103)( + nil, + [WhenNode(89...98)( + (89...93), + [SplatNode(94...98)( + (94...95), + CallNode(95...98)( + nil, + nil, + (95...98), + nil, + nil, + nil, + nil, + 0, + "foo" + ) + )], + nil + )], + nil, + (83...87), + (100...103) + ), + CaseNode(105...134)( + SymbolNode(110...113)((110...111), (111...113), nil, "hi"), + [WhenNode(114...122)( + (114...118), + [SymbolNode(119...122)((119...120), (120...122), nil, "hi")], + nil + )], + ElseNode(123...134)( + (123...127), + StatementsNode(128...130)( + [SymbolNode(128...130)((128...129), (129...130), nil, "b")] + ), + (131...134) + ), + (105...109), + (131...134) + ), + CaseNode(136...172)( + CallNode(141...145)( + nil, + nil, + (141...145), + nil, + nil, + nil, + nil, + 0, + "this" + ), + [WhenNode(147...167)( + (147...151), + [ConstantReadNode(152...158)(), ConstantReadNode(160...167)()], + nil + )], + nil, + (136...140), + (169...172) + ), + CaseNode(174...198)( + nil, + [WhenNode(179...194)( + (179...183), + [CallNode(184...194)( + CallNode(184...187)( + nil, + nil, + (184...187), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (188...190), + nil, + ArgumentsNode(191...194)( + [CallNode(191...194)( + nil, + nil, + (191...194), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + 0, + "==" + )], + nil + )], + nil, + (174...178), + (195...198) + ), + CaseNode(200...230)( + nil, + [WhenNode(205...211)( + (205...209), + [CallNode(210...211)( + nil, + nil, + (210...211), + nil, + nil, + nil, + nil, + 0, + "a" + )], + nil + )], + ElseNode(212...230)((212...216), nil, (227...230)), + (200...204), + (227...230) + ), + CaseNode(232...272)( + CallNode(237...241)( + nil, + nil, + (237...241), + nil, + nil, + nil, + nil, + 0, + "type" + ), + [WhenNode(246...253)( + (246...250), + [SymbolNode(251...253)((251...252), (252...253), nil, "b")], + nil + )], + ElseNode(260...272)((260...264), nil, (269...272)), + (232...236), + (269...272) + )] + ) +) diff --git a/test/yarp/snapshots/classes.txt b/test/yarp/snapshots/classes.txt new file mode 100644 index 0000000000..7b65c457ef --- /dev/null +++ b/test/yarp/snapshots/classes.txt @@ -0,0 +1,280 @@ +ProgramNode(0...370)( + [], + StatementsNode(0...370)( + [ClassNode(0...17)( + [:a], + (0...5), + ConstantReadNode(6...7)(), + nil, + nil, + StatementsNode(8...13)( + [LocalVariableWriteNode(8...13)( + :a, + 0, + IntegerNode(12...13)(), + (8...9), + (10...11) + )] + ), + (14...17) + ), + ClassNode(19...39)( + [], + (19...24), + ConstantReadNode(25...26)(), + nil, + nil, + BeginNode(28...39)( + nil, + nil, + nil, + nil, + EnsureNode(28...39)((28...34), nil, (36...39)), + (36...39) + ), + (36...39) + ), + ClassNode(41...75)( + [], + (41...46), + ConstantReadNode(47...48)(), + nil, + nil, + BeginNode(50...75)( + nil, + nil, + RescueNode(50...56)((50...56), [], nil, nil, nil, nil), + ElseNode(58...70)((58...62), nil, (64...70)), + EnsureNode(64...75)((64...70), nil, (72...75)), + (72...75) + ), + (72...75) + ), + ClassNode(77...98)( + [:a], + (77...82), + ConstantReadNode(83...84)(), + (85...86), + ConstantReadNode(87...88)(), + StatementsNode(89...94)( + [LocalVariableWriteNode(89...94)( + :a, + 0, + IntegerNode(93...94)(), + (89...90), + (91...92) + )] + ), + (95...98) + ), + SingletonClassNode(100...120)( + [], + (100...105), + (106...108), + CallNode(109...116)( + CallNode(113...116)( + nil, + nil, + (113...116), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (109...112), + nil, + nil, + nil, + nil, + 0, + "!" + ), + nil, + (117...120) + ), + ClassNode(122...162)( + [], + (122...127), + ConstantReadNode(128...129)(), + nil, + nil, + StatementsNode(131...157)( + [SingletonClassNode(131...157)( + [], + (131...136), + (137...139), + SelfNode(140...144)(), + BeginNode(146...157)( + nil, + nil, + nil, + nil, + EnsureNode(146...157)((146...152), nil, (154...157)), + (154...157) + ), + (154...157) + )] + ), + (159...162) + ), + ClassNode(164...218)( + [], + (164...169), + ConstantReadNode(170...171)(), + nil, + nil, + StatementsNode(173...213)( + [SingletonClassNode(173...213)( + [], + (173...178), + (179...181), + SelfNode(182...186)(), + BeginNode(188...213)( + nil, + nil, + RescueNode(188...194)((188...194), [], nil, nil, nil, nil), + ElseNode(196...208)((196...200), nil, (202...208)), + EnsureNode(202...213)((202...208), nil, (210...213)), + (210...213) + ), + (210...213) + )] + ), + (215...218) + ), + SingletonClassNode(220...240)( + [], + (220...225), + (226...228), + CallNode(229...236)( + CallNode(229...232)( + nil, + nil, + (229...232), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (232...233), + (233...236), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + (237...240) + ), + SingletonClassNode(242...262)( + [], + (242...247), + (248...250), + CallNode(251...258)( + CallNode(251...254)( + nil, + nil, + (251...254), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (254...255), + (255...258), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + (259...262) + ), + SingletonClassNode(264...281)( + [], + (264...269), + (270...272), + SelfNode(273...277)(), + nil, + (278...281) + ), + SingletonClassNode(283...300)( + [], + (283...288), + (289...291), + SelfNode(292...296)(), + nil, + (297...300) + ), + SingletonClassNode(302...325)( + [], + (302...307), + (308...310), + SelfNode(311...315)(), + StatementsNode(316...321)( + [CallNode(316...321)( + IntegerNode(316...317)(), + nil, + (318...319), + nil, + ArgumentsNode(320...321)([IntegerNode(320...321)()]), + nil, + nil, + 0, + "+" + )] + ), + (322...325) + ), + SingletonClassNode(327...350)( + [], + (327...332), + (333...335), + SelfNode(336...340)(), + StatementsNode(341...346)( + [CallNode(341...346)( + IntegerNode(341...342)(), + nil, + (343...344), + nil, + ArgumentsNode(345...346)([IntegerNode(345...346)()]), + nil, + nil, + 0, + "+" + )] + ), + (347...350) + ), + ClassNode(352...370)( + [], + (352...357), + ConstantReadNode(358...359)(), + (360...361), + CallNode(362...366)( + ConstantReadNode(362...363)(), + nil, + (363...366), + (363...364), + ArgumentsNode(364...365)([IntegerNode(364...365)()]), + (365...366), + nil, + 0, + "[]" + ), + nil, + (367...370) + )] + ) +) diff --git a/test/yarp/snapshots/comments.txt b/test/yarp/snapshots/comments.txt new file mode 100644 index 0000000000..4b629af138 --- /dev/null +++ b/test/yarp/snapshots/comments.txt @@ -0,0 +1,64 @@ +ProgramNode(0...118)( + [], + StatementsNode(0...118)( + [CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 0, "b"), + CallNode(16...17)(nil, nil, (16...17), nil, nil, nil, nil, 0, "c"), + CallNode(28...29)(nil, nil, (28...29), nil, nil, nil, nil, 0, "d"), + CallNode(31...47)( + CallNode(31...32)(nil, nil, (31...32), nil, nil, nil, nil, 0, "e"), + (45...46), + (46...47), + nil, + nil, + nil, + nil, + 0, + "f" + ), + CallNode(49...64)( + CallNode(49...50)(nil, nil, (49...50), nil, nil, nil, nil, 0, "g"), + (62...63), + (63...64), + nil, + nil, + nil, + nil, + 0, + "h" + ), + CallNode(66...80)( + CallNode(66...67)(nil, nil, (66...67), nil, nil, nil, nil, 0, "i"), + (78...79), + (79...80), + nil, + nil, + nil, + nil, + 0, + "j" + ), + CallNode(82...98)( + CallNode(82...83)(nil, nil, (82...83), nil, nil, nil, nil, 0, "k"), + (96...97), + (97...98), + nil, + nil, + nil, + nil, + 0, + "l" + ), + CallNode(100...118)( + CallNode(100...101)(nil, nil, (100...101), nil, nil, nil, nil, 0, "m"), + (115...117), + (117...118), + nil, + nil, + nil, + nil, + 1, + "n" + )] + ) +) diff --git a/test/yarp/snapshots/constants.txt b/test/yarp/snapshots/constants.txt new file mode 100644 index 0000000000..aa97e4ba89 --- /dev/null +++ b/test/yarp/snapshots/constants.txt @@ -0,0 +1,916 @@ +ProgramNode(0...709)( + [], + StatementsNode(0...709)( + [ConstantPathNode(0...4)( + ConstantReadNode(0...1)(), + ConstantReadNode(3...4)(), + (1...3) + ), + ConstantPathNode(6...13)( + ConstantPathNode(6...10)( + ConstantReadNode(6...7)(), + ConstantReadNode(9...10)(), + (7...9) + ), + ConstantReadNode(12...13)(), + (10...12) + ), + ConstantPathNode(15...19)( + CallNode(15...16)(nil, nil, (15...16), nil, nil, nil, nil, 0, "a"), + ConstantReadNode(18...19)(), + (16...18) + ), + ConstantPathWriteNode(21...29)( + ConstantPathNode(21...25)( + ConstantReadNode(21...22)(), + ConstantReadNode(24...25)(), + (22...24) + ), + (26...27), + IntegerNode(28...29)() + ), + ConstantPathWriteNode(31...36)( + ConstantReadNode(31...32)(), + (33...34), + IntegerNode(35...36)() + ), + ConstantReadNode(38...41)(), + CallNode(43...48)( + nil, + nil, + (43...46), + nil, + ArgumentsNode(47...48)([IntegerNode(47...48)()]), + nil, + nil, + 0, + "Foo" + ), + CallNode(50...58)( + ConstantPathNode(50...53)(nil, ConstantReadNode(52...53)(), (50...52)), + (53...55), + (55...58), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ConstantPathWriteNode(60...67)( + ConstantPathNode(60...63)(nil, ConstantReadNode(62...63)(), (60...62)), + (64...65), + IntegerNode(66...67)() + ), + ConstantPathWriteNode(69...79)( + ConstantPathNode(69...75)( + ConstantPathNode(69...72)( + nil, + ConstantReadNode(71...72)(), + (69...71) + ), + ConstantReadNode(74...75)(), + (72...74) + ), + (76...77), + IntegerNode(78...79)() + ), + ConstantPathNode(81...87)( + ConstantPathNode(81...84)(nil, ConstantReadNode(83...84)(), (81...83)), + ConstantReadNode(86...87)(), + (84...86) + ), + ConstantPathNode(89...92)(nil, ConstantReadNode(91...92)(), (89...91)), + CallNode(94...102)( + ConstantReadNode(94...95)(), + (95...97), + (97...102), + nil, + nil, + nil, + nil, + 0, + "false" + ), + CallNode(104...114)( + ConstantPathNode(104...108)( + ConstantReadNode(104...105)(), + ConstantReadNode(107...108)(), + (105...107) + ), + (108...110), + (110...114), + nil, + nil, + nil, + nil, + 0, + "true" + ), + CallNode(116...120)( + ConstantReadNode(116...117)(), + (117...119), + (119...120), + nil, + nil, + nil, + nil, + 0, + "&" + ), + CallNode(122...126)( + ConstantReadNode(122...123)(), + (123...125), + (125...126), + nil, + nil, + nil, + nil, + 0, + "`" + ), + CallNode(128...132)( + ConstantReadNode(128...129)(), + (129...131), + (131...132), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(134...139)( + ConstantReadNode(134...135)(), + (135...137), + (137...139), + nil, + nil, + nil, + nil, + 0, + "!=" + ), + CallNode(141...145)( + ConstantReadNode(141...142)(), + (142...144), + (144...145), + nil, + nil, + nil, + nil, + 0, + "^" + ), + CallNode(147...152)( + ConstantReadNode(147...148)(), + (148...150), + (150...152), + nil, + nil, + nil, + nil, + 0, + "==" + ), + CallNode(154...160)( + ConstantReadNode(154...155)(), + (155...157), + (157...160), + nil, + nil, + nil, + nil, + 0, + "===" + ), + CallNode(162...167)( + ConstantReadNode(162...163)(), + (163...165), + (165...167), + nil, + nil, + nil, + nil, + 0, + "=~" + ), + CallNode(169...173)( + ConstantReadNode(169...170)(), + (170...172), + (172...173), + nil, + nil, + nil, + nil, + 0, + ">" + ), + CallNode(175...180)( + ConstantReadNode(175...176)(), + (176...178), + (178...180), + nil, + nil, + nil, + nil, + 0, + ">=" + ), + CallNode(182...187)( + ConstantReadNode(182...183)(), + (183...185), + (185...187), + nil, + nil, + nil, + nil, + 0, + ">>" + ), + CallNode(189...194)( + ConstantReadNode(189...190)(), + (190...192), + (192...194), + nil, + nil, + nil, + nil, + 0, + "<<" + ), + CallNode(196...210)( + ConstantPathNode(196...203)( + ConstantReadNode(196...197)(), + ConstantReadNode(202...203)(), + (197...199) + ), + (203...205), + (205...210), + nil, + nil, + nil, + nil, + 0, + "alias" + ), + CallNode(212...218)( + ConstantReadNode(212...213)(), + (213...215), + (215...218), + nil, + nil, + nil, + nil, + 0, + "and" + ), + CallNode(220...228)( + ConstantReadNode(220...221)(), + (221...223), + (223...228), + nil, + nil, + nil, + nil, + 0, + "begin" + ), + ConstantPathNode(230...238)( + ConstantReadNode(230...231)(), + ConstantReadNode(233...238)(), + (231...233) + ), + CallNode(240...248)( + ConstantReadNode(240...241)(), + (241...243), + (243...248), + nil, + nil, + nil, + nil, + 0, + "break" + ), + CallNode(250...258)( + ConstantReadNode(250...251)(), + (251...253), + (253...258), + nil, + nil, + nil, + nil, + 0, + "class" + ), + CallNode(260...266)( + ConstantReadNode(260...261)(), + (261...263), + (263...266), + nil, + nil, + nil, + nil, + 0, + "def" + ), + CallNode(268...278)( + ConstantReadNode(268...269)(), + (269...271), + (271...278), + nil, + nil, + nil, + nil, + 0, + "defined" + ), + CallNode(280...285)( + ConstantReadNode(280...281)(), + (281...283), + (283...285), + nil, + nil, + nil, + nil, + 0, + "do" + ), + CallNode(287...294)( + ConstantReadNode(287...288)(), + (288...290), + (290...294), + nil, + nil, + nil, + nil, + 0, + "else" + ), + CallNode(296...304)( + ConstantReadNode(296...297)(), + (297...299), + (299...304), + nil, + nil, + nil, + nil, + 0, + "elsif" + ), + CallNode(306...312)( + ConstantReadNode(306...307)(), + (307...309), + (309...312), + nil, + nil, + nil, + nil, + 0, + "end" + ), + ConstantPathNode(314...320)( + ConstantReadNode(314...315)(), + ConstantReadNode(317...320)(), + (315...317) + ), + CallNode(322...331)( + ConstantReadNode(322...323)(), + (323...325), + (325...331), + nil, + nil, + nil, + nil, + 0, + "ensure" + ), + CallNode(333...341)( + ConstantReadNode(333...334)(), + (334...336), + (336...341), + nil, + nil, + nil, + nil, + 0, + "false" + ), + CallNode(343...349)( + ConstantReadNode(343...344)(), + (344...346), + (346...349), + nil, + nil, + nil, + nil, + 0, + "for" + ), + CallNode(351...356)( + ConstantReadNode(351...352)(), + (352...354), + (354...356), + nil, + nil, + nil, + nil, + 0, + "if" + ), + CallNode(358...363)( + ConstantReadNode(358...359)(), + (359...361), + (361...363), + nil, + nil, + nil, + nil, + 0, + "in" + ), + CallNode(365...372)( + ConstantReadNode(365...366)(), + (366...368), + (368...372), + nil, + nil, + nil, + nil, + 0, + "next" + ), + CallNode(374...380)( + ConstantReadNode(374...375)(), + (375...377), + (377...380), + nil, + nil, + nil, + nil, + 0, + "nil" + ), + CallNode(382...388)( + ConstantReadNode(382...383)(), + (383...385), + (385...388), + nil, + nil, + nil, + nil, + 0, + "not" + ), + CallNode(390...395)( + ConstantReadNode(390...391)(), + (391...393), + (393...395), + nil, + nil, + nil, + nil, + 0, + "or" + ), + CallNode(397...404)( + ConstantReadNode(397...398)(), + (398...400), + (400...404), + nil, + nil, + nil, + nil, + 0, + "redo" + ), + CallNode(406...415)( + ConstantReadNode(406...407)(), + (407...409), + (409...415), + nil, + nil, + nil, + nil, + 0, + "rescue" + ), + CallNode(417...425)( + ConstantReadNode(417...418)(), + (418...420), + (420...425), + nil, + nil, + nil, + nil, + 0, + "retry" + ), + CallNode(427...436)( + ConstantReadNode(427...428)(), + (428...430), + (430...436), + nil, + nil, + nil, + nil, + 0, + "return" + ), + CallNode(438...445)( + ConstantReadNode(438...439)(), + (439...441), + (441...445), + nil, + nil, + nil, + nil, + 0, + "self" + ), + CallNode(447...455)( + ConstantReadNode(447...448)(), + (448...450), + (450...455), + nil, + nil, + nil, + nil, + 0, + "super" + ), + CallNode(457...464)( + ConstantReadNode(457...458)(), + (458...460), + (460...464), + nil, + nil, + nil, + nil, + 0, + "then" + ), + CallNode(466...473)( + ConstantReadNode(466...467)(), + (467...469), + (469...473), + nil, + nil, + nil, + nil, + 0, + "true" + ), + CallNode(475...483)( + ConstantReadNode(475...476)(), + (476...478), + (478...483), + nil, + nil, + nil, + nil, + 0, + "undef" + ), + CallNode(485...494)( + ConstantReadNode(485...486)(), + (486...488), + (488...494), + nil, + nil, + nil, + nil, + 0, + "unless" + ), + CallNode(496...504)( + ConstantReadNode(496...497)(), + (497...499), + (499...504), + nil, + nil, + nil, + nil, + 0, + "until" + ), + CallNode(506...513)( + ConstantReadNode(506...507)(), + (507...509), + (509...513), + nil, + nil, + nil, + nil, + 0, + "when" + ), + CallNode(515...523)( + ConstantReadNode(515...516)(), + (516...518), + (518...523), + nil, + nil, + nil, + nil, + 0, + "while" + ), + CallNode(525...533)( + ConstantReadNode(525...526)(), + (526...528), + (528...533), + nil, + nil, + nil, + nil, + 0, + "yield" + ), + CallNode(535...550)( + ConstantReadNode(535...536)(), + (536...538), + (538...550), + nil, + nil, + nil, + nil, + 0, + "__ENCODING__" + ), + CallNode(552...563)( + ConstantReadNode(552...553)(), + (553...555), + (555...563), + nil, + nil, + nil, + nil, + 0, + "__FILE__" + ), + CallNode(565...576)( + ConstantReadNode(565...566)(), + (566...568), + (568...576), + nil, + nil, + nil, + nil, + 0, + "__LINE__" + ), + CallNode(578...582)( + ConstantReadNode(578...579)(), + (579...581), + (581...582), + nil, + nil, + nil, + nil, + 0, + "<" + ), + CallNode(584...590)( + ConstantReadNode(584...585)(), + (585...587), + (587...590), + nil, + nil, + nil, + nil, + 0, + "<=>" + ), + CallNode(592...597)( + ConstantReadNode(592...593)(), + (593...595), + (595...597), + nil, + nil, + nil, + nil, + 0, + "<<" + ), + CallNode(599...603)( + ConstantReadNode(599...600)(), + (600...602), + (602...603), + nil, + nil, + nil, + nil, + 0, + "-" + ), + CallNode(605...609)( + ConstantReadNode(605...606)(), + (606...608), + (608...609), + nil, + nil, + nil, + nil, + 0, + "%" + ), + CallNode(611...616)( + ConstantReadNode(611...612)(), + (612...614), + (615...616), + nil, + ArgumentsNode(615...616)( + [CallNode(615...616)( + nil, + nil, + (615...616), + nil, + nil, + nil, + nil, + 0, + "i" + )] + ), + nil, + nil, + 0, + "i" + ), + CallNode(618...623)( + ConstantReadNode(618...619)(), + (619...621), + (622...623), + nil, + ArgumentsNode(622...623)( + [CallNode(622...623)( + nil, + nil, + (622...623), + nil, + nil, + nil, + nil, + 0, + "w" + )] + ), + nil, + nil, + 0, + "w" + ), + CallNode(625...630)( + ConstantReadNode(625...626)(), + (626...628), + (629...630), + nil, + ArgumentsNode(629...630)( + [CallNode(629...630)( + nil, + nil, + (629...630), + nil, + nil, + nil, + nil, + 0, + "x" + )] + ), + nil, + nil, + 0, + "x" + ), + CallNode(632...637)( + ConstantReadNode(632...633)(), + (633...635), + (636...637), + nil, + ArgumentsNode(636...637)([ConstantReadNode(636...637)()]), + nil, + nil, + 0, + "I" + ), + CallNode(639...644)( + ConstantReadNode(639...640)(), + (640...642), + (643...644), + nil, + ArgumentsNode(643...644)([ConstantReadNode(643...644)()]), + nil, + nil, + 0, + "W" + ), + CallNode(646...650)( + ConstantReadNode(646...647)(), + (647...649), + (649...650), + nil, + nil, + nil, + nil, + 0, + "|" + ), + CallNode(652...656)( + ConstantReadNode(652...653)(), + (653...655), + (655...656), + nil, + nil, + nil, + nil, + 0, + "+" + ), + CallNode(658...662)( + ConstantReadNode(658...659)(), + (659...661), + (661...662), + nil, + nil, + nil, + nil, + 0, + "/" + ), + CallNode(664...668)( + ConstantReadNode(664...665)(), + (665...667), + (667...668), + nil, + nil, + nil, + nil, + 0, + "*" + ), + CallNode(670...675)( + ConstantReadNode(670...671)(), + (671...673), + (673...675), + nil, + nil, + nil, + nil, + 0, + "**" + ), + CallNode(677...681)( + ConstantReadNode(677...678)(), + (678...680), + (680...681), + nil, + nil, + nil, + nil, + 0, + "~" + ), + RangeNode(683...709)( + CallNode(683...695)( + ConstantPathNode(683...692)( + CallNode(683...687)( + ConstantReadNode(683...684)(), + (684...686), + (686...687), + nil, + nil, + nil, + nil, + 0, + "_" + ), + ConstantReadNode(691...692)(), + (687...689) + ), + (692...694), + (694...695), + nil, + nil, + nil, + nil, + 0, + "_" + ), + CallNode(699...709)( + ConstantReadNode(699...700)(), + (700...702), + (702...709), + nil, + nil, + nil, + nil, + 0, + "__END__" + ), + (695...697), + 0 + )] + ) +) diff --git a/test/yarp/snapshots/dash_heredocs.txt b/test/yarp/snapshots/dash_heredocs.txt new file mode 100644 index 0000000000..bc4c90a76f --- /dev/null +++ b/test/yarp/snapshots/dash_heredocs.txt @@ -0,0 +1,121 @@ +ProgramNode(0...223)( + [], + StatementsNode(0...223)( + [InterpolatedStringNode(0...15)( + (0...6), + [StringNode(7...11)(nil, (7...11), nil, " a\n")], + (11...15) + ), + CallNode(16...58)( + InterpolatedStringNode(16...47)( + (16...24), + [StringNode(37...41)(nil, (37...41), nil, " a\n")], + (41...47) + ), + nil, + (25...26), + nil, + ArgumentsNode(27...58)( + [InterpolatedStringNode(27...58)( + (27...36), + [StringNode(47...51)(nil, (47...51), nil, " b\n")], + (51...58) + )] + ), + nil, + nil, + 0, + "+" + ), + InterpolatedXStringNode(59...81)( + (59...67), + [StringNode(68...72)(nil, (68...72), nil, " a\n"), + EmbeddedStatementsNode(72...76)( + (72...74), + StatementsNode(74...75)( + [CallNode(74...75)( + nil, + nil, + (74...75), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (75...76) + ), + StringNode(76...77)(nil, (76...77), nil, "\n")], + (77...81) + ), + InterpolatedStringNode(82...106)( + (82...88), + [StringNode(98...102)(nil, (98...102), nil, " a\n")], + (102...106) + ), + InterpolatedStringNode(107...128)( + (107...113), + [StringNode(114...122)(nil, (114...122), nil, " a\n" + " b\n")], + (122...128) + ), + InterpolatedStringNode(129...151)( + (129...137), + [StringNode(138...142)(nil, (138...142), nil, " a\n"), + EmbeddedStatementsNode(142...146)( + (142...144), + StatementsNode(144...145)( + [CallNode(144...145)( + nil, + nil, + (144...145), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (145...146) + ), + StringNode(146...147)(nil, (146...147), nil, "\n")], + (147...151) + ), + InterpolatedStringNode(152...172)( + (152...158), + [StringNode(159...163)(nil, (159...163), nil, " a\n"), + EmbeddedStatementsNode(163...167)( + (163...165), + StatementsNode(165...166)( + [CallNode(165...166)( + nil, + nil, + (165...166), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (166...167) + ), + StringNode(167...168)(nil, (167...168), nil, "\n")], + (168...172) + ), + StringNode(173...179)((173...175), (175...178), (178...179), "abc"), + InterpolatedStringNode(181...200)( + (181...187), + [StringNode(188...196)(nil, (188...196), nil, " a\n" + " b\n")], + (196...200) + ), + InterpolatedStringNode(201...223)( + (201...209), + [StringNode(210...219)(nil, (210...219), nil, " a \#{1}\n")], + (219...223) + )] + ) +) diff --git a/test/yarp/snapshots/defined.txt b/test/yarp/snapshots/defined.txt new file mode 100644 index 0000000000..df02a1d10d --- /dev/null +++ b/test/yarp/snapshots/defined.txt @@ -0,0 +1,33 @@ +ProgramNode(0...78)( + [:x], + StatementsNode(0...78)( + [AndNode(0...25)( + DefinedNode(0...10)(nil, IntegerNode(9...10)(), nil, (0...8)), + DefinedNode(15...25)(nil, IntegerNode(24...25)(), nil, (15...23)), + (11...14) + ), + DefinedNode(27...43)( + (35...36), + LocalVariableOperatorWriteNode(36...42)( + (36...37), + (38...40), + IntegerNode(41...42)(), + :x, + :% + ), + (42...43), + (27...35) + ), + DefinedNode(45...66)( + (53...54), + AndNode(54...65)( + CallNode(54...57)(nil, nil, (54...57), nil, nil, nil, nil, 0, "foo"), + CallNode(62...65)(nil, nil, (62...65), nil, nil, nil, nil, 0, "bar"), + (58...61) + ), + (65...66), + (45...53) + ), + DefinedNode(68...78)(nil, IntegerNode(77...78)(), nil, (68...76))] + ) +) diff --git a/test/yarp/snapshots/dos_endings.txt b/test/yarp/snapshots/dos_endings.txt new file mode 100644 index 0000000000..e1c6c9fec1 --- /dev/null +++ b/test/yarp/snapshots/dos_endings.txt @@ -0,0 +1,81 @@ +ProgramNode(0...108)( + [:x, :a], + StatementsNode(0...108)( + [CallNode(0...24)( + nil, + nil, + (0...4), + nil, + ArgumentsNode(5...24)( + [StringConcatNode(5...24)( + StringNode(5...9)((5...6), (6...8), (8...9), "hi"), + StringNode(17...24)((17...18), (18...23), (23...24), "there") + )] + ), + nil, + nil, + 0, + "puts" + ), + ArrayNode(28...37)( + [SymbolNode(31...36)(nil, (31...36), nil, "a\u0000\u0000b")], + (28...31), + (36...37) + ), + InterpolatedStringNode(41...73)( + (41...45), + [StringNode(47...70)( + nil, + (47...70), + nil, + " 1 \u0000\u0000 2\r\n" + " 3\r\n" + )], + (70...73) + ), + LocalVariableWriteNode(75...84)( + :x, + 0, + StringNode(79...84)((79...82), (82...82), (82...84), ""), + (75...76), + (77...78) + ), + LocalVariableWriteNode(88...108)( + :a, + 0, + CallNode(92...108)( + nil, + nil, + (92...95), + (95...96), + ArgumentsNode(96...107)( + [CallNode(96...107)( + InterpolatedStringNode(96...128)( + (96...102), + [StringNode(110...121)( + nil, + (110...121), + nil, + "\n" + "baz\r\n" + )], + (121...128) + ), + (102...103), + (103...107), + nil, + nil, + nil, + nil, + 0, + "chop" + )] + ), + (107...108), + nil, + 0, + "foo" + ), + (88...89), + (90...91) + )] + ) +) diff --git a/test/yarp/snapshots/embdoc_no_newline_at_end.txt b/test/yarp/snapshots/embdoc_no_newline_at_end.txt new file mode 100644 index 0000000000..bd3eaf5ff4 --- /dev/null +++ b/test/yarp/snapshots/embdoc_no_newline_at_end.txt @@ -0,0 +1 @@ +ProgramNode(0...0)([], StatementsNode(0...0)([])) diff --git a/test/yarp/snapshots/for.txt b/test/yarp/snapshots/for.txt new file mode 100644 index 0000000000..0bd8319aa1 --- /dev/null +++ b/test/yarp/snapshots/for.txt @@ -0,0 +1,128 @@ +ProgramNode(0...143)( + [:i, :j, :k], + StatementsNode(0...143)( + [ForNode(0...20)( + MultiWriteNode(4...5)( + [LocalVariableWriteNode(4...5)(:i, 0, nil, (4...5), nil)], + nil, + nil, + nil, + nil + ), + RangeNode(9...14)( + IntegerNode(9...10)(), + IntegerNode(12...14)(), + (10...12), + 0 + ), + StatementsNode(15...16)([LocalVariableReadNode(15...16)(:i, 0)]), + (0...3), + (6...8), + nil, + (17...20) + ), + ForNode(22...44)( + MultiWriteNode(26...27)( + [LocalVariableWriteNode(26...27)(:i, 0, nil, (26...27), nil)], + nil, + nil, + nil, + nil + ), + RangeNode(31...36)( + IntegerNode(31...32)(), + IntegerNode(34...36)(), + (32...34), + 0 + ), + StatementsNode(38...39)([LocalVariableReadNode(38...39)(:i, 0)]), + (22...25), + (28...30), + nil, + (41...44) + ), + ForNode(46...68)( + MultiWriteNode(50...53)( + [LocalVariableWriteNode(50...51)(:i, 0, nil, (50...51), nil), + LocalVariableWriteNode(52...53)(:j, 0, nil, (52...53), nil)], + nil, + nil, + nil, + nil + ), + RangeNode(57...62)( + IntegerNode(57...58)(), + IntegerNode(60...62)(), + (58...60), + 0 + ), + StatementsNode(63...64)([LocalVariableReadNode(63...64)(:i, 0)]), + (46...49), + (54...56), + nil, + (65...68) + ), + ForNode(70...94)( + MultiWriteNode(74...79)( + [LocalVariableWriteNode(74...75)(:i, 0, nil, (74...75), nil), + LocalVariableWriteNode(76...77)(:j, 0, nil, (76...77), nil), + LocalVariableWriteNode(78...79)(:k, 0, nil, (78...79), nil)], + nil, + nil, + nil, + nil + ), + RangeNode(83...88)( + IntegerNode(83...84)(), + IntegerNode(86...88)(), + (84...86), + 0 + ), + StatementsNode(89...90)([LocalVariableReadNode(89...90)(:i, 0)]), + (70...73), + (80...82), + nil, + (91...94) + ), + ForNode(96...119)( + MultiWriteNode(100...101)( + [LocalVariableWriteNode(100...101)(:i, 0, nil, (100...101), nil)], + nil, + nil, + nil, + nil + ), + RangeNode(105...110)( + IntegerNode(105...106)(), + IntegerNode(108...110)(), + (106...108), + 0 + ), + StatementsNode(114...115)([LocalVariableReadNode(114...115)(:i, 0)]), + (96...99), + (102...104), + (111...113), + (116...119) + ), + ForNode(121...143)( + MultiWriteNode(125...126)( + [LocalVariableWriteNode(125...126)(:i, 0, nil, (125...126), nil)], + nil, + nil, + nil, + nil + ), + RangeNode(130...135)( + IntegerNode(130...131)(), + IntegerNode(133...135)(), + (131...133), + 0 + ), + StatementsNode(137...138)([LocalVariableReadNode(137...138)(:i, 0)]), + (121...124), + (127...129), + nil, + (140...143) + )] + ) +) diff --git a/test/yarp/snapshots/global_variables.txt b/test/yarp/snapshots/global_variables.txt new file mode 100644 index 0000000000..2b3e1447fd --- /dev/null +++ b/test/yarp/snapshots/global_variables.txt @@ -0,0 +1,50 @@ +ProgramNode(0...340)( + [], + StatementsNode(0...340)( + [GlobalVariableReadNode(0...16)(), + GlobalVariableReadNode(18...20)(), + GlobalVariableReadNode(22...25)(), + GlobalVariableReadNode(27...37)(), + GlobalVariableReadNode(39...45)(), + GlobalVariableReadNode(47...54)(), + GlobalVariableReadNode(56...63)(), + GlobalVariableReadNode(65...67)(), + GlobalVariableReadNode(69...71)(), + GlobalVariableReadNode(73...75)(), + BackReferenceReadNode(77...79)(), + BackReferenceReadNode(81...83)(), + BackReferenceReadNode(85...87)(), + BackReferenceReadNode(89...91)(), + GlobalVariableReadNode(93...95)(), + GlobalVariableReadNode(97...99)(), + GlobalVariableReadNode(101...103)(), + GlobalVariableReadNode(105...111)(), + GlobalVariableReadNode(113...122)(), + GlobalVariableReadNode(124...127)(), + GlobalVariableReadNode(129...145)(), + GlobalVariableReadNode(147...155)(), + GlobalVariableReadNode(157...160)(), + SymbolNode(162...179)((162...163), (163...179), nil, "$global_variable"), + SymbolNode(181...184)((181...182), (182...184), nil, "$_"), + SymbolNode(186...190)((186...187), (187...190), nil, "$-w"), + SymbolNode(192...203)((192...193), (193...203), nil, "$LOAD_PATH"), + SymbolNode(205...212)((205...206), (206...212), nil, "$stdin"), + SymbolNode(214...222)((214...215), (215...222), nil, "$stdout"), + SymbolNode(224...232)((224...225), (225...232), nil, "$stderr"), + SymbolNode(234...237)((234...235), (235...237), nil, "$!"), + SymbolNode(239...242)((239...240), (240...242), nil, "$?"), + SymbolNode(244...247)((244...245), (245...247), nil, "$~"), + SymbolNode(249...252)((249...250), (250...252), nil, "$&"), + SymbolNode(254...257)((254...255), (255...257), nil, "$`"), + SymbolNode(259...262)((259...260), (260...262), nil, "$'"), + SymbolNode(264...267)((264...265), (265...267), nil, "$+"), + SymbolNode(269...272)((269...270), (270...272), nil, "$:"), + SymbolNode(274...277)((274...275), (275...277), nil, "$;"), + SymbolNode(279...286)((279...280), (280...286), nil, "$DEBUG"), + SymbolNode(288...298)((288...289), (289...298), nil, "$FILENAME"), + SymbolNode(300...304)((300...301), (301...304), nil, "$-0"), + SymbolNode(306...323)((306...307), (307...323), nil, "$LOADED_FEATURES"), + SymbolNode(325...334)((325...326), (326...334), nil, "$VERBOSE"), + SymbolNode(336...340)((336...337), (337...340), nil, "$-K")] + ) +) diff --git a/test/yarp/snapshots/hashes.txt b/test/yarp/snapshots/hashes.txt new file mode 100644 index 0000000000..41c166bb27 --- /dev/null +++ b/test/yarp/snapshots/hashes.txt @@ -0,0 +1,110 @@ +ProgramNode(0...120)( + [], + StatementsNode(0...120)( + [HashNode(0...2)((0...1), [], (1...2)), + HashNode(4...7)((4...5), [], (6...7)), + HashNode(9...27)( + (9...10), + [AssocNode(11...17)( + CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 0, "a"), + CallNode(16...17)(nil, nil, (16...17), nil, nil, nil, nil, 0, "b"), + (13...15) + ), + AssocNode(19...25)( + CallNode(19...20)(nil, nil, (19...20), nil, nil, nil, nil, 0, "c"), + CallNode(24...25)(nil, nil, (24...25), nil, nil, nil, nil, 0, "d"), + (21...23) + )], + (26...27) + ), + HashNode(29...44)( + (29...30), + [AssocNode(31...37)( + CallNode(31...32)(nil, nil, (31...32), nil, nil, nil, nil, 0, "a"), + CallNode(36...37)(nil, nil, (36...37), nil, nil, nil, nil, 0, "b"), + (33...35) + ), + AssocSplatNode(39...42)( + CallNode(41...42)(nil, nil, (41...42), nil, nil, nil, nil, 0, "c"), + (39...41) + )], + (43...44) + ), + HashNode(46...79)( + (46...47), + [AssocNode(54...58)( + SymbolNode(54...56)(nil, (54...55), (55...56), "a"), + CallNode(57...58)(nil, nil, (57...58), nil, nil, nil, nil, 0, "b"), + nil + ), + AssocNode(66...70)( + SymbolNode(66...68)(nil, (66...67), (67...68), "c"), + CallNode(69...70)(nil, nil, (69...70), nil, nil, nil, nil, 0, "d"), + nil + )], + (78...79) + ), + HashNode(81...106)( + (81...82), + [AssocNode(83...87)( + SymbolNode(83...85)(nil, (83...84), (84...85), "a"), + CallNode(86...87)(nil, nil, (86...87), nil, nil, nil, nil, 0, "b"), + nil + ), + AssocNode(89...93)( + SymbolNode(89...91)(nil, (89...90), (90...91), "c"), + CallNode(92...93)(nil, nil, (92...93), nil, nil, nil, nil, 0, "d"), + nil + ), + AssocSplatNode(95...98)( + CallNode(97...98)(nil, nil, (97...98), nil, nil, nil, nil, 0, "e"), + (95...97) + ), + AssocNode(100...104)( + SymbolNode(100...102)(nil, (100...101), (101...102), "f"), + CallNode(103...104)( + nil, + nil, + (103...104), + nil, + nil, + nil, + nil, + 0, + "g" + ), + nil + )], + (105...106) + ), + HashNode(108...120)( + (108...109), + [AssocNode(110...118)( + SymbolNode(110...114)((110...111), (111...112), (112...114), "a"), + CallNode(115...118)( + CallNode(116...118)( + nil, + nil, + (116...118), + nil, + nil, + nil, + nil, + 0, + "b?" + ), + nil, + (115...116), + nil, + nil, + nil, + nil, + 0, + "!" + ), + nil + )], + (119...120) + )] + ) +) diff --git a/test/yarp/snapshots/heredoc_with_trailing_newline.txt b/test/yarp/snapshots/heredoc_with_trailing_newline.txt new file mode 100644 index 0000000000..d69085b36a --- /dev/null +++ b/test/yarp/snapshots/heredoc_with_trailing_newline.txt @@ -0,0 +1,6 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [InterpolatedStringNode(0...10)((0...6), [], (7...10))] + ) +) diff --git a/test/yarp/snapshots/heredocs_nested.txt b/test/yarp/snapshots/heredocs_nested.txt new file mode 100644 index 0000000000..ff25d3daa2 --- /dev/null +++ b/test/yarp/snapshots/heredocs_nested.txt @@ -0,0 +1,22 @@ +ProgramNode(0...47)( + [], + StatementsNode(0...47)( + [InterpolatedStringNode(0...47)( + (0...7), + [StringNode(8...12)(nil, (8...12), nil, "pre\n"), + EmbeddedStatementsNode(12...36)( + (12...14), + StatementsNode(15...35)( + [InterpolatedStringNode(15...35)( + (15...21), + [StringNode(22...30)(nil, (22...30), nil, " hello\n")], + (30...35) + )] + ), + (35...36) + ), + StringNode(36...42)(nil, (36...42), nil, "\n" + "post\n")], + (42...47) + )] + ) +) diff --git a/test/yarp/snapshots/heredocs_with_ignored_newlines.txt b/test/yarp/snapshots/heredocs_with_ignored_newlines.txt new file mode 100644 index 0000000000..2c0638c0ba --- /dev/null +++ b/test/yarp/snapshots/heredocs_with_ignored_newlines.txt @@ -0,0 +1,24 @@ +ProgramNode(0...106)( + [], + StatementsNode(0...106)( + [InterpolatedStringNode(0...14)((0...7), [], (9...14)), + InterpolatedStringNode(15...106)( + (15...23), + [StringNode(25...100)( + nil, + (25...100), + nil, + "way over\n" + + "<<HERE\n" + + " not here\n" + + "HERE\n" + + "\n" + + "<<~BUT\n" + + " but\n" + + "BUT\n" + + " there\n" + )], + (100...106) + )] + ) +) diff --git a/test/yarp/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt b/test/yarp/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt new file mode 100644 index 0000000000..a002f24451 --- /dev/null +++ b/test/yarp/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt @@ -0,0 +1,10 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [InterpolatedStringNode(0...26)( + (0...6), + [StringNode(7...23)(nil, (7...23), nil, " some\n" + " heredocs\n")], + (23...26) + )] + ) +) diff --git a/test/yarp/snapshots/if.txt b/test/yarp/snapshots/if.txt new file mode 100644 index 0000000000..f8a697c746 --- /dev/null +++ b/test/yarp/snapshots/if.txt @@ -0,0 +1,230 @@ +ProgramNode(0...293)( + [], + StatementsNode(0...293)( + [IfNode(0...15)( + (0...2), + TrueNode(3...7)(), + StatementsNode(9...10)([IntegerNode(9...10)()]), + nil, + (12...15) + ), + IfNode(17...37)( + (17...19), + TrueNode(20...24)(), + StatementsNode(25...26)([IntegerNode(25...26)()]), + ElseNode(27...37)( + (27...31), + StatementsNode(32...33)([IntegerNode(32...33)()]), + (34...37) + ), + (34...37) + ), + IfNode(39...112)( + (39...41), + TrueNode(42...46)(), + StatementsNode(52...56)([TrueNode(52...56)()]), + IfNode(57...112)( + (57...62), + FalseNode(63...68)(), + StatementsNode(74...79)([FalseNode(74...79)()]), + IfNode(80...112)( + (80...85), + NilNode(86...89)(), + StatementsNode(95...98)([NilNode(95...98)()]), + ElseNode(99...112)( + (99...103), + StatementsNode(104...108)([SelfNode(104...108)()]), + (109...112) + ), + (109...112) + ), + (109...112) + ), + (109...112) + ), + IfNode(114...123)( + (116...118), + TrueNode(119...123)(), + StatementsNode(114...115)([IntegerNode(114...115)()]), + nil, + nil + ), + IfNode(125...138)( + (131...133), + TrueNode(134...138)(), + StatementsNode(125...130)([BreakNode(125...130)(nil, (125...130))]), + nil, + nil + ), + IfNode(140...152)( + (145...147), + TrueNode(148...152)(), + StatementsNode(140...144)([NextNode(140...144)(nil, (140...144))]), + nil, + nil + ), + IfNode(154...168)( + (161...163), + TrueNode(164...168)(), + StatementsNode(154...160)([ReturnNode(154...160)((154...160), nil)]), + nil, + nil + ), + IfNode(170...200)( + (170...172), + CallNode(173...182)( + nil, + nil, + (173...182), + nil, + nil, + nil, + nil, + 0, + "exit_loop" + ), + StatementsNode(188...196)( + [BreakNode(188...196)( + ArgumentsNode(194...196)([IntegerNode(194...196)()]), + (188...193) + )] + ), + nil, + (197...200) + ), + IfNode(202...221)( + (202...204), + CallNode(205...208)( + nil, + nil, + (205...208), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StatementsNode(214...217)( + [CallNode(214...217)( + nil, + nil, + (214...217), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + (218...221) + ), + IfNode(223...234)( + (230...232), + CallNode(233...234)(nil, nil, (233...234), nil, nil, nil, nil, 0, "c"), + StatementsNode(223...229)( + [IfNode(223...229)( + (225...227), + CallNode(228...229)( + nil, + nil, + (228...229), + nil, + nil, + nil, + nil, + 0, + "b" + ), + StatementsNode(223...224)( + [CallNode(223...224)( + nil, + nil, + (223...224), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + nil, + nil + )] + ), + nil, + nil + ), + IfNode(236...259)( + (236...238), + TrueNode(239...243)(), + StatementsNode(246...250)( + [CallNode(246...250)( + nil, + nil, + (246...247), + nil, + ArgumentsNode(248...250)( + [KeywordHashNode(248...250)( + [AssocNode(248...250)( + SymbolNode(248...250)(nil, (248...249), (249...250), "b"), + nil, + nil + )] + )] + ), + nil, + nil, + 0, + "a" + )] + ), + ElseNode(251...259)((251...255), nil, (256...259)), + (256...259) + ), + IfNode(261...293)( + (261...263), + MatchPredicateNode(264...273)( + CallNode(264...268)( + nil, + nil, + (264...268), + nil, + nil, + nil, + nil, + 0, + "type" + ), + IntegerNode(272...273)(), + (269...271) + ), + nil, + IfNode(274...289)( + (274...279), + MatchPredicateNode(280...289)( + CallNode(280...284)( + nil, + nil, + (280...284), + nil, + nil, + nil, + nil, + 0, + "type" + ), + ConstantReadNode(288...289)(), + (285...287) + ), + nil, + nil, + nil + ), + (290...293) + )] + ) +) diff --git a/test/yarp/snapshots/integer_operations.txt b/test/yarp/snapshots/integer_operations.txt new file mode 100644 index 0000000000..5cade8a7d5 --- /dev/null +++ b/test/yarp/snapshots/integer_operations.txt @@ -0,0 +1,383 @@ +ProgramNode(0...247)( + [], + StatementsNode(0...247)( + [CallNode(0...2)( + IntegerNode(1...2)(), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(4...6)( + IntegerNode(5...6)(), + nil, + (4...5), + nil, + nil, + nil, + nil, + 0, + "~" + ), + CallNode(8...14)( + IntegerNode(8...9)(), + nil, + (10...12), + nil, + ArgumentsNode(13...14)([IntegerNode(13...14)()]), + nil, + nil, + 0, + "!=" + ), + CallNode(16...22)( + IntegerNode(16...17)(), + nil, + (18...20), + nil, + ArgumentsNode(21...22)([IntegerNode(21...22)()]), + nil, + nil, + 0, + "!~" + ), + CallNode(24...29)( + IntegerNode(24...25)(), + nil, + (26...27), + nil, + ArgumentsNode(28...29)([IntegerNode(28...29)()]), + nil, + nil, + 0, + "%" + ), + CallNode(31...36)( + IntegerNode(31...32)(), + nil, + (33...34), + nil, + ArgumentsNode(35...36)([IntegerNode(35...36)()]), + nil, + nil, + 0, + "&" + ), + CallNode(38...43)( + IntegerNode(38...39)(), + nil, + (40...41), + nil, + ArgumentsNode(42...43)([IntegerNode(42...43)()]), + nil, + nil, + 0, + "*" + ), + CallNode(45...49)( + IntegerNode(45...46)(), + nil, + (46...48), + nil, + ArgumentsNode(48...49)([IntegerNode(48...49)()]), + nil, + nil, + 0, + "**" + ), + CallNode(51...56)( + IntegerNode(51...52)(), + nil, + (53...54), + nil, + ArgumentsNode(55...56)([IntegerNode(55...56)()]), + nil, + nil, + 0, + "+" + ), + CallNode(58...63)( + IntegerNode(58...59)(), + nil, + (60...61), + nil, + ArgumentsNode(62...63)([IntegerNode(62...63)()]), + nil, + nil, + 0, + "-" + ), + CallNode(65...70)( + IntegerNode(65...66)(), + nil, + (67...68), + nil, + ArgumentsNode(69...70)([IntegerNode(69...70)()]), + nil, + nil, + 0, + "/" + ), + CallNode(72...77)( + CallNode(72...75)( + IntegerNode(72...73)(), + nil, + (73...74), + nil, + ArgumentsNode(74...75)([IntegerNode(74...75)()]), + nil, + nil, + 0, + "/" + ), + nil, + (75...76), + nil, + ArgumentsNode(76...77)([IntegerNode(76...77)()]), + nil, + nil, + 0, + "/" + ), + CallNode(79...84)( + IntegerNode(79...80)(), + nil, + (81...82), + nil, + ArgumentsNode(83...84)([IntegerNode(83...84)()]), + nil, + nil, + 0, + "<" + ), + CallNode(86...92)( + IntegerNode(86...87)(), + nil, + (88...90), + nil, + ArgumentsNode(91...92)([IntegerNode(91...92)()]), + nil, + nil, + 0, + "<<" + ), + CallNode(94...100)( + IntegerNode(94...95)(), + nil, + (96...98), + nil, + ArgumentsNode(99...100)([IntegerNode(99...100)()]), + nil, + nil, + 0, + "<=" + ), + CallNode(102...109)( + IntegerNode(102...103)(), + nil, + (104...107), + nil, + ArgumentsNode(108...109)([IntegerNode(108...109)()]), + nil, + nil, + 0, + "<=>" + ), + CallNode(111...117)( + IntegerNode(111...112)(), + nil, + (113...115), + nil, + ArgumentsNode(116...117)([IntegerNode(116...117)()]), + nil, + nil, + 0, + "==" + ), + CallNode(119...126)( + IntegerNode(119...120)(), + nil, + (121...124), + nil, + ArgumentsNode(125...126)([IntegerNode(125...126)()]), + nil, + nil, + 0, + "===" + ), + CallNode(128...134)( + IntegerNode(128...129)(), + nil, + (130...132), + nil, + ArgumentsNode(133...134)([IntegerNode(133...134)()]), + nil, + nil, + 0, + "=~" + ), + CallNode(136...141)( + IntegerNode(136...137)(), + nil, + (138...139), + nil, + ArgumentsNode(140...141)([IntegerNode(140...141)()]), + nil, + nil, + 0, + ">" + ), + CallNode(143...149)( + IntegerNode(143...144)(), + nil, + (145...147), + nil, + ArgumentsNode(148...149)([IntegerNode(148...149)()]), + nil, + nil, + 0, + ">=" + ), + CallNode(151...157)( + IntegerNode(151...152)(), + nil, + (153...155), + nil, + ArgumentsNode(156...157)([IntegerNode(156...157)()]), + nil, + nil, + 0, + ">>" + ), + CallNode(159...164)( + IntegerNode(159...160)(), + nil, + (161...162), + nil, + ArgumentsNode(163...164)([IntegerNode(163...164)()]), + nil, + nil, + 0, + "^" + ), + CallNode(166...171)( + IntegerNode(166...167)(), + nil, + (168...169), + nil, + ArgumentsNode(170...171)([IntegerNode(170...171)()]), + nil, + nil, + 0, + "|" + ), + AndNode(173...179)( + IntegerNode(173...174)(), + IntegerNode(178...179)(), + (175...177) + ), + AndNode(181...188)( + IntegerNode(181...182)(), + IntegerNode(187...188)(), + (183...186) + ), + CallNode(190...200)( + IntegerNode(190...191)(), + nil, + (192...193), + nil, + ArgumentsNode(194...200)( + [CallNode(194...200)( + IntegerNode(194...195)(), + nil, + (196...198), + nil, + ArgumentsNode(199...200)([IntegerNode(199...200)()]), + nil, + nil, + 0, + "**" + )] + ), + nil, + nil, + 0, + "*" + ), + CallNode(202...211)( + CallNode(202...207)( + IntegerNode(202...203)(), + nil, + (204...205), + nil, + ArgumentsNode(206...207)([IntegerNode(206...207)()]), + nil, + nil, + 0, + "*" + ), + nil, + (208...209), + nil, + ArgumentsNode(210...211)([IntegerNode(210...211)()]), + nil, + nil, + 0, + "+" + ), + OrNode(213...219)( + IntegerNode(213...214)(), + IntegerNode(218...219)(), + (215...217) + ), + OrNode(221...227)( + IntegerNode(221...222)(), + IntegerNode(226...227)(), + (223...225) + ), + CallNode(229...238)( + IntegerNode(229...230)(), + nil, + (231...232), + nil, + ArgumentsNode(233...238)( + [CallNode(233...238)( + IntegerNode(233...234)(), + nil, + (235...236), + nil, + ArgumentsNode(237...238)([IntegerNode(237...238)()]), + nil, + nil, + 0, + "*" + )] + ), + nil, + nil, + 0, + "+" + ), + ParenthesesNode(240...247)( + StatementsNode(241...246)( + [CallNode(241...246)( + IntegerNode(241...242)(), + nil, + (243...244), + nil, + ArgumentsNode(245...246)([IntegerNode(245...246)()]), + nil, + nil, + 0, + "+" + )] + ), + (240...241), + (246...247) + )] + ) +) diff --git a/test/yarp/snapshots/keyword_method_names.txt b/test/yarp/snapshots/keyword_method_names.txt new file mode 100644 index 0000000000..47e56957ce --- /dev/null +++ b/test/yarp/snapshots/keyword_method_names.txt @@ -0,0 +1,143 @@ +ProgramNode(0...185)( + [], + StatementsNode(0...185)( + [DefNode(0...11)( + (4...7), + nil, + nil, + nil, + [], + (0...3), + nil, + nil, + nil, + nil, + (8...11) + ), + DefNode(13...32)( + (22...28), + SelfNode(17...21)(), + nil, + nil, + [], + (13...16), + (21...22), + nil, + nil, + nil, + (29...32) + ), + CallNode(34...68)( + nil, + nil, + (34...41), + nil, + ArgumentsNode(42...68)( + [DefNode(42...68)( + (46...49), + nil, + nil, + StatementsNode(52...64)( + [CallNode(52...64)( + nil, + nil, + (52...55), + nil, + nil, + nil, + BlockNode(56...64)([], nil, nil, (56...58), (61...64)), + 0, + "bar" + )] + ), + [], + (42...45), + nil, + nil, + nil, + nil, + (65...68) + )] + ), + nil, + nil, + 0, + "private" + ), + DefNode(70...89)( + (74...75), + nil, + ParametersNode(76...84)( + [RequiredParameterNode(76...77)(:a)], + [], + [], + nil, + [], + NoKeywordsParameterNode(79...84)((79...81), (81...84)), + nil + ), + nil, + [:a], + (70...73), + nil, + (75...76), + (84...85), + nil, + (86...89) + ), + DefNode(91...113)( + (108...109), + SourceEncodingNode(95...107)(), + nil, + nil, + [], + (91...94), + (107...108), + nil, + nil, + nil, + (110...113) + ), + StringNode(115...121)((115...117), (117...120), (120...121), "abc"), + StringNode(123...129)((123...125), (125...128), (128...129), "abc"), + DefNode(131...149)( + (144...145), + SourceFileNode(135...143)("/fixtures/keyword_method_names.txt"), + nil, + nil, + [], + (131...134), + (143...144), + nil, + nil, + nil, + (146...149) + ), + DefNode(151...169)( + (164...165), + SourceLineNode(155...163)(), + nil, + nil, + [], + (151...154), + (163...164), + nil, + nil, + nil, + (166...169) + ), + DefNode(171...185)( + (180...181), + NilNode(175...178)(), + nil, + nil, + [], + (171...174), + (178...180), + nil, + nil, + nil, + (182...185) + )] + ) +) diff --git a/test/yarp/snapshots/keywords.txt b/test/yarp/snapshots/keywords.txt new file mode 100644 index 0000000000..8bdd4c642d --- /dev/null +++ b/test/yarp/snapshots/keywords.txt @@ -0,0 +1,11 @@ +ProgramNode(0...51)( + [], + StatementsNode(0...51)( + [RedoNode(0...4)(), + RetryNode(6...11)(), + SelfNode(13...17)(), + SourceEncodingNode(19...31)(), + SourceFileNode(33...41)("/fixtures/keywords.txt"), + SourceLineNode(43...51)()] + ) +) diff --git a/test/yarp/snapshots/lambda.txt b/test/yarp/snapshots/lambda.txt new file mode 100644 index 0000000000..9d62e3d079 --- /dev/null +++ b/test/yarp/snapshots/lambda.txt @@ -0,0 +1,109 @@ +ProgramNode(0...51)( + [], + StatementsNode(0...51)( + [LambdaNode(0...14)( + [:foo], + (0...2), + BlockParametersNode(2...11)( + ParametersNode(6...9)( + [RequiredParameterNode(6...9)(:foo)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (2...3), + (10...11) + ), + nil + ), + LambdaNode(16...34)( + [:x], + (16...18), + BlockParametersNode(18...30)( + ParametersNode(19...29)( + [], + [], + [], + nil, + [KeywordParameterNode(19...29)( + (19...21), + InterpolatedStringNode(22...29)( + (22...23), + [StringNode(23...24)(nil, (23...24), nil, "b"), + EmbeddedStatementsNode(24...28)( + (24...26), + StatementsNode(26...27)( + [CallNode(26...27)( + nil, + nil, + (26...27), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + (27...28) + )], + (28...29) + ) + )], + nil, + nil + ), + [], + (18...19), + (29...30) + ), + nil + ), + LambdaNode(36...51)( + [:a], + (36...38), + BlockParametersNode(38...48)( + ParametersNode(39...47)( + [], + [], + [], + nil, + [KeywordParameterNode(39...47)( + (39...41), + CallNode(42...47)( + CallNode(42...43)( + nil, + nil, + (42...43), + nil, + nil, + nil, + nil, + 0, + "b" + ), + nil, + (44...45), + nil, + ArgumentsNode(46...47)([IntegerNode(46...47)()]), + nil, + nil, + 0, + "*" + ) + )], + nil, + nil + ), + [], + (38...39), + (47...48) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/method_calls.txt b/test/yarp/snapshots/method_calls.txt new file mode 100644 index 0000000000..719f07e0eb --- /dev/null +++ b/test/yarp/snapshots/method_calls.txt @@ -0,0 +1,1570 @@ +ProgramNode(0...1187)( + [], + StatementsNode(0...1187)( + [CallNode(0...14)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...7), + nil, + ArgumentsNode(8...14)( + [StringNode(8...14)((8...10), (10...13), (13...14), "baz")] + ), + nil, + nil, + 0, + "bar" + ), + CallNode(16...25)( + CallNode(16...17)(nil, nil, (16...17), nil, nil, nil, nil, 0, "a"), + (17...18), + (18...19), + (19...20), + ArgumentsNode(20...24)( + [CallNode(20...21)(nil, nil, (20...21), nil, nil, nil, nil, 0, "c"), + CallNode(23...24)(nil, nil, (23...24), nil, nil, nil, nil, 0, "d")] + ), + (24...25), + nil, + 0, + "b" + ), + CallNode(27...32)( + CallNode(27...28)(nil, nil, (27...28), nil, nil, nil, nil, 0, "a"), + (28...29), + (29...30), + (30...31), + nil, + (31...32), + nil, + 0, + "b" + ), + CallNode(34...52)( + CallNode(34...44)( + CallNode(34...37)(nil, nil, (34...37), nil, nil, nil, nil, 0, "foo"), + (40...41), + (41...44), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (47...49), + (49...52), + nil, + nil, + nil, + nil, + 1, + "baz" + ), + CallNode(54...56)(nil, nil, (54...56), nil, nil, nil, nil, 0, "a!"), + CallNode(58...62)( + CallNode(58...59)(nil, nil, (58...59), nil, nil, nil, nil, 0, "a"), + (59...60), + (0...0), + (60...61), + nil, + (61...62), + nil, + 0, + "call" + ), + CallNode(64...75)( + CallNode(64...65)(nil, nil, (64...65), nil, nil, nil, nil, 0, "a"), + (65...66), + (0...0), + (66...67), + ArgumentsNode(67...74)( + [IntegerNode(67...68)(), + IntegerNode(70...71)(), + IntegerNode(73...74)()] + ), + (74...75), + nil, + 0, + "call" + ), + CallNode(77...81)( + CallNode(77...78)(nil, nil, (77...78), nil, nil, nil, nil, 0, "a"), + (78...80), + (80...81), + nil, + nil, + nil, + nil, + 0, + "b" + ), + CallNode(83...94)( + CallNode(83...86)(nil, nil, (83...86), nil, nil, nil, nil, 0, "foo"), + (86...87), + (87...90), + nil, + ArgumentsNode(93...94)([IntegerNode(93...94)()]), + nil, + nil, + 0, + "bar=" + ), + CallNode(96...98)(nil, nil, (96...98), nil, nil, nil, nil, 0, "a?"), + CallNode(100...109)( + nil, + nil, + (100...101), + (101...102), + ArgumentsNode(102...108)( + [BlockArgumentNode(102...108)( + CallNode(103...108)( + nil, + nil, + (103...108), + nil, + nil, + nil, + nil, + 0, + "block" + ), + (102...103) + )] + ), + (108...109), + nil, + 0, + "a" + ), + CallNode(111...122)( + nil, + nil, + (111...112), + (112...113), + ArgumentsNode(113...121)( + [KeywordHashNode(113...121)( + [AssocSplatNode(113...121)( + CallNode(115...121)( + nil, + nil, + (115...121), + nil, + nil, + nil, + nil, + 0, + "kwargs" + ), + (113...115) + )] + )] + ), + (121...122), + nil, + 0, + "a" + ), + CallNode(124...129)( + CallNode(124...127)( + CallNode(124...125)( + nil, + nil, + (124...125), + nil, + nil, + nil, + nil, + 0, + "a" + ), + (125...126), + (126...127), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (127...128), + (128...129), + nil, + nil, + nil, + nil, + 0, + "c" + ), + CallNode(131...138)( + nil, + nil, + (131...132), + (132...133), + ArgumentsNode(133...137)( + [CallNode(133...134)( + nil, + nil, + (133...134), + nil, + nil, + nil, + nil, + 0, + "b" + ), + CallNode(136...137)( + nil, + nil, + (136...137), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + (137...138), + nil, + 0, + "a" + ), + CallNode(140...143)( + nil, + nil, + (140...141), + (141...142), + nil, + (142...143), + nil, + 0, + "a" + ), + CallNode(145...153)( + nil, + nil, + (145...146), + (146...147), + ArgumentsNode(147...152)( + [SplatNode(147...152)( + (147...148), + CallNode(148...152)( + nil, + nil, + (148...152), + nil, + nil, + nil, + nil, + 0, + "args" + ) + )] + ), + (152...153), + nil, + 0, + "a" + ), + CallNode(155...161)( + nil, + nil, + (155...156), + nil, + ArgumentsNode(157...161)( + [CallNode(157...158)( + nil, + nil, + (157...158), + nil, + nil, + nil, + nil, + 0, + "b" + ), + CallNode(160...161)( + nil, + nil, + (160...161), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + nil, + nil, + 0, + "a" + ), + CallNode(163...171)( + CallNode(163...164)(nil, nil, (163...164), nil, nil, nil, nil, 0, "a"), + (164...165), + (165...166), + nil, + ArgumentsNode(167...171)( + [CallNode(167...168)( + nil, + nil, + (167...168), + nil, + nil, + nil, + nil, + 0, + "c" + ), + CallNode(170...171)( + nil, + nil, + (170...171), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "b" + ), + MultiWriteNode(173...196)( + [CallNode(173...180)( + CallNode(173...176)( + nil, + nil, + (173...176), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (176...177), + (177...180), + nil, + nil, + nil, + nil, + 0, + "foo=" + ), + CallNode(182...189)( + CallNode(182...185)( + nil, + nil, + (182...185), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (185...186), + (186...189), + nil, + nil, + nil, + nil, + 0, + "bar=" + )], + (190...191), + ArrayNode(192...196)( + [IntegerNode(192...193)(), IntegerNode(195...196)()], + nil, + nil + ), + nil, + nil + ), + CallNode(198...202)( + CallNode(198...199)(nil, nil, (198...199), nil, nil, nil, nil, 0, "a"), + (199...201), + (201...202), + nil, + nil, + nil, + nil, + 1, + "b" + ), + CallNode(204...209)( + CallNode(204...205)(nil, nil, (204...205), nil, nil, nil, nil, 0, "a"), + (205...207), + (0...0), + (207...208), + nil, + (208...209), + nil, + 1, + "call" + ), + CallNode(211...218)( + CallNode(211...212)(nil, nil, (211...212), nil, nil, nil, nil, 0, "a"), + (212...214), + (214...215), + (215...216), + ArgumentsNode(216...217)( + [CallNode(216...217)( + nil, + nil, + (216...217), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + (217...218), + nil, + 1, + "b" + ), + CallNode(220...226)( + CallNode(220...221)(nil, nil, (220...221), nil, nil, nil, nil, 0, "a"), + (221...223), + (223...224), + (224...225), + nil, + (225...226), + nil, + 1, + "b" + ), + IfNode(228...261)( + (239...241), + AndNode(242...261)( + OrNode(242...253)( + CallNode(242...246)( + nil, + nil, + (242...246), + nil, + nil, + nil, + nil, + 0, + "bar?" + ), + CallNode(250...253)( + nil, + nil, + (250...253), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (247...249) + ), + CallNode(258...261)( + nil, + nil, + (258...261), + nil, + nil, + nil, + nil, + 0, + "qux" + ), + (254...257) + ), + StatementsNode(228...238)( + [CallNode(228...238)( + nil, + nil, + (228...231), + nil, + ArgumentsNode(232...238)( + [SymbolNode(232...234)((232...233), (233...234), nil, "a"), + SymbolNode(236...238)((236...237), (237...238), nil, "b")] + ), + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil + ), + CallNode(263...278)( + nil, + nil, + (263...266), + (266...267), + ArgumentsNode(267...276)( + [SymbolNode(267...269)((267...268), (268...269), nil, "a"), + SymbolNode(274...276)((274...275), (275...276), nil, "b")] + ), + (277...278), + nil, + 0, + "foo" + ), + CallNode(280...290)( + nil, + nil, + (280...283), + (283...284), + ArgumentsNode(284...289)( + [SplatNode(284...289)( + (284...285), + CallNode(285...289)( + nil, + nil, + (285...289), + nil, + nil, + nil, + nil, + 0, + "rest" + ) + )] + ), + (289...290), + nil, + 0, + "foo" + ), + CallNode(292...332)( + nil, + nil, + (292...295), + (295...296), + ArgumentsNode(296...331)( + [SymbolNode(296...298)((296...297), (297...298), nil, "a"), + KeywordHashNode(300...324)( + [AssocNode(300...314)( + SymbolNode(300...302)((300...301), (301...302), nil, "h"), + ArrayNode(306...314)( + [SymbolNode(307...309)((307...308), (308...309), nil, "x"), + SymbolNode(311...313)((311...312), (312...313), nil, "y")], + (306...307), + (313...314) + ), + (303...305) + ), + AssocNode(316...324)( + SymbolNode(316...318)((316...317), (317...318), nil, "a"), + SymbolNode(322...324)((322...323), (323...324), nil, "b"), + (319...321) + )] + ), + BlockArgumentNode(326...331)( + SymbolNode(327...331)((327...328), (328...331), nil, "bar"), + (326...327) + )] + ), + (331...332), + nil, + 0, + "foo" + ), + CallNode(334...383)( + nil, + nil, + (334...336), + nil, + ArgumentsNode(337...383)( + [IntegerNode(337...340)(), + HashNode(342...383)( + (342...343), + [AssocNode(344...361)( + SymbolNode(344...350)((344...345), (345...350), nil, "there"), + SymbolNode(354...361)((354...355), (355...361), nil, "friend"), + (351...353) + ), + AssocSplatNode(363...367)( + HashNode(365...367)((365...366), [], (366...367)), + (363...365) + ), + AssocNode(369...381)( + SymbolNode(369...376)(nil, (369...375), (375...376), "whatup"), + SymbolNode(377...381)((377...378), (378...381), nil, "dog"), + nil + )], + (382...383) + )] + ), + nil, + nil, + 0, + "hi" + ), + CallNode(385...421)( + nil, + nil, + (385...388), + nil, + ArgumentsNode(389...400)( + [SymbolNode(389...391)((389...390), (390...391), nil, "a"), + KeywordHashNode(393...400)( + [AssocNode(393...400)( + SymbolNode(393...395)(nil, (393...394), (394...395), "b"), + TrueNode(396...400)(), + nil + )] + )] + ), + nil, + BlockNode(401...421)( + [:a, :b], + BlockParametersNode(404...410)( + ParametersNode(405...409)( + [RequiredParameterNode(405...406)(:a), + RequiredParameterNode(408...409)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (404...405), + (409...410) + ), + StatementsNode(411...417)( + [CallNode(411...417)( + nil, + nil, + (411...415), + nil, + ArgumentsNode(416...417)( + [LocalVariableReadNode(416...417)(:a, 0)] + ), + nil, + nil, + 0, + "puts" + )] + ), + (401...403), + (418...421) + ), + 0, + "foo" + ), + CallNode(423...440)( + nil, + nil, + (423...425), + nil, + ArgumentsNode(426...440)( + [KeywordHashNode(426...440)( + [AssocNode(426...440)( + SymbolNode(426...432)(nil, (426...431), (431...432), "there"), + SymbolNode(433...440)((433...434), (434...440), nil, "friend"), + nil + )] + )] + ), + nil, + nil, + 0, + "hi" + ), + CallNode(442...482)( + nil, + nil, + (442...444), + nil, + ArgumentsNode(445...482)( + [KeywordHashNode(445...482)( + [AssocNode(445...462)( + SymbolNode(445...451)((445...446), (446...451), nil, "there"), + SymbolNode(455...462)((455...456), (456...462), nil, "friend"), + (452...454) + ), + AssocSplatNode(464...468)( + HashNode(466...468)((466...467), [], (467...468)), + (464...466) + ), + AssocNode(470...482)( + SymbolNode(470...477)(nil, (470...476), (476...477), "whatup"), + SymbolNode(478...482)((478...479), (479...482), nil, "dog"), + nil + )] + )] + ), + nil, + nil, + 0, + "hi" + ), + CallNode(484...525)( + nil, + nil, + (484...486), + (486...487), + ArgumentsNode(487...524)( + [KeywordHashNode(487...524)( + [AssocNode(487...504)( + SymbolNode(487...493)((487...488), (488...493), nil, "there"), + SymbolNode(497...504)((497...498), (498...504), nil, "friend"), + (494...496) + ), + AssocSplatNode(506...510)( + HashNode(508...510)((508...509), [], (509...510)), + (506...508) + ), + AssocNode(512...524)( + SymbolNode(512...519)(nil, (512...518), (518...519), "whatup"), + SymbolNode(520...524)((520...521), (521...524), nil, "dog"), + nil + )] + )] + ), + (524...525), + nil, + 0, + "hi" + ), + CallNode(527...563)( + nil, + nil, + (527...530), + (530...531), + ArgumentsNode(531...562)( + [HashNode(531...553)( + (531...532), + [AssocNode(533...540)( + SymbolNode(533...535)(nil, (533...534), (534...535), "a"), + TrueNode(536...540)(), + nil + ), + AssocNode(542...550)( + SymbolNode(542...544)(nil, (542...543), (543...544), "b"), + FalseNode(545...550)(), + nil + )], + (552...553) + ), + BlockArgumentNode(555...562)( + SymbolNode(556...562)((556...557), (557...562), nil, "block"), + (555...556) + )] + ), + (562...563), + nil, + 0, + "foo" + ), + CallNode(565...585)( + nil, + nil, + (565...567), + nil, + ArgumentsNode(568...585)( + [KeywordHashNode(568...585)( + [AssocNode(568...585)( + SymbolNode(568...574)((568...569), (569...574), nil, "there"), + SymbolNode(578...585)((578...579), (579...585), nil, "friend"), + (575...577) + )] + )] + ), + nil, + nil, + 0, + "hi" + ), + CallNode(587...600)( + nil, + nil, + (587...590), + (590...591), + ArgumentsNode(591...597)( + [SymbolNode(591...593)((591...592), (592...593), nil, "a"), + SymbolNode(595...597)((595...596), (596...597), nil, "b")] + ), + (599...600), + nil, + 0, + "foo" + ), + CallNode(602...619)( + nil, + nil, + (602...605), + (605...606), + ArgumentsNode(607...616)( + [SymbolNode(607...609)((607...608), (608...609), nil, "a"), + KeywordHashNode(611...616)( + [AssocNode(611...616)( + SymbolNode(611...613)(nil, (611...612), (612...613), "b"), + SymbolNode(614...616)((614...615), (615...616), nil, "c"), + nil + )] + )] + ), + (618...619), + nil, + 0, + "foo" + ), + CallNode(621...651)( + nil, + nil, + (621...624), + nil, + ArgumentsNode(625...651)( + [KeywordHashNode(625...642)( + [AssocNode(625...632)( + SymbolNode(625...627)(nil, (625...626), (626...627), "a"), + TrueNode(628...632)(), + nil + ), + AssocNode(634...642)( + SymbolNode(634...636)(nil, (634...635), (635...636), "b"), + FalseNode(637...642)(), + nil + )] + ), + BlockArgumentNode(644...651)( + SymbolNode(645...651)((645...646), (646...651), nil, "block"), + (644...645) + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(653...674)( + nil, + nil, + (653...662), + nil, + ArgumentsNode(663...674)( + [IntegerNode(663...664)(), + KeywordHashNode(666...674)( + [AssocNode(666...674)( + SymbolNode(666...672)(nil, (666...671), (671...672), "kwarg"), + IntegerNode(673...674)(), + nil + )] + )] + ), + nil, + nil, + 0, + "some_func" + ), + CallNode(676...694)( + ConstantReadNode(676...682)(), + (682...683), + (683...690), + (690...691), + ArgumentsNode(691...693)([IntegerNode(691...693)()]), + (693...694), + nil, + 0, + "Integer" + ), + CallNode(696...706)( + CallNode(696...697)(nil, nil, (696...697), nil, nil, nil, nil, 0, "x"), + (697...698), + (698...702), + nil, + nil, + nil, + BlockNode(703...706)([], nil, nil, (703...704), (705...706)), + 0, + "each" + ), + CallNode(708...722)( + CallNode(708...711)( + nil, + nil, + (708...711), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (711...712), + (712...715), + nil, + nil, + nil, + BlockNode(716...722)( + [], + nil, + StatementsNode(718...720)([BackReferenceReadNode(718...720)()]), + (716...717), + (721...722) + ), + 0, + "map" + ), + CallNode(724...736)( + ConstantPathNode(724...728)( + ConstantReadNode(724...725)(), + ConstantReadNode(727...728)(), + (725...727) + ), + (728...730), + (730...731), + nil, + ArgumentsNode(732...736)( + [SymbolNode(732...736)((732...733), (733...736), nil, "foo")] + ), + nil, + nil, + 0, + "C" + ), + CallNode(738...751)( + ConstantPathNode(738...742)( + ConstantReadNode(738...739)(), + ConstantReadNode(741...742)(), + (739...741) + ), + (742...744), + (744...745), + (745...746), + ArgumentsNode(746...750)( + [SymbolNode(746...750)((746...747), (747...750), nil, "foo")] + ), + (750...751), + nil, + 0, + "C" + ), + CallNode(753...770)( + ConstantPathNode(753...757)( + ConstantReadNode(753...754)(), + ConstantReadNode(756...757)(), + (754...756) + ), + (757...759), + (759...760), + (760...761), + ArgumentsNode(761...765)( + [SymbolNode(761...765)((761...762), (762...765), nil, "foo")] + ), + (765...766), + BlockNode(767...770)([], nil, nil, (767...768), (769...770)), + 0, + "C" + ), + CallNode(772...784)( + nil, + nil, + (772...775), + (775...776), + ArgumentsNode(776...783)( + [KeywordHashNode(776...783)( + [AssocNode(776...783)( + SymbolNode(776...780)( + (776...777), + (777...778), + (778...780), + "a" + ), + CallNode(781...783)( + IntegerNode(782...783)(), + nil, + (781...782), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + nil + )] + )] + ), + (783...784), + nil, + 0, + "foo" + ), + CallNode(786...814)( + nil, + nil, + (786...789), + nil, + ArgumentsNode(790...814)( + [KeywordHashNode(790...814)( + [AssocNode(790...814)( + SymbolNode(790...794)(nil, (790...793), (793...794), "bar"), + HashNode(795...814)( + (795...796), + [AssocNode(797...812)( + SymbolNode(797...801)( + nil, + (797...800), + (800...801), + "baz" + ), + CallNode(802...812)( + nil, + nil, + (802...805), + nil, + nil, + nil, + BlockNode(806...812)( + [], + nil, + nil, + (806...808), + (809...812) + ), + 0, + "qux" + ), + nil + )], + (813...814) + ), + nil + )] + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(816...840)( + nil, + nil, + (816...819), + nil, + ArgumentsNode(820...840)( + [KeywordHashNode(820...840)( + [AssocNode(820...840)( + SymbolNode(820...824)(nil, (820...823), (823...824), "bar"), + HashNode(825...840)( + (825...826), + [AssocSplatNode(827...838)( + CallNode(829...838)( + nil, + nil, + (829...831), + nil, + nil, + nil, + BlockNode(832...838)( + [], + nil, + nil, + (832...834), + (835...838) + ), + 0, + "kw" + ), + (827...829) + )], + (839...840) + ), + nil + )] + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(842...878)( + nil, + nil, + (842...845), + nil, + ArgumentsNode(846...871)( + [InterpolatedStringNode(846...871)( + (846...847), + [EmbeddedStatementsNode(847...870)( + (847...849), + StatementsNode(849...869)( + [CallNode(849...869)( + CallNode(849...852)( + nil, + nil, + (849...852), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (852...853), + (853...856), + nil, + nil, + nil, + BlockNode(857...869)( + [], + nil, + StatementsNode(860...865)( + [StringNode(860...865)( + (860...861), + (861...864), + (864...865), + "baz" + )] + ), + (857...859), + (866...869) + ), + 0, + "map" + )] + ), + (869...870) + )], + (870...871) + )] + ), + nil, + BlockNode(872...878)([], nil, nil, (872...874), (875...878)), + 0, + "foo" + ), + CallNode(880...908)( + nil, + nil, + (880...883), + nil, + ArgumentsNode(884...908)( + [ClassNode(884...908)( + [], + (884...889), + ConstantReadNode(890...893)(), + nil, + nil, + StatementsNode(894...904)( + [CallNode(894...904)( + nil, + nil, + (894...897), + nil, + nil, + nil, + BlockNode(898...904)([], nil, nil, (898...900), (901...904)), + 0, + "baz" + )] + ), + (905...908) + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(910...939)( + nil, + nil, + (910...913), + nil, + ArgumentsNode(914...939)( + [ModuleNode(914...939)( + [], + (914...920), + ConstantReadNode(921...924)(), + StatementsNode(925...935)( + [CallNode(925...935)( + nil, + nil, + (925...928), + nil, + nil, + nil, + BlockNode(929...935)([], nil, nil, (929...931), (932...935)), + 0, + "baz" + )] + ), + (936...939) + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(941...957)( + nil, + nil, + (941...944), + nil, + ArgumentsNode(945...957)( + [ArrayNode(945...957)( + [CallNode(946...956)( + nil, + nil, + (946...949), + nil, + nil, + nil, + BlockNode(950...956)([], nil, nil, (950...952), (953...956)), + 0, + "baz" + )], + (945...946), + (956...957) + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(959...987)( + nil, + nil, + (959...960), + nil, + ArgumentsNode(961...987)( + [BeginNode(961...987)( + (961...966), + StatementsNode(967...983)( + [CallNode(967...983)( + IntegerNode(967...968)(), + (968...969), + (969...974), + nil, + nil, + nil, + BlockNode(975...983)( + [], + nil, + StatementsNode(978...979)([IntegerNode(978...979)()]), + (975...977), + (980...983) + ), + 0, + "times" + )] + ), + nil, + nil, + nil, + (984...987) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(989...1040)( + nil, + nil, + (989...992), + nil, + ArgumentsNode(993...1040)( + [SymbolNode(993...995)((993...994), (994...995), nil, "a"), + IfNode(999...1040)( + (999...1001), + CallNode(1002...1003)( + nil, + nil, + (1002...1003), + nil, + nil, + nil, + nil, + 0, + "x" + ), + StatementsNode(1008...1034)( + [CallNode(1008...1034)( + nil, + nil, + (1008...1011), + nil, + nil, + nil, + BlockNode(1012...1034)( + [:a], + BlockParametersNode(1015...1018)( + ParametersNode(1016...1017)( + [RequiredParameterNode(1016...1017)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (1015...1016), + (1017...1018) + ), + StatementsNode(1025...1026)( + [LocalVariableReadNode(1025...1026)(:a, 0)] + ), + (1012...1014), + (1031...1034) + ), + 0, + "bar" + )] + ), + nil, + (1037...1040) + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(1042...1132)( + nil, + nil, + (1042...1045), + nil, + ArgumentsNode(1046...1132)( + [SymbolNode(1046...1048)((1046...1047), (1047...1048), nil, "a"), + WhileNode(1052...1096)( + (1052...1057), + CallNode(1058...1059)( + nil, + nil, + (1058...1059), + nil, + nil, + nil, + nil, + 0, + "x" + ), + StatementsNode(1064...1090)( + [CallNode(1064...1090)( + nil, + nil, + (1064...1067), + nil, + nil, + nil, + BlockNode(1068...1090)( + [:a], + BlockParametersNode(1071...1074)( + ParametersNode(1072...1073)( + [RequiredParameterNode(1072...1073)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (1071...1072), + (1073...1074) + ), + StatementsNode(1081...1082)( + [LocalVariableReadNode(1081...1082)(:a, 0)] + ), + (1068...1070), + (1087...1090) + ), + 0, + "bar" + )] + ) + ), + UntilNode(1100...1132)( + (1100...1105), + CallNode(1106...1107)( + nil, + nil, + (1106...1107), + nil, + nil, + nil, + nil, + 0, + "x" + ), + StatementsNode(1112...1126)( + [CallNode(1112...1126)( + nil, + nil, + (1112...1115), + nil, + nil, + nil, + BlockNode(1116...1126)( + [], + nil, + nil, + (1116...1118), + (1123...1126) + ), + 0, + "baz" + )] + ) + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(1134...1143)( + HashNode(1134...1136)((1134...1135), [], (1135...1136)), + nil, + (1137...1138), + nil, + ArgumentsNode(1139...1143)( + [CallNode(1139...1143)( + nil, + nil, + (1139...1140), + nil, + nil, + nil, + BlockNode(1141...1143)([], nil, nil, (1141...1142), (1142...1143)), + 0, + "A" + )] + ), + nil, + nil, + 0, + "+" + ), + CallNode(1145...1161)( + HashNode(1145...1147)((1145...1146), [], (1146...1147)), + nil, + (1148...1149), + nil, + ArgumentsNode(1150...1161)( + [CallNode(1150...1161)( + nil, + nil, + (1150...1151), + nil, + nil, + nil, + BlockNode(1152...1161)( + [:a], + BlockParametersNode(1154...1157)( + ParametersNode(1155...1156)( + [RequiredParameterNode(1155...1156)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (1154...1155), + (1156...1157) + ), + StatementsNode(1158...1159)( + [LocalVariableReadNode(1158...1159)(:a, 0)] + ), + (1152...1153), + (1160...1161) + ), + 0, + "A" + )] + ), + nil, + nil, + 0, + "+" + ), + CallNode(1163...1174)( + CallNode(1163...1167)( + nil, + nil, + (1163...1164), + nil, + nil, + nil, + BlockNode(1165...1167)([], nil, nil, (1165...1166), (1166...1167)), + 0, + "A" + ), + nil, + (1168...1169), + nil, + ArgumentsNode(1170...1174)( + [CallNode(1170...1174)( + nil, + nil, + (1170...1171), + nil, + nil, + nil, + BlockNode(1172...1174)([], nil, nil, (1172...1173), (1173...1174)), + 0, + "A" + )] + ), + nil, + nil, + 0, + "+" + ), + CallNode(1176...1187)( + CallNode(1176...1179)( + nil, + nil, + (1176...1179), + nil, + nil, + nil, + nil, + 0, + "lst" + ), + nil, + (1180...1182), + nil, + ArgumentsNode(1183...1187)( + [CallNode(1183...1187)( + nil, + nil, + (1183...1184), + nil, + nil, + nil, + BlockNode(1185...1187)([], nil, nil, (1185...1186), (1186...1187)), + 0, + "A" + )] + ), + nil, + nil, + 0, + "<<" + )] + ) +) diff --git a/test/yarp/snapshots/methods.txt b/test/yarp/snapshots/methods.txt new file mode 100644 index 0000000000..83bc7e3c5c --- /dev/null +++ b/test/yarp/snapshots/methods.txt @@ -0,0 +1,1406 @@ +ProgramNode(0...1194)( + [:a, :c], + StatementsNode(0...1194)( + [DefNode(0...23)( + (4...7), + nil, + ParametersNode(8...18)( + [RequiredDestructuredParameterNode(8...18)( + [RequiredParameterNode(9...12)(:bar), + RequiredParameterNode(14...17)(:baz)], + (8...9), + (17...18) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:bar, :baz], + (0...3), + nil, + (7...8), + (18...19), + nil, + (20...23) + ), + DefNode(25...74)( + (29...32), + nil, + ParametersNode(33...69)( + [RequiredDestructuredParameterNode(33...43)( + [RequiredParameterNode(34...37)(:bar), + RequiredParameterNode(39...42)(:baz)], + (33...34), + (42...43) + )], + [OptionalParameterNode(45...57)( + :optional, + (45...53), + (54...55), + IntegerNode(56...57)() + )], + [RequiredDestructuredParameterNode(59...69)( + [RequiredParameterNode(60...63)(:bin), + RequiredParameterNode(65...68)(:bag)], + (59...60), + (68...69) + )], + nil, + [], + nil, + nil + ), + nil, + [:bar, :baz, :optional, :bin, :bag], + (25...28), + nil, + (32...33), + (69...70), + nil, + (71...74) + ), + DefNode(77...95)( + (81...82), + nil, + nil, + BeginNode(84...95)( + nil, + nil, + nil, + nil, + EnsureNode(84...95)((84...90), nil, (92...95)), + (92...95) + ), + [], + (77...80), + nil, + nil, + nil, + nil, + (92...95) + ), + DefNode(97...110)( + (105...106), + ParenthesesNode(101...104)( + CallNode(102...103)( + nil, + nil, + (102...103), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (101...102), + (103...104) + ), + nil, + nil, + [], + (97...100), + (104...105), + nil, + nil, + nil, + (107...110) + ), + DefNode(112...126)( + (121...122), + ParenthesesNode(116...119)( + CallNode(117...118)( + nil, + nil, + (117...118), + nil, + nil, + nil, + nil, + 0, + "a" + ), + (116...117), + (118...119) + ), + nil, + nil, + [], + (112...115), + (119...121), + nil, + nil, + nil, + (123...126) + ), + DefNode(128...143)( + (138...139), + FalseNode(132...137)(), + nil, + nil, + [], + (128...131), + (137...138), + nil, + nil, + nil, + (140...143) + ), + DefNode(145...159)( + (149...150), + nil, + ParametersNode(151...154)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(151...154)(), + nil + ), + nil, + [:"..."], + (145...148), + nil, + (150...151), + (154...155), + nil, + (156...159) + ), + DefNode(161...175)( + (170...171), + GlobalVariableReadNode(165...169)(), + nil, + nil, + [], + (161...164), + (169...170), + nil, + nil, + nil, + (172...175) + ), + DefNode(177...188)( + (183...184), + CallNode(181...182)(nil, nil, (181...182), nil, nil, nil, nil, 0, "a"), + nil, + nil, + [], + (177...180), + (182...183), + nil, + nil, + nil, + (185...188) + ), + DefNode(190...204)( + (199...200), + InstanceVariableReadNode(194...198)(), + nil, + nil, + [], + (190...193), + (198...199), + nil, + nil, + nil, + (201...204) + ), + DefNode(206...219)( + (210...211), + nil, + ParametersNode(212...214)( + [], + [], + [], + nil, + [KeywordParameterNode(212...214)((212...214), nil)], + nil, + nil + ), + nil, + [:b], + (206...209), + nil, + nil, + nil, + nil, + (216...219) + ), + StringNode(221...227)((221...223), (223...226), (226...227), "abc"), + DefNode(229...242)( + (233...234), + nil, + ParametersNode(235...237)( + [], + [], + [], + nil, + [KeywordParameterNode(235...237)((235...237), nil)], + nil, + nil + ), + nil, + [:b], + (229...232), + nil, + (234...235), + (237...238), + nil, + (239...242) + ), + DefNode(244...258)( + (248...249), + nil, + ParametersNode(250...253)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(250...253)((250...252), (252...253)), + nil + ), + nil, + [:b], + (244...247), + nil, + (249...250), + (253...254), + nil, + (255...258) + ), + DefNode(260...273)( + (264...265), + nil, + ParametersNode(266...268)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(266...268)((266...268), nil), + nil + ), + nil, + [:**], + (260...263), + nil, + (265...266), + (268...269), + nil, + (270...273) + ), + LocalVariableWriteNode(275...280)( + :a, + 0, + IntegerNode(279...280)(), + (275...276), + (277...278) + ), + DefNode(282...291)( + (286...287), + nil, + nil, + nil, + [], + (282...285), + nil, + nil, + nil, + nil, + (288...291) + ), + DefNode(293...310)( + (297...298), + nil, + ParametersNode(299...306)( + [RequiredParameterNode(299...300)(:b), + RequiredParameterNode(302...303)(:c), + RequiredParameterNode(305...306)(:d)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:b, :c, :d], + (293...296), + nil, + nil, + nil, + nil, + (307...310) + ), + DefNode(312...325)( + (320...321), + NilNode(316...319)(), + nil, + nil, + [], + (312...315), + (319...320), + nil, + nil, + nil, + (322...325) + ), + DefNode(327...345)( + (331...332), + nil, + ParametersNode(333...341)( + [], + [], + [], + nil, + [KeywordParameterNode(333...335)((333...335), nil), + KeywordParameterNode(337...341)( + (337...339), + IntegerNode(340...341)() + )], + nil, + nil + ), + nil, + [:b, :c], + (327...330), + nil, + nil, + nil, + nil, + (342...345) + ), + DefNode(347...366)( + (351...352), + nil, + ParametersNode(353...361)( + [], + [], + [], + nil, + [KeywordParameterNode(353...355)((353...355), nil), + KeywordParameterNode(357...361)( + (357...359), + IntegerNode(360...361)() + )], + nil, + nil + ), + nil, + [:b, :c], + (347...350), + nil, + (352...353), + (361...362), + nil, + (363...366) + ), + DefNode(368...389)( + (372...373), + nil, + ParametersNode(374...384)( + [], + [], + [], + nil, + [KeywordParameterNode(374...380)( + (374...376), + IntegerNode(379...380)() + ), + KeywordParameterNode(382...384)((382...384), nil)], + nil, + nil + ), + nil, + [:b, :c], + (368...371), + nil, + (373...374), + (384...385), + nil, + (386...389) + ), + StringNode(391...397)((391...393), (393...396), (396...397), "abc"), + DefNode(399...421)( + (403...404), + nil, + ParametersNode(405...417)( + [], + [OptionalParameterNode(405...410)( + :b, + (405...406), + (407...408), + IntegerNode(409...410)() + ), + OptionalParameterNode(412...417)( + :c, + (412...413), + (414...415), + IntegerNode(416...417)() + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:b, :c], + (399...402), + nil, + nil, + nil, + nil, + (418...421) + ), + DefNode(423...434)( + (427...428), + nil, + nil, + nil, + [], + (423...426), + nil, + (428...429), + (429...430), + nil, + (431...434) + ), + DefNode(436...454)( + (440...441), + nil, + ParametersNode(442...450)( + [RequiredParameterNode(442...443)(:b)], + [OptionalParameterNode(445...450)( + :c, + (445...446), + (447...448), + IntegerNode(449...450)() + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:b, :c], + (436...439), + nil, + nil, + nil, + nil, + (451...454) + ), + DefNode(456...467)( + (460...461), + nil, + ParametersNode(462...463)( + [RequiredParameterNode(462...463)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:b], + (456...459), + nil, + nil, + nil, + nil, + (464...467) + ), + DefNode(469...501)( + (473...474), + nil, + nil, + BeginNode(476...501)( + nil, + nil, + RescueNode(476...482)((476...482), [], nil, nil, nil, nil), + ElseNode(484...496)((484...488), nil, (490...496)), + EnsureNode(490...501)((490...496), nil, (498...501)), + (498...501) + ), + [], + (469...472), + nil, + nil, + nil, + nil, + (498...501) + ), + DefNode(503...515)( + (507...508), + nil, + ParametersNode(509...511)( + [], + [], + [], + RestParameterNode(509...511)((509...510), (510...511)), + [], + nil, + nil + ), + nil, + [:b], + (503...506), + nil, + nil, + nil, + nil, + (512...515) + ), + DefNode(517...529)( + (521...522), + nil, + ParametersNode(523...524)( + [], + [], + [], + RestParameterNode(523...524)((523...524), nil), + [], + nil, + nil + ), + nil, + [:*], + (517...520), + nil, + (522...523), + (524...525), + nil, + (526...529) + ), + DefNode(531...546)( + (535...536), + nil, + nil, + StatementsNode(537...542)( + [LocalVariableWriteNode(537...542)( + :b, + 0, + IntegerNode(541...542)(), + (537...538), + (539...540) + )] + ), + [:b], + (531...534), + nil, + nil, + nil, + nil, + (543...546) + ), + DefNode(548...562)( + (557...558), + SelfNode(552...556)(), + nil, + nil, + [], + (548...551), + (556...557), + nil, + nil, + nil, + (559...562) + ), + DefNode(564...578)( + (573...574), + TrueNode(568...572)(), + nil, + nil, + [], + (564...567), + (572...573), + nil, + nil, + nil, + (575...578) + ), + DefNode(580...589)( + (584...585), + nil, + nil, + nil, + [], + (580...583), + nil, + nil, + nil, + nil, + (586...589) + ), + DefNode(591...625)( + (595...597), + nil, + nil, + StatementsNode(598...621)( + [IfNode(598...616)( + (609...611), + TrueNode(612...616)(), + StatementsNode(598...608)( + [ReturnNode(598...608)( + (598...604), + ArgumentsNode(605...608)( + [SymbolNode(605...608)((605...606), (606...608), nil, "hi")] + ) + )] + ), + nil, + nil + ), + SymbolNode(617...621)((617...618), (618...621), nil, "bye")] + ), + [], + (591...594), + nil, + nil, + nil, + nil, + (622...625) + ), + DefNode(627...638)( + (631...634), + nil, + nil, + StatementsNode(637...638)([IntegerNode(637...638)()]), + [], + (627...630), + nil, + nil, + nil, + (635...636), + nil + ), + DefNode(639...650)( + (643...646), + nil, + nil, + StatementsNode(649...650)([IntegerNode(649...650)()]), + [], + (639...642), + nil, + nil, + nil, + (647...648), + nil + ), + DefNode(652...670)( + (656...659), + nil, + ParametersNode(660...663)( + [RequiredParameterNode(660...663)(:bar)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(667...670)([IntegerNode(667...670)()]), + [:bar], + (652...655), + nil, + (659...660), + (663...664), + (665...666), + nil + ), + DefNode(672...685)( + (676...679), + nil, + nil, + StatementsNode(682...685)([IntegerNode(682...685)()]), + [], + (672...675), + nil, + nil, + nil, + (680...681), + nil + ), + DefNode(687...706)( + (691...692), + nil, + ParametersNode(693...694)( + [], + [], + [], + RestParameterNode(693...694)((693...694), nil), + [], + nil, + nil + ), + StatementsNode(697...701)( + [CallNode(697...701)( + nil, + nil, + (697...698), + (698...699), + ArgumentsNode(699...700)([SplatNode(699...700)((699...700), nil)]), + (700...701), + nil, + 0, + "b" + )] + ), + [:*], + (687...690), + nil, + (692...693), + (694...695), + nil, + (703...706) + ), + DefNode(708...731)( + (712...713), + nil, + ParametersNode(714...717)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(714...717)(), + nil + ), + StatementsNode(720...726)( + [CallNode(720...726)( + nil, + nil, + (720...721), + (721...722), + ArgumentsNode(722...725)([ForwardingArgumentsNode(722...725)()]), + (725...726), + nil, + 0, + "b" + )] + ), + [:"..."], + (708...711), + nil, + (713...714), + (717...718), + nil, + (728...731) + ), + DefNode(733...762)( + (737...738), + nil, + ParametersNode(739...742)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(739...742)(), + nil + ), + StatementsNode(745...757)( + [CallNode(745...757)( + nil, + nil, + (745...746), + (746...747), + ArgumentsNode(747...756)( + [IntegerNode(747...748)(), + IntegerNode(750...751)(), + ForwardingArgumentsNode(753...756)()] + ), + (756...757), + nil, + 0, + "b" + )] + ), + [:"..."], + (733...736), + nil, + (738...739), + (742...743), + nil, + (759...762) + ), + DefNode(764...781)( + (776...777), + ParenthesesNode(768...775)( + LocalVariableWriteNode(769...774)( + :c, + 0, + CallNode(773...774)( + nil, + nil, + (773...774), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (769...770), + (771...772) + ), + (768...769), + (774...775) + ), + nil, + nil, + [], + (764...767), + (775...776), + nil, + nil, + nil, + (778...781) + ), + DefNode(783...795)( + (787...788), + nil, + ParametersNode(789...791)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(789...791)((790...791), (789...790)) + ), + nil, + [:b], + (783...786), + nil, + nil, + nil, + nil, + (792...795) + ), + DefNode(797...809)( + (801...802), + nil, + ParametersNode(803...804)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(803...804)(nil, (803...804)) + ), + nil, + [:&], + (797...800), + nil, + (802...803), + (804...805), + nil, + (806...809) + ), + DefNode(811...826)( + (821...822), + ClassVariableReadNode(815...820)(), + nil, + nil, + [], + (811...814), + (820...821), + nil, + nil, + nil, + (823...826) + ), + DefNode(828...845)( + (840...841), + ParenthesesNode(832...839)( + LocalVariableWriteNode(833...838)( + :a, + 0, + CallNode(837...838)( + nil, + nil, + (837...838), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (833...834), + (835...836) + ), + (832...833), + (838...839) + ), + nil, + nil, + [], + (828...831), + (839...840), + nil, + nil, + nil, + (842...845) + ), + DefNode(847...875)( + (856...870), + SelfNode(851...855)(), + nil, + nil, + [], + (847...850), + (855...856), + nil, + nil, + nil, + (872...875) + ), + ConstantPathWriteNode(877...886)( + ConstantReadNode(877...882)(), + (883...884), + IntegerNode(885...886)() + ), + DefNode(888...903)( + (898...899), + ConstantReadNode(892...897)(), + nil, + nil, + [], + (888...891), + (897...898), + nil, + nil, + nil, + (900...903) + ), + DefNode(905...936)( + (909...910), + nil, + ParametersNode(911...914)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(911...914)(), + nil + ), + StatementsNode(917...931)( + [InterpolatedStringNode(917...931)( + (917...918), + [StringNode(918...921)(nil, (918...921), nil, "foo"), + EmbeddedStatementsNode(921...930)( + (921...923), + StatementsNode(923...929)( + [CallNode(923...929)( + nil, + nil, + (923...924), + (924...925), + ArgumentsNode(925...928)( + [ForwardingArgumentsNode(925...928)()] + ), + (928...929), + nil, + 0, + "b" + )] + ), + (929...930) + )], + (930...931) + )] + ), + [:"..."], + (905...908), + nil, + (910...911), + (914...915), + nil, + (933...936) + ), + DefNode(938...980)( + (942...945), + nil, + nil, + StatementsNode(948...976)( + [CallNode(948...976)( + HashNode(948...950)((948...949), [], (949...950)), + (950...951), + (951...956), + nil, + ArgumentsNode(957...976)( + [KeywordHashNode(957...976)( + [AssocSplatNode(957...962)( + CallNode(959...962)( + nil, + nil, + (959...962), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (957...959) + ), + AssocSplatNode(964...969)( + CallNode(966...969)( + nil, + nil, + (966...969), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (964...966) + ), + AssocSplatNode(971...976)( + CallNode(973...976)( + nil, + nil, + (973...976), + nil, + nil, + nil, + nil, + 0, + "qux" + ), + (971...973) + )] + )] + ), + nil, + nil, + 0, + "merge" + )] + ), + [], + (938...941), + nil, + nil, + nil, + nil, + (977...980) + ), + DefNode(982...1006)( + (986...989), + nil, + ParametersNode(990...1001)( + [], + [], + [], + nil, + [KeywordParameterNode(990...1001)( + (990...992), + ParenthesesNode(993...1001)( + StatementsNode(994...1000)( + [RangeNode(994...1000)( + IntegerNode(994...995)(), + IntegerNode(998...1000)(), + (995...998), + 1 + )] + ), + (993...994), + (1000...1001) + ) + )], + nil, + nil + ), + nil, + [:a], + (982...985), + nil, + (989...990), + (1001...1002), + nil, + (1003...1006) + ), + DefNode(1008...1031)( + (1012...1015), + nil, + ParametersNode(1016...1026)( + [], + [], + [], + nil, + [KeywordParameterNode(1016...1026)( + (1016...1018), + ParenthesesNode(1019...1026)( + StatementsNode(1020...1025)( + [RangeNode(1020...1025)( + nil, + IntegerNode(1023...1025)(), + (1020...1023), + 1 + )] + ), + (1019...1020), + (1025...1026) + ) + )], + nil, + nil + ), + nil, + [:a], + (1008...1011), + nil, + (1015...1016), + (1026...1027), + nil, + (1028...1031) + ), + DefNode(1033...1055)( + (1037...1040), + nil, + ParametersNode(1041...1050)( + [], + [], + [], + nil, + [KeywordParameterNode(1041...1050)( + (1041...1043), + ParenthesesNode(1044...1050)( + StatementsNode(1045...1049)( + [RangeNode(1045...1049)( + IntegerNode(1045...1046)(), + nil, + (1046...1049), + 1 + )] + ), + (1044...1045), + (1049...1050) + ) + )], + nil, + nil + ), + nil, + [:a], + (1033...1036), + nil, + (1040...1041), + (1050...1051), + nil, + (1052...1055) + ), + DefNode(1057...1082)( + (1061...1064), + nil, + ParametersNode(1065...1077)( + [], + [OptionalParameterNode(1065...1077)( + :a, + (1065...1066), + (1067...1068), + ParenthesesNode(1069...1077)( + StatementsNode(1070...1076)( + [RangeNode(1070...1076)( + IntegerNode(1070...1071)(), + IntegerNode(1074...1076)(), + (1071...1074), + 1 + )] + ), + (1069...1070), + (1076...1077) + ) + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (1057...1060), + nil, + (1064...1065), + (1077...1078), + nil, + (1079...1082) + ), + DefNode(1084...1108)( + (1088...1091), + nil, + ParametersNode(1092...1103)( + [], + [OptionalParameterNode(1092...1103)( + :a, + (1092...1093), + (1094...1095), + ParenthesesNode(1096...1103)( + StatementsNode(1097...1102)( + [RangeNode(1097...1102)( + nil, + IntegerNode(1100...1102)(), + (1097...1100), + 1 + )] + ), + (1096...1097), + (1102...1103) + ) + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (1084...1087), + nil, + (1091...1092), + (1103...1104), + nil, + (1105...1108) + ), + DefNode(1110...1133)( + (1114...1117), + nil, + ParametersNode(1118...1128)( + [], + [OptionalParameterNode(1118...1128)( + :a, + (1118...1119), + (1120...1121), + ParenthesesNode(1122...1128)( + StatementsNode(1123...1127)( + [RangeNode(1123...1127)( + IntegerNode(1123...1124)(), + nil, + (1124...1127), + 1 + )] + ), + (1122...1123), + (1127...1128) + ) + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (1110...1113), + nil, + (1117...1118), + (1128...1129), + nil, + (1130...1133) + ), + DefNode(1135...1167)( + (1139...1145), + nil, + ParametersNode(1146...1147)( + [RequiredParameterNode(1146...1147)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(1151...1163)( + [CallNode(1151...1163)( + CallNode(1151...1155)( + nil, + nil, + (1151...1155), + nil, + nil, + nil, + nil, + 0, + "item" + ), + nil, + (1156...1158), + nil, + ArgumentsNode(1159...1163)( + [CallNode(1159...1163)( + nil, + nil, + (1159...1160), + nil, + nil, + nil, + BlockNode(1161...1163)( + [], + nil, + nil, + (1161...1162), + (1162...1163) + ), + 0, + "a" + )] + ), + nil, + nil, + 0, + ">>" + )] + ), + [:a], + (1135...1138), + nil, + (1145...1146), + (1147...1148), + nil, + (1164...1167) + ), + DefNode(1169...1194)( + (1173...1176), + nil, + ParametersNode(1177...1189)( + [RequiredParameterNode(1177...1179)(:_a), + RequiredParameterNode(1181...1183)(:_a), + RequiredParameterNode(1185...1186)(:b), + RequiredParameterNode(1188...1189)(:c)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:_a, :b, :c], + (1169...1172), + nil, + (1176...1177), + (1189...1190), + nil, + (1191...1194) + )] + ) +) diff --git a/test/yarp/snapshots/modules.txt b/test/yarp/snapshots/modules.txt new file mode 100644 index 0000000000..432d4c9916 --- /dev/null +++ b/test/yarp/snapshots/modules.txt @@ -0,0 +1,125 @@ +ProgramNode(0...140)( + [], + StatementsNode(0...140)( + [ModuleNode(0...18)( + [:a], + (0...6), + ConstantReadNode(7...8)(), + StatementsNode(9...14)( + [LocalVariableWriteNode(9...14)( + :a, + 0, + IntegerNode(13...14)(), + (9...10), + (11...12) + )] + ), + (15...18) + ), + InterpolatedStringNode(20...38)( + (20...23), + [StringNode(23...27)(nil, (23...27), nil, "aaa "), + EmbeddedStatementsNode(27...33)( + (27...29), + StatementsNode(29...32)( + [CallNode(29...32)( + nil, + nil, + (29...32), + nil, + nil, + nil, + nil, + 0, + "bbb" + )] + ), + (32...33) + ), + StringNode(33...37)(nil, (33...37), nil, " ccc")], + (37...38) + ), + ModuleNode(40...55)( + [], + (40...46), + ConstantPathNode(47...51)( + CallNode(47...48)(nil, nil, (47...48), nil, nil, nil, nil, 0, "m"), + ConstantReadNode(50...51)(), + (48...50) + ), + nil, + (52...55) + ), + ModuleNode(57...85)( + [:x], + (57...63), + ConstantReadNode(64...65)(), + BeginNode(67...85)( + nil, + StatementsNode(67...72)( + [LocalVariableWriteNode(67...72)( + :x, + 0, + IntegerNode(71...72)(), + (67...68), + (69...70) + )] + ), + RescueNode(74...80)((74...80), [], nil, nil, nil, nil), + nil, + nil, + (82...85) + ), + (82...85) + ), + ModuleNode(87...101)( + [], + (87...93), + ConstantPathNode(94...97)(nil, ConstantReadNode(96...97)(), (94...96)), + nil, + (98...101) + ), + ModuleNode(103...120)( + [], + (103...109), + ConstantPathNode(110...116)( + CallNode(110...113)( + ConstantReadNode(110...111)(), + nil, + (111...113), + (111...112), + nil, + (112...113), + nil, + 0, + "[]" + ), + ConstantReadNode(115...116)(), + (113...115) + ), + nil, + (117...120) + ), + ModuleNode(122...140)( + [], + (122...128), + ConstantPathNode(129...136)( + CallNode(129...133)( + ConstantReadNode(129...130)(), + nil, + (130...133), + (130...131), + ArgumentsNode(131...132)([IntegerNode(131...132)()]), + (132...133), + nil, + 0, + "[]" + ), + ConstantReadNode(135...136)(), + (133...135) + ), + nil, + (137...140) + )] + ) +) diff --git a/test/yarp/snapshots/next.txt b/test/yarp/snapshots/next.txt new file mode 100644 index 0000000000..533cf33bb8 --- /dev/null +++ b/test/yarp/snapshots/next.txt @@ -0,0 +1,88 @@ +ProgramNode(0...118)( + [], + StatementsNode(0...118)( + [NextNode(0...4)(nil, (0...4)), + NextNode(6...24)( + ArgumentsNode(11...24)( + [ParenthesesNode(11...14)( + StatementsNode(12...13)([IntegerNode(12...13)()]), + (11...12), + (13...14) + ), + ParenthesesNode(16...19)( + StatementsNode(17...18)([IntegerNode(17...18)()]), + (16...17), + (18...19) + ), + ParenthesesNode(21...24)( + StatementsNode(22...23)([IntegerNode(22...23)()]), + (21...22), + (23...24) + )] + ), + (6...10) + ), + NextNode(26...32)( + ArgumentsNode(31...32)([IntegerNode(31...32)()]), + (26...30) + ), + NextNode(34...46)( + ArgumentsNode(39...46)( + [IntegerNode(39...40)(), + IntegerNode(42...43)(), + IntegerNode(45...46)()] + ), + (34...38) + ), + NextNode(48...60)( + ArgumentsNode(53...60)( + [IntegerNode(53...54)(), + IntegerNode(56...57)(), + IntegerNode(59...60)()] + ), + (48...52) + ), + NextNode(62...76)( + ArgumentsNode(67...76)( + [ArrayNode(67...76)( + [IntegerNode(68...69)(), + IntegerNode(71...72)(), + IntegerNode(74...75)()], + (67...68), + (75...76) + )] + ), + (62...66) + ), + NextNode(78...93)( + ArgumentsNode(82...93)( + [ParenthesesNode(82...93)( + StatementsNode(86...91)( + [IntegerNode(86...87)(), IntegerNode(90...91)()] + ), + (82...83), + (92...93) + )] + ), + (78...82) + ), + NextNode(95...99)(nil, (95...99)), + IntegerNode(100...101)(), + NextNode(103...109)( + ArgumentsNode(107...109)( + [ParenthesesNode(107...109)(nil, (107...108), (108...109))] + ), + (103...107) + ), + NextNode(111...118)( + ArgumentsNode(115...118)( + [ParenthesesNode(115...118)( + StatementsNode(116...117)([IntegerNode(116...117)()]), + (115...116), + (117...118) + )] + ), + (111...115) + )] + ) +) diff --git a/test/yarp/snapshots/nils.txt b/test/yarp/snapshots/nils.txt new file mode 100644 index 0000000000..daf9168e7e --- /dev/null +++ b/test/yarp/snapshots/nils.txt @@ -0,0 +1,20 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [NilNode(0...3)(), + ParenthesesNode(5...7)(nil, (5...6), (6...7)), + ParenthesesNode(9...16)(nil, (9...10), (15...16)), + PostExecutionNode(18...27)( + StatementsNode(24...25)([IntegerNode(24...25)()]), + (18...21), + (22...23), + (26...27) + ), + PreExecutionNode(29...40)( + StatementsNode(37...38)([IntegerNode(37...38)()]), + (29...34), + (35...36), + (39...40) + )] + ) +) diff --git a/test/yarp/snapshots/non_alphanumeric_methods.txt b/test/yarp/snapshots/non_alphanumeric_methods.txt new file mode 100644 index 0000000000..ac2beadd0d --- /dev/null +++ b/test/yarp/snapshots/non_alphanumeric_methods.txt @@ -0,0 +1,477 @@ +ProgramNode(0...434)( + [], + StatementsNode(0...434)( + [DefNode(0...9)( + (4...5), + nil, + nil, + nil, + [], + (0...3), + nil, + nil, + nil, + nil, + (6...9) + ), + DefNode(11...21)( + (15...17), + nil, + nil, + nil, + [], + (11...14), + nil, + nil, + nil, + nil, + (18...21) + ), + DefNode(23...33)( + (27...29), + nil, + nil, + nil, + [], + (23...26), + nil, + nil, + nil, + nil, + (30...33) + ), + DefNode(35...44)( + (39...40), + nil, + nil, + nil, + [], + (35...38), + nil, + nil, + nil, + nil, + (41...44) + ), + DefNode(46...60)( + (55...56), + SelfNode(50...54)(), + nil, + nil, + [], + (46...49), + (54...55), + nil, + nil, + nil, + (57...60) + ), + DefNode(62...71)( + (66...67), + nil, + nil, + nil, + [], + (62...65), + nil, + nil, + nil, + nil, + (68...71) + ), + DefNode(73...82)( + (77...78), + nil, + nil, + nil, + [], + (73...76), + nil, + nil, + nil, + nil, + (79...82) + ), + DefNode(84...94)( + (88...90), + nil, + nil, + nil, + [], + (84...87), + nil, + nil, + nil, + nil, + (91...94) + ), + StringNode(96...102)((96...98), (98...101), (101...102), "abc"), + DefNode(104...117)( + (108...109), + nil, + ParametersNode(110...113)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(110...113)((110...112), (112...113)), + nil + ), + nil, + [:b], + (104...107), + nil, + nil, + nil, + nil, + (114...117) + ), + DefNode(119...130)( + (123...124), + nil, + nil, + nil, + [], + (119...122), + nil, + (124...125), + (125...126), + nil, + (127...130) + ), + DefNode(132...143)( + (136...137), + nil, + ParametersNode(138...139)( + [RequiredParameterNode(138...139)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:b], + (132...135), + nil, + nil, + nil, + nil, + (140...143) + ), + DefNode(145...159)( + (154...155), + SelfNode(149...153)(), + nil, + nil, + [], + (145...148), + (153...154), + nil, + nil, + nil, + (156...159) + ), + DefNode(161...170)( + (165...166), + nil, + nil, + nil, + [], + (161...164), + nil, + nil, + nil, + nil, + (167...170) + ), + DefNode(172...182)( + (176...178), + nil, + nil, + nil, + [], + (172...175), + nil, + nil, + nil, + nil, + (179...182) + ), + DefNode(184...193)( + (188...189), + nil, + nil, + nil, + [], + (184...187), + nil, + nil, + nil, + nil, + (190...193) + ), + DefNode(195...206)( + (201...202), + CallNode(199...200)(nil, nil, (199...200), nil, nil, nil, nil, 0, "a"), + nil, + nil, + [], + (195...198), + (200...201), + nil, + nil, + nil, + (203...206) + ), + DefNode(208...218)( + (212...214), + nil, + nil, + nil, + [], + (208...211), + nil, + nil, + nil, + nil, + (215...218) + ), + DefNode(220...229)( + (224...225), + nil, + nil, + nil, + [], + (220...223), + nil, + nil, + nil, + nil, + (226...229) + ), + DefNode(231...240)( + (235...236), + nil, + nil, + nil, + [], + (231...234), + nil, + nil, + nil, + nil, + (237...240) + ), + DefNode(242...252)( + (246...248), + nil, + nil, + nil, + [], + (242...245), + nil, + nil, + nil, + nil, + (249...252) + ), + DefNode(254...264)( + (258...260), + nil, + nil, + nil, + [], + (254...257), + nil, + nil, + nil, + nil, + (261...264) + ), + DefNode(266...277)( + (270...273), + nil, + nil, + nil, + [], + (266...269), + nil, + nil, + nil, + nil, + (274...277) + ), + DefNode(279...289)( + (283...285), + nil, + nil, + nil, + [], + (279...282), + nil, + nil, + nil, + nil, + (286...289) + ), + DefNode(291...302)( + (295...298), + nil, + nil, + nil, + [], + (291...294), + nil, + nil, + nil, + nil, + (299...302) + ), + DefNode(304...314)( + (308...310), + nil, + nil, + nil, + [], + (304...307), + nil, + nil, + nil, + nil, + (311...314) + ), + DefNode(316...325)( + (320...321), + nil, + nil, + nil, + [], + (316...319), + nil, + nil, + nil, + nil, + (322...325) + ), + DefNode(327...337)( + (331...333), + nil, + nil, + nil, + [], + (327...330), + nil, + nil, + nil, + nil, + (334...337) + ), + DefNode(339...349)( + (343...345), + nil, + nil, + nil, + [], + (339...342), + nil, + nil, + nil, + nil, + (346...349) + ), + DefNode(351...361)( + (355...357), + nil, + nil, + nil, + [], + (351...354), + nil, + nil, + nil, + nil, + (358...361) + ), + DefNode(363...374)( + (367...370), + nil, + nil, + nil, + [], + (363...366), + nil, + nil, + nil, + nil, + (371...374) + ), + DefNode(376...385)( + (380...381), + nil, + nil, + nil, + [], + (376...379), + nil, + nil, + nil, + nil, + (382...385) + ), + DefNode(387...396)( + (391...392), + nil, + nil, + nil, + [], + (387...390), + nil, + nil, + nil, + nil, + (393...396) + ), + DefNode(398...412)( + (407...408), + SelfNode(402...406)(), + nil, + nil, + [], + (398...401), + (406...407), + nil, + nil, + nil, + (409...412) + ), + DefNode(414...423)( + (418...419), + nil, + nil, + nil, + [], + (414...417), + nil, + nil, + nil, + nil, + (420...423) + ), + DefNode(425...434)( + (429...430), + nil, + nil, + nil, + [], + (425...428), + nil, + nil, + nil, + nil, + (431...434) + )] + ) +) diff --git a/test/yarp/snapshots/not.txt b/test/yarp/snapshots/not.txt new file mode 100644 index 0000000000..80ad5dac2e --- /dev/null +++ b/test/yarp/snapshots/not.txt @@ -0,0 +1,151 @@ +ProgramNode(0...125)( + [], + StatementsNode(0...125)( + [AndNode(0...19)( + CallNode(0...7)( + CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "foo"), + nil, + (0...3), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(12...19)( + CallNode(16...19)(nil, nil, (16...19), nil, nil, nil, nil, 0, "bar"), + nil, + (12...15), + nil, + nil, + nil, + nil, + 0, + "!" + ), + (8...11) + ), + CallNode(21...37)( + AndNode(25...36)( + CallNode(25...28)(nil, nil, (25...28), nil, nil, nil, nil, 0, "foo"), + CallNode(33...36)(nil, nil, (33...36), nil, nil, nil, nil, 0, "bar"), + (29...32) + ), + nil, + (21...24), + (24...25), + nil, + (36...37), + nil, + 0, + "!" + ), + CallNode(39...46)( + CallNode(43...46)(nil, nil, (43...46), nil, nil, nil, nil, 0, "foo"), + nil, + (39...42), + nil, + nil, + nil, + nil, + 0, + "!" + ), + AndNode(48...69)( + CallNode(48...55)( + CallNode(52...55)(nil, nil, (52...55), nil, nil, nil, nil, 0, "foo"), + nil, + (48...51), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(60...69)( + CallNode(66...69)(nil, nil, (66...69), nil, nil, nil, nil, 0, "bar"), + nil, + (60...63), + nil, + nil, + nil, + nil, + 0, + "!" + ), + (56...59) + ), + AndNode(72...97)( + CallNode(72...79)( + CallNode(76...79)(nil, nil, (76...79), nil, nil, nil, nil, 0, "foo"), + nil, + (72...75), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(88...97)( + CallNode(94...97)(nil, nil, (94...97), nil, nil, nil, nil, 0, "bar"), + nil, + (88...91), + nil, + nil, + nil, + nil, + 0, + "!" + ), + (80...83) + ), + AndNode(100...125)( + CallNode(100...107)( + CallNode(104...107)( + nil, + nil, + (104...107), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (100...103), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(114...125)( + CallNode(122...125)( + nil, + nil, + (122...125), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + (114...117), + nil, + nil, + nil, + nil, + 0, + "!" + ), + (108...111) + )] + ) +) diff --git a/test/yarp/snapshots/numbers.txt b/test/yarp/snapshots/numbers.txt new file mode 100644 index 0000000000..04cb532e88 --- /dev/null +++ b/test/yarp/snapshots/numbers.txt @@ -0,0 +1,75 @@ +ProgramNode(0...161)( + [], + StatementsNode(0...161)( + [IntegerNode(0...1)(), + IntegerNode(3...4)(), + FloatNode(6...9)(), + IntegerNode(11...12)(), + IntegerNode(14...17)(), + IntegerNode(19...22)(), + IntegerNode(24...28)(), + IntegerNode(30...33)(), + IntegerNode(35...38)(), + IntegerNode(40...43)(), + IntegerNode(45...47)(), + IntegerNode(49...51)(), + IntegerNode(53...55)(), + IntegerNode(57...60)(), + IntegerNode(62...65)(), + IntegerNode(67...70)(), + IntegerNode(72...75)(), + IntegerNode(77...80)(), + IntegerNode(82...85)(), + ImaginaryNode(87...89)(IntegerNode(87...88)()), + RationalNode(91...93)(IntegerNode(91...92)()), + CallNode(95...97)( + IntegerNode(96...97)(), + nil, + (95...96), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + ImaginaryNode(99...102)(RationalNode(99...101)(IntegerNode(99...100)())), + ImaginaryNode(104...109)(RationalNode(104...108)(FloatNode(104...107)())), + CallNode(111...115)( + ImaginaryNode(112...115)( + RationalNode(112...114)(IntegerNode(112...113)()) + ), + nil, + (111...112), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + CallNode(117...123)( + ImaginaryNode(118...123)( + RationalNode(118...122)(FloatNode(118...121)()) + ), + nil, + (117...118), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + RationalNode(125...129)(IntegerNode(125...128)()), + ImaginaryNode(131...135)(IntegerNode(131...134)()), + ImaginaryNode(137...142)( + RationalNode(137...141)(IntegerNode(137...140)()) + ), + RationalNode(144...148)(IntegerNode(144...147)()), + ImaginaryNode(150...154)(IntegerNode(150...153)()), + ImaginaryNode(156...161)( + RationalNode(156...160)(IntegerNode(156...159)()) + )] + ) +) diff --git a/test/yarp/snapshots/patterns.txt b/test/yarp/snapshots/patterns.txt new file mode 100644 index 0000000000..48cc45edc8 --- /dev/null +++ b/test/yarp/snapshots/patterns.txt @@ -0,0 +1,4088 @@ +ProgramNode(0...3725)( + [:bar, :baz, :qux, :b, :a], + StatementsNode(0...3725)( + [MatchRequiredNode(0...10)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + LocalVariableWriteNode(7...10)(:bar, 0, nil, (7...10), nil), + (4...6) + ), + MatchRequiredNode(11...19)( + CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "foo"), + IntegerNode(18...19)(), + (15...17) + ), + MatchRequiredNode(20...30)( + CallNode(20...23)(nil, nil, (20...23), nil, nil, nil, nil, 0, "foo"), + FloatNode(27...30)(), + (24...26) + ), + MatchRequiredNode(31...40)( + CallNode(31...34)(nil, nil, (31...34), nil, nil, nil, nil, 0, "foo"), + ImaginaryNode(38...40)(IntegerNode(38...39)()), + (35...37) + ), + MatchRequiredNode(41...50)( + CallNode(41...44)(nil, nil, (41...44), nil, nil, nil, nil, 0, "foo"), + RationalNode(48...50)(IntegerNode(48...49)()), + (45...47) + ), + MatchRequiredNode(51...62)( + CallNode(51...54)(nil, nil, (51...54), nil, nil, nil, nil, 0, "foo"), + SymbolNode(58...62)((58...59), (59...62), nil, "foo"), + (55...57) + ), + MatchRequiredNode(63...77)( + CallNode(63...66)(nil, nil, (63...66), nil, nil, nil, nil, 0, "foo"), + SymbolNode(70...77)((70...73), (73...76), (76...77), "foo"), + (67...69) + ), + MatchRequiredNode(78...91)( + CallNode(78...81)(nil, nil, (78...81), nil, nil, nil, nil, 0, "foo"), + InterpolatedSymbolNode(85...91)( + (85...87), + [StringNode(87...90)(nil, (87...90), nil, "foo")], + (90...91) + ), + (82...84) + ), + MatchRequiredNode(92...104)( + CallNode(92...95)(nil, nil, (92...95), nil, nil, nil, nil, 0, "foo"), + RegularExpressionNode(99...104)( + (99...100), + (100...103), + (103...104), + "foo", + 0 + ), + (96...98) + ), + MatchRequiredNode(105...117)( + CallNode(105...108)( + nil, + nil, + (105...108), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + XStringNode(112...117)((112...113), (113...116), (116...117), "foo"), + (109...111) + ), + MatchRequiredNode(118...132)( + CallNode(118...121)( + nil, + nil, + (118...121), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + XStringNode(125...132)((125...128), (128...131), (131...132), "foo"), + (122...124) + ), + MatchRequiredNode(133...147)( + CallNode(133...136)( + nil, + nil, + (133...136), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayNode(140...147)( + [SymbolNode(143...146)(nil, (143...146), nil, "foo")], + (140...143), + (146...147) + ), + (137...139) + ), + MatchRequiredNode(148...162)( + CallNode(148...151)( + nil, + nil, + (148...151), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayNode(155...162)( + [SymbolNode(158...161)(nil, (158...161), nil, "foo")], + (155...158), + (161...162) + ), + (152...154) + ), + MatchRequiredNode(163...177)( + CallNode(163...166)( + nil, + nil, + (163...166), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayNode(170...177)( + [StringNode(173...176)(nil, (173...176), nil, "foo")], + (170...173), + (176...177) + ), + (167...169) + ), + MatchRequiredNode(178...192)( + CallNode(178...181)( + nil, + nil, + (178...181), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayNode(185...192)( + [StringNode(188...191)(nil, (188...191), nil, "foo")], + (185...188), + (191...192) + ), + (182...184) + ), + MatchRequiredNode(193...207)( + CallNode(193...196)( + nil, + nil, + (193...196), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StringNode(200...207)((200...203), (203...206), (206...207), "foo"), + (197...199) + ), + MatchRequiredNode(208...222)( + CallNode(208...211)( + nil, + nil, + (208...211), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StringNode(215...222)((215...218), (218...221), (221...222), "foo"), + (212...214) + ), + MatchRequiredNode(223...235)( + CallNode(223...226)( + nil, + nil, + (223...226), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StringNode(230...235)((230...231), (231...234), (234...235), "foo"), + (227...229) + ), + MatchRequiredNode(236...246)( + CallNode(236...239)( + nil, + nil, + (236...239), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + NilNode(243...246)(), + (240...242) + ), + MatchRequiredNode(247...258)( + CallNode(247...250)( + nil, + nil, + (247...250), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SelfNode(254...258)(), + (251...253) + ), + MatchRequiredNode(259...270)( + CallNode(259...262)( + nil, + nil, + (259...262), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + TrueNode(266...270)(), + (263...265) + ), + MatchRequiredNode(271...283)( + CallNode(271...274)( + nil, + nil, + (271...274), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + FalseNode(278...283)(), + (275...277) + ), + MatchRequiredNode(284...299)( + CallNode(284...287)( + nil, + nil, + (284...287), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SourceFileNode(291...299)("/fixtures/patterns.txt"), + (288...290) + ), + MatchRequiredNode(300...315)( + CallNode(300...303)( + nil, + nil, + (300...303), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SourceLineNode(307...315)(), + (304...306) + ), + MatchRequiredNode(316...335)( + CallNode(316...319)( + nil, + nil, + (316...319), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SourceEncodingNode(323...335)(), + (320...322) + ), + MatchRequiredNode(336...353)( + CallNode(336...339)( + nil, + nil, + (336...339), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + LambdaNode(343...353)( + [], + (343...345), + nil, + StatementsNode(348...351)([LocalVariableReadNode(348...351)(:bar, 1)]) + ), + (340...342) + ), + MatchRequiredNode(355...368)( + CallNode(355...358)( + nil, + nil, + (355...358), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(362...368)( + IntegerNode(362...363)(), + IntegerNode(367...368)(), + (364...366), + 0 + ), + (359...361) + ), + MatchRequiredNode(369...386)( + CallNode(369...372)( + nil, + nil, + (369...372), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(376...386)( + FloatNode(376...379)(), + FloatNode(383...386)(), + (380...382), + 0 + ), + (373...375) + ), + MatchRequiredNode(387...402)( + CallNode(387...390)( + nil, + nil, + (387...390), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(394...402)( + ImaginaryNode(394...396)(IntegerNode(394...395)()), + ImaginaryNode(400...402)(IntegerNode(400...401)()), + (397...399), + 0 + ), + (391...393) + ), + MatchRequiredNode(403...418)( + CallNode(403...406)( + nil, + nil, + (403...406), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(410...418)( + RationalNode(410...412)(IntegerNode(410...411)()), + RationalNode(416...418)(IntegerNode(416...417)()), + (413...415), + 0 + ), + (407...409) + ), + MatchRequiredNode(419...438)( + CallNode(419...422)( + nil, + nil, + (419...422), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(426...438)( + SymbolNode(426...430)((426...427), (427...430), nil, "foo"), + SymbolNode(434...438)((434...435), (435...438), nil, "foo"), + (431...433), + 0 + ), + (423...425) + ), + MatchRequiredNode(439...464)( + CallNode(439...442)( + nil, + nil, + (439...442), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(446...464)( + SymbolNode(446...453)((446...449), (449...452), (452...453), "foo"), + SymbolNode(457...464)((457...460), (460...463), (463...464), "foo"), + (454...456), + 0 + ), + (443...445) + ), + MatchRequiredNode(465...488)( + CallNode(465...468)( + nil, + nil, + (465...468), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(472...488)( + InterpolatedSymbolNode(472...478)( + (472...474), + [StringNode(474...477)(nil, (474...477), nil, "foo")], + (477...478) + ), + InterpolatedSymbolNode(482...488)( + (482...484), + [StringNode(484...487)(nil, (484...487), nil, "foo")], + (487...488) + ), + (479...481), + 0 + ), + (469...471) + ), + MatchRequiredNode(489...510)( + CallNode(489...492)( + nil, + nil, + (489...492), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(496...510)( + RegularExpressionNode(496...501)( + (496...497), + (497...500), + (500...501), + "foo", + 0 + ), + RegularExpressionNode(505...510)( + (505...506), + (506...509), + (509...510), + "foo", + 0 + ), + (502...504), + 0 + ), + (493...495) + ), + MatchRequiredNode(511...532)( + CallNode(511...514)( + nil, + nil, + (511...514), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(518...532)( + XStringNode(518...523)((518...519), (519...522), (522...523), "foo"), + XStringNode(527...532)((527...528), (528...531), (531...532), "foo"), + (524...526), + 0 + ), + (515...517) + ), + MatchRequiredNode(533...558)( + CallNode(533...536)( + nil, + nil, + (533...536), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(540...558)( + XStringNode(540...547)((540...543), (543...546), (546...547), "foo"), + XStringNode(551...558)((551...554), (554...557), (557...558), "foo"), + (548...550), + 0 + ), + (537...539) + ), + MatchRequiredNode(559...584)( + CallNode(559...562)( + nil, + nil, + (559...562), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(566...584)( + ArrayNode(566...573)( + [SymbolNode(569...572)(nil, (569...572), nil, "foo")], + (566...569), + (572...573) + ), + ArrayNode(577...584)( + [SymbolNode(580...583)(nil, (580...583), nil, "foo")], + (577...580), + (583...584) + ), + (574...576), + 0 + ), + (563...565) + ), + MatchRequiredNode(585...610)( + CallNode(585...588)( + nil, + nil, + (585...588), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(592...610)( + ArrayNode(592...599)( + [SymbolNode(595...598)(nil, (595...598), nil, "foo")], + (592...595), + (598...599) + ), + ArrayNode(603...610)( + [SymbolNode(606...609)(nil, (606...609), nil, "foo")], + (603...606), + (609...610) + ), + (600...602), + 0 + ), + (589...591) + ), + MatchRequiredNode(611...636)( + CallNode(611...614)( + nil, + nil, + (611...614), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(618...636)( + ArrayNode(618...625)( + [StringNode(621...624)(nil, (621...624), nil, "foo")], + (618...621), + (624...625) + ), + ArrayNode(629...636)( + [StringNode(632...635)(nil, (632...635), nil, "foo")], + (629...632), + (635...636) + ), + (626...628), + 0 + ), + (615...617) + ), + MatchRequiredNode(637...662)( + CallNode(637...640)( + nil, + nil, + (637...640), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(644...662)( + ArrayNode(644...651)( + [StringNode(647...650)(nil, (647...650), nil, "foo")], + (644...647), + (650...651) + ), + ArrayNode(655...662)( + [StringNode(658...661)(nil, (658...661), nil, "foo")], + (655...658), + (661...662) + ), + (652...654), + 0 + ), + (641...643) + ), + MatchRequiredNode(663...688)( + CallNode(663...666)( + nil, + nil, + (663...666), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(670...688)( + StringNode(670...677)((670...673), (673...676), (676...677), "foo"), + StringNode(681...688)((681...684), (684...687), (687...688), "foo"), + (678...680), + 0 + ), + (667...669) + ), + MatchRequiredNode(689...714)( + CallNode(689...692)( + nil, + nil, + (689...692), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(696...714)( + StringNode(696...703)((696...699), (699...702), (702...703), "foo"), + StringNode(707...714)((707...710), (710...713), (713...714), "foo"), + (704...706), + 0 + ), + (693...695) + ), + MatchRequiredNode(715...736)( + CallNode(715...718)( + nil, + nil, + (715...718), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(722...736)( + StringNode(722...727)((722...723), (723...726), (726...727), "foo"), + StringNode(731...736)((731...732), (732...735), (735...736), "foo"), + (728...730), + 0 + ), + (719...721) + ), + MatchRequiredNode(737...754)( + CallNode(737...740)( + nil, + nil, + (737...740), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(744...754)( + NilNode(744...747)(), + NilNode(751...754)(), + (748...750), + 0 + ), + (741...743) + ), + MatchRequiredNode(755...774)( + CallNode(755...758)( + nil, + nil, + (755...758), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(762...774)( + SelfNode(762...766)(), + SelfNode(770...774)(), + (767...769), + 0 + ), + (759...761) + ), + MatchRequiredNode(775...794)( + CallNode(775...778)( + nil, + nil, + (775...778), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(782...794)( + TrueNode(782...786)(), + TrueNode(790...794)(), + (787...789), + 0 + ), + (779...781) + ), + MatchRequiredNode(795...816)( + CallNode(795...798)( + nil, + nil, + (795...798), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(802...816)( + FalseNode(802...807)(), + FalseNode(811...816)(), + (808...810), + 0 + ), + (799...801) + ), + MatchRequiredNode(817...844)( + CallNode(817...820)( + nil, + nil, + (817...820), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(824...844)( + SourceFileNode(824...832)("/fixtures/patterns.txt"), + SourceFileNode(836...844)("/fixtures/patterns.txt"), + (833...835), + 0 + ), + (821...823) + ), + MatchRequiredNode(845...872)( + CallNode(845...848)( + nil, + nil, + (845...848), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(852...872)( + SourceLineNode(852...860)(), + SourceLineNode(864...872)(), + (861...863), + 0 + ), + (849...851) + ), + MatchRequiredNode(873...908)( + CallNode(873...876)( + nil, + nil, + (873...876), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(880...908)( + SourceEncodingNode(880...892)(), + SourceEncodingNode(896...908)(), + (893...895), + 0 + ), + (877...879) + ), + MatchRequiredNode(909...940)( + CallNode(909...912)( + nil, + nil, + (909...912), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RangeNode(916...940)( + LambdaNode(916...926)( + [], + (916...918), + nil, + StatementsNode(921...924)( + [LocalVariableReadNode(921...924)(:bar, 1)] + ) + ), + LambdaNode(930...940)( + [], + (930...932), + nil, + StatementsNode(935...938)( + [LocalVariableReadNode(935...938)(:bar, 1)] + ) + ), + (927...929), + 0 + ), + (913...915) + ), + MatchRequiredNode(942...953)( + CallNode(942...945)( + nil, + nil, + (942...945), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + PinnedVariableNode(949...953)( + LocalVariableReadNode(950...953)(:bar, 0), + (949...950) + ), + (946...948) + ), + MatchRequiredNode(954...966)( + CallNode(954...957)( + nil, + nil, + (954...957), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + PinnedVariableNode(961...966)( + InstanceVariableReadNode(962...966)(), + (961...962) + ), + (958...960) + ), + MatchRequiredNode(967...980)( + CallNode(967...970)( + nil, + nil, + (967...970), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + PinnedVariableNode(974...980)( + ClassVariableReadNode(975...980)(), + (974...975) + ), + (971...973) + ), + MatchRequiredNode(981...993)( + CallNode(981...984)( + nil, + nil, + (981...984), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + PinnedVariableNode(988...993)( + GlobalVariableReadNode(989...993)(), + (988...989) + ), + (985...987) + ), + MatchRequiredNode(995...1006)( + CallNode(995...998)( + nil, + nil, + (995...998), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + PinnedExpressionNode(1002...1006)( + IntegerNode(1004...1005)(), + (1002...1003), + (1003...1004), + (1005...1006) + ), + (999...1001) + ), + MatchRequiredNode(1007...1020)( + CallNode(1007...1010)( + nil, + nil, + (1007...1010), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + PinnedExpressionNode(1014...1020)( + NilNode(1016...1019)(), + (1014...1015), + (1015...1016), + (1019...1020) + ), + (1011...1013) + ), + MatchRequiredNode(1021...1044)( + CallNode(1021...1024)( + nil, + nil, + (1021...1024), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + PinnedExpressionNode(1028...1044)( + CallNode(1030...1043)( + StringNode(1030...1035)( + (1030...1031), + (1031...1034), + (1034...1035), + "bar" + ), + nil, + (1036...1037), + nil, + ArgumentsNode(1038...1043)( + [StringNode(1038...1043)( + (1038...1039), + (1039...1042), + (1042...1043), + "baz" + )] + ), + nil, + nil, + 0, + "+" + ), + (1028...1029), + (1029...1030), + (1043...1044) + ), + (1025...1027) + ), + MatchRequiredNode(1046...1056)( + CallNode(1046...1049)( + nil, + nil, + (1046...1049), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ConstantReadNode(1053...1056)(), + (1050...1052) + ), + MatchRequiredNode(1057...1077)( + CallNode(1057...1060)( + nil, + nil, + (1057...1060), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ConstantPathNode(1064...1077)( + ConstantPathNode(1064...1072)( + ConstantReadNode(1064...1067)(), + ConstantReadNode(1069...1072)(), + (1067...1069) + ), + ConstantReadNode(1074...1077)(), + (1072...1074) + ), + (1061...1063) + ), + MatchRequiredNode(1078...1090)( + CallNode(1078...1081)( + nil, + nil, + (1078...1081), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ConstantPathNode(1085...1090)( + nil, + ConstantReadNode(1087...1090)(), + (1085...1087) + ), + (1082...1084) + ), + MatchRequiredNode(1091...1113)( + CallNode(1091...1094)( + nil, + nil, + (1091...1094), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ConstantPathNode(1098...1113)( + ConstantPathNode(1098...1108)( + ConstantPathNode(1098...1103)( + nil, + ConstantReadNode(1100...1103)(), + (1098...1100) + ), + ConstantReadNode(1105...1108)(), + (1103...1105) + ), + ConstantReadNode(1110...1113)(), + (1108...1110) + ), + (1095...1097) + ), + MatchRequiredNode(1115...1127)( + CallNode(1115...1118)( + nil, + nil, + (1115...1118), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1122...1127)( + ConstantReadNode(1122...1125)(), + [], + nil, + [], + (1125...1126), + (1126...1127) + ), + (1119...1121) + ), + MatchRequiredNode(1128...1141)( + CallNode(1128...1131)( + nil, + nil, + (1128...1131), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1135...1141)( + ConstantReadNode(1135...1138)(), + [IntegerNode(1139...1140)()], + nil, + [], + (1138...1139), + (1140...1141) + ), + (1132...1134) + ), + MatchRequiredNode(1142...1161)( + CallNode(1142...1145)( + nil, + nil, + (1142...1145), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1149...1161)( + ConstantReadNode(1149...1152)(), + [IntegerNode(1153...1154)(), + IntegerNode(1156...1157)(), + IntegerNode(1159...1160)()], + nil, + [], + (1152...1153), + (1160...1161) + ), + (1146...1148) + ), + MatchRequiredNode(1162...1177)( + CallNode(1162...1165)( + nil, + nil, + (1162...1165), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1169...1177)( + ConstantReadNode(1169...1172)(), + [LocalVariableWriteNode(1173...1176)( + :bar, + 0, + nil, + (1173...1176), + nil + )], + nil, + [], + (1172...1173), + (1176...1177) + ), + (1166...1168) + ), + MatchRequiredNode(1178...1199)( + CallNode(1178...1181)( + nil, + nil, + (1178...1181), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1185...1199)( + ConstantReadNode(1185...1188)(), + [], + SplatNode(1189...1193)( + (1189...1190), + LocalVariableWriteNode(1190...1193)( + :bar, + 0, + nil, + (1190...1193), + nil + ) + ), + [LocalVariableWriteNode(1195...1198)( + :baz, + 0, + nil, + (1195...1198), + nil + )], + (1188...1189), + (1198...1199) + ), + (1182...1184) + ), + MatchRequiredNode(1200...1221)( + CallNode(1200...1203)( + nil, + nil, + (1200...1203), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1207...1221)( + ConstantReadNode(1207...1210)(), + [LocalVariableWriteNode(1211...1214)( + :bar, + 0, + nil, + (1211...1214), + nil + )], + SplatNode(1216...1220)( + (1216...1217), + LocalVariableWriteNode(1217...1220)( + :baz, + 0, + nil, + (1217...1220), + nil + ) + ), + [], + (1210...1211), + (1220...1221) + ), + (1204...1206) + ), + MatchRequiredNode(1222...1249)( + CallNode(1222...1225)( + nil, + nil, + (1222...1225), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + FindPatternNode(1229...1249)( + ConstantReadNode(1229...1232)(), + SplatNode(1233...1237)( + (1233...1234), + LocalVariableWriteNode(1234...1237)( + :bar, + 0, + nil, + (1234...1237), + nil + ) + ), + [LocalVariableWriteNode(1239...1242)( + :baz, + 0, + nil, + (1239...1242), + nil + )], + SplatNode(1244...1248)( + (1244...1245), + LocalVariableWriteNode(1245...1248)( + :qux, + 0, + nil, + (1245...1248), + nil + ) + ), + (1232...1233), + (1248...1249) + ), + (1226...1228) + ), + MatchRequiredNode(1251...1263)( + CallNode(1251...1254)( + nil, + nil, + (1251...1254), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1258...1263)( + ConstantReadNode(1258...1261)(), + [], + nil, + [], + (1261...1262), + (1262...1263) + ), + (1255...1257) + ), + MatchRequiredNode(1264...1277)( + CallNode(1264...1267)( + nil, + nil, + (1264...1267), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1271...1277)( + ConstantReadNode(1271...1274)(), + [IntegerNode(1275...1276)()], + nil, + [], + (1274...1275), + (1276...1277) + ), + (1268...1270) + ), + MatchRequiredNode(1278...1297)( + CallNode(1278...1281)( + nil, + nil, + (1278...1281), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1285...1297)( + ConstantReadNode(1285...1288)(), + [IntegerNode(1289...1290)(), + IntegerNode(1292...1293)(), + IntegerNode(1295...1296)()], + nil, + [], + (1288...1289), + (1296...1297) + ), + (1282...1284) + ), + MatchRequiredNode(1298...1313)( + CallNode(1298...1301)( + nil, + nil, + (1298...1301), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1305...1313)( + ConstantReadNode(1305...1308)(), + [LocalVariableWriteNode(1309...1312)( + :bar, + 0, + nil, + (1309...1312), + nil + )], + nil, + [], + (1308...1309), + (1312...1313) + ), + (1302...1304) + ), + MatchRequiredNode(1314...1335)( + CallNode(1314...1317)( + nil, + nil, + (1314...1317), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1321...1335)( + ConstantReadNode(1321...1324)(), + [], + SplatNode(1325...1329)( + (1325...1326), + LocalVariableWriteNode(1326...1329)( + :bar, + 0, + nil, + (1326...1329), + nil + ) + ), + [LocalVariableWriteNode(1331...1334)( + :baz, + 0, + nil, + (1331...1334), + nil + )], + (1324...1325), + (1334...1335) + ), + (1318...1320) + ), + MatchRequiredNode(1336...1357)( + CallNode(1336...1339)( + nil, + nil, + (1336...1339), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1343...1357)( + ConstantReadNode(1343...1346)(), + [LocalVariableWriteNode(1347...1350)( + :bar, + 0, + nil, + (1347...1350), + nil + )], + SplatNode(1352...1356)( + (1352...1353), + LocalVariableWriteNode(1353...1356)( + :baz, + 0, + nil, + (1353...1356), + nil + ) + ), + [], + (1346...1347), + (1356...1357) + ), + (1340...1342) + ), + MatchRequiredNode(1358...1385)( + CallNode(1358...1361)( + nil, + nil, + (1358...1361), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + FindPatternNode(1365...1385)( + ConstantReadNode(1365...1368)(), + SplatNode(1369...1373)( + (1369...1370), + LocalVariableWriteNode(1370...1373)( + :bar, + 0, + nil, + (1370...1373), + nil + ) + ), + [LocalVariableWriteNode(1375...1378)( + :baz, + 0, + nil, + (1375...1378), + nil + )], + SplatNode(1380...1384)( + (1380...1381), + LocalVariableWriteNode(1381...1384)( + :qux, + 0, + nil, + (1381...1384), + nil + ) + ), + (1368...1369), + (1384...1385) + ), + (1362...1364) + ), + MatchRequiredNode(1387...1398)( + CallNode(1387...1390)( + nil, + nil, + (1387...1390), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1394...1398)( + nil, + [], + SplatNode(1394...1398)( + (1394...1395), + LocalVariableWriteNode(1395...1398)( + :bar, + 0, + nil, + (1395...1398), + nil + ) + ), + [], + nil, + nil + ), + (1391...1393) + ), + MatchRequiredNode(1399...1420)( + CallNode(1399...1402)( + nil, + nil, + (1399...1402), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1406...1420)( + nil, + [], + SplatNode(1406...1410)( + (1406...1407), + LocalVariableWriteNode(1407...1410)( + :bar, + 0, + nil, + (1407...1410), + nil + ) + ), + [LocalVariableWriteNode(1412...1415)( + :baz, + 0, + nil, + (1412...1415), + nil + ), + LocalVariableWriteNode(1417...1420)( + :qux, + 0, + nil, + (1417...1420), + nil + )], + nil, + nil + ), + (1403...1405) + ), + MatchRequiredNode(1421...1442)( + CallNode(1421...1424)( + nil, + nil, + (1421...1424), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1428...1442)( + nil, + [LocalVariableWriteNode(1428...1431)( + :bar, + 0, + nil, + (1428...1431), + nil + )], + SplatNode(1433...1437)( + (1433...1434), + LocalVariableWriteNode(1434...1437)( + :baz, + 0, + nil, + (1434...1437), + nil + ) + ), + [LocalVariableWriteNode(1439...1442)( + :qux, + 0, + nil, + (1439...1442), + nil + )], + nil, + nil + ), + (1425...1427) + ), + MatchRequiredNode(1443...1464)( + CallNode(1443...1446)( + nil, + nil, + (1443...1446), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1450...1464)( + nil, + [LocalVariableWriteNode(1450...1453)( + :bar, + 0, + nil, + (1450...1453), + nil + ), + LocalVariableWriteNode(1455...1458)( + :baz, + 0, + nil, + (1455...1458), + nil + )], + SplatNode(1460...1464)( + (1460...1461), + LocalVariableWriteNode(1461...1464)( + :qux, + 0, + nil, + (1461...1464), + nil + ) + ), + [], + nil, + nil + ), + (1447...1449) + ), + MatchRequiredNode(1465...1487)( + CallNode(1465...1468)( + nil, + nil, + (1465...1468), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + FindPatternNode(1472...1487)( + nil, + SplatNode(1472...1476)( + (1472...1473), + LocalVariableWriteNode(1473...1476)( + :bar, + 0, + nil, + (1473...1476), + nil + ) + ), + [LocalVariableWriteNode(1478...1481)( + :baz, + 0, + nil, + (1478...1481), + nil + )], + SplatNode(1483...1487)( + (1483...1484), + LocalVariableWriteNode(1484...1487)( + :qux, + 0, + nil, + (1484...1487), + nil + ) + ), + nil, + nil + ), + (1469...1471) + ), + MatchRequiredNode(1489...1498)( + CallNode(1489...1492)( + nil, + nil, + (1489...1492), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1496...1498)( + nil, + [], + nil, + [], + (1496...1497), + (1497...1498) + ), + (1493...1495) + ), + MatchRequiredNode(1499...1516)( + CallNode(1499...1502)( + nil, + nil, + (1499...1502), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1506...1516)( + nil, + [ArrayPatternNode(1507...1515)( + nil, + [ArrayPatternNode(1508...1514)( + nil, + [ArrayPatternNode(1509...1513)( + nil, + [ArrayPatternNode(1510...1512)( + nil, + [], + nil, + [], + (1510...1511), + (1511...1512) + )], + nil, + [], + (1509...1510), + (1512...1513) + )], + nil, + [], + (1508...1509), + (1513...1514) + )], + nil, + [], + (1507...1508), + (1514...1515) + )], + nil, + [], + (1506...1507), + (1515...1516) + ), + (1503...1505) + ), + MatchRequiredNode(1518...1531)( + CallNode(1518...1521)( + nil, + nil, + (1518...1521), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1525...1531)( + nil, + [], + SplatNode(1526...1530)( + (1526...1527), + LocalVariableWriteNode(1527...1530)( + :bar, + 0, + nil, + (1527...1530), + nil + ) + ), + [], + (1525...1526), + (1530...1531) + ), + (1522...1524) + ), + MatchRequiredNode(1532...1555)( + CallNode(1532...1535)( + nil, + nil, + (1532...1535), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1539...1555)( + nil, + [], + SplatNode(1540...1544)( + (1540...1541), + LocalVariableWriteNode(1541...1544)( + :bar, + 0, + nil, + (1541...1544), + nil + ) + ), + [LocalVariableWriteNode(1546...1549)( + :baz, + 0, + nil, + (1546...1549), + nil + ), + LocalVariableWriteNode(1551...1554)( + :qux, + 0, + nil, + (1551...1554), + nil + )], + (1539...1540), + (1554...1555) + ), + (1536...1538) + ), + MatchRequiredNode(1556...1579)( + CallNode(1556...1559)( + nil, + nil, + (1556...1559), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1563...1579)( + nil, + [LocalVariableWriteNode(1564...1567)( + :bar, + 0, + nil, + (1564...1567), + nil + )], + SplatNode(1569...1573)( + (1569...1570), + LocalVariableWriteNode(1570...1573)( + :baz, + 0, + nil, + (1570...1573), + nil + ) + ), + [LocalVariableWriteNode(1575...1578)( + :qux, + 0, + nil, + (1575...1578), + nil + )], + (1563...1564), + (1578...1579) + ), + (1560...1562) + ), + MatchRequiredNode(1580...1603)( + CallNode(1580...1583)( + nil, + nil, + (1580...1583), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayPatternNode(1587...1603)( + nil, + [LocalVariableWriteNode(1588...1591)( + :bar, + 0, + nil, + (1588...1591), + nil + ), + LocalVariableWriteNode(1593...1596)( + :baz, + 0, + nil, + (1593...1596), + nil + )], + SplatNode(1598...1602)( + (1598...1599), + LocalVariableWriteNode(1599...1602)( + :qux, + 0, + nil, + (1599...1602), + nil + ) + ), + [], + (1587...1588), + (1602...1603) + ), + (1584...1586) + ), + MatchRequiredNode(1604...1628)( + CallNode(1604...1607)( + nil, + nil, + (1604...1607), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + FindPatternNode(1611...1628)( + nil, + SplatNode(1612...1616)( + (1612...1613), + LocalVariableWriteNode(1613...1616)( + :bar, + 0, + nil, + (1613...1616), + nil + ) + ), + [LocalVariableWriteNode(1618...1621)( + :baz, + 0, + nil, + (1618...1621), + nil + )], + SplatNode(1623...1627)( + (1623...1624), + LocalVariableWriteNode(1624...1627)( + :qux, + 0, + nil, + (1624...1627), + nil + ) + ), + (1611...1612), + (1627...1628) + ), + (1608...1610) + ), + MatchPredicateNode(1630...1640)( + CallNode(1630...1633)( + nil, + nil, + (1630...1633), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + LocalVariableWriteNode(1637...1640)(:bar, 0, nil, (1637...1640), nil), + (1634...1636) + ), + MatchPredicateNode(1641...1649)( + CallNode(1641...1644)( + nil, + nil, + (1641...1644), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + IntegerNode(1648...1649)(), + (1645...1647) + ), + MatchPredicateNode(1650...1660)( + CallNode(1650...1653)( + nil, + nil, + (1650...1653), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + FloatNode(1657...1660)(), + (1654...1656) + ), + MatchPredicateNode(1661...1670)( + CallNode(1661...1664)( + nil, + nil, + (1661...1664), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ImaginaryNode(1668...1670)(IntegerNode(1668...1669)()), + (1665...1667) + ), + MatchPredicateNode(1671...1680)( + CallNode(1671...1674)( + nil, + nil, + (1671...1674), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RationalNode(1678...1680)(IntegerNode(1678...1679)()), + (1675...1677) + ), + MatchPredicateNode(1681...1692)( + CallNode(1681...1684)( + nil, + nil, + (1681...1684), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SymbolNode(1688...1692)((1688...1689), (1689...1692), nil, "foo"), + (1685...1687) + ), + MatchPredicateNode(1693...1707)( + CallNode(1693...1696)( + nil, + nil, + (1693...1696), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SymbolNode(1700...1707)( + (1700...1703), + (1703...1706), + (1706...1707), + "foo" + ), + (1697...1699) + ), + MatchPredicateNode(1708...1721)( + CallNode(1708...1711)( + nil, + nil, + (1708...1711), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + InterpolatedSymbolNode(1715...1721)( + (1715...1717), + [StringNode(1717...1720)(nil, (1717...1720), nil, "foo")], + (1720...1721) + ), + (1712...1714) + ), + MatchPredicateNode(1722...1734)( + CallNode(1722...1725)( + nil, + nil, + (1722...1725), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + RegularExpressionNode(1729...1734)( + (1729...1730), + (1730...1733), + (1733...1734), + "foo", + 0 + ), + (1726...1728) + ), + MatchPredicateNode(1735...1747)( + CallNode(1735...1738)( + nil, + nil, + (1735...1738), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + XStringNode(1742...1747)( + (1742...1743), + (1743...1746), + (1746...1747), + "foo" + ), + (1739...1741) + ), + MatchPredicateNode(1748...1762)( + CallNode(1748...1751)( + nil, + nil, + (1748...1751), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + XStringNode(1755...1762)( + (1755...1758), + (1758...1761), + (1761...1762), + "foo" + ), + (1752...1754) + ), + MatchPredicateNode(1763...1777)( + CallNode(1763...1766)( + nil, + nil, + (1763...1766), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayNode(1770...1777)( + [SymbolNode(1773...1776)(nil, (1773...1776), nil, "foo")], + (1770...1773), + (1776...1777) + ), + (1767...1769) + ), + MatchPredicateNode(1778...1792)( + CallNode(1778...1781)( + nil, + nil, + (1778...1781), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayNode(1785...1792)( + [SymbolNode(1788...1791)(nil, (1788...1791), nil, "foo")], + (1785...1788), + (1791...1792) + ), + (1782...1784) + ), + MatchPredicateNode(1793...1807)( + CallNode(1793...1796)( + nil, + nil, + (1793...1796), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayNode(1800...1807)( + [StringNode(1803...1806)(nil, (1803...1806), nil, "foo")], + (1800...1803), + (1806...1807) + ), + (1797...1799) + ), + MatchPredicateNode(1808...1822)( + CallNode(1808...1811)( + nil, + nil, + (1808...1811), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + ArrayNode(1815...1822)( + [StringNode(1818...1821)(nil, (1818...1821), nil, "foo")], + (1815...1818), + (1821...1822) + ), + (1812...1814) + ), + MatchPredicateNode(1823...1837)( + CallNode(1823...1826)( + nil, + nil, + (1823...1826), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StringNode(1830...1837)( + (1830...1833), + (1833...1836), + (1836...1837), + "foo" + ), + (1827...1829) + ), + MatchPredicateNode(1838...1852)( + CallNode(1838...1841)( + nil, + nil, + (1838...1841), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StringNode(1845...1852)( + (1845...1848), + (1848...1851), + (1851...1852), + "foo" + ), + (1842...1844) + ), + MatchPredicateNode(1853...1865)( + CallNode(1853...1856)( + nil, + nil, + (1853...1856), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StringNode(1860...1865)( + (1860...1861), + (1861...1864), + (1864...1865), + "foo" + ), + (1857...1859) + ), + MatchPredicateNode(1866...1876)( + CallNode(1866...1869)( + nil, + nil, + (1866...1869), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + NilNode(1873...1876)(), + (1870...1872) + ), + MatchPredicateNode(1877...1888)( + CallNode(1877...1880)( + nil, + nil, + (1877...1880), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SelfNode(1884...1888)(), + (1881...1883) + ), + MatchPredicateNode(1889...1900)( + CallNode(1889...1892)( + nil, + nil, + (1889...1892), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + TrueNode(1896...1900)(), + (1893...1895) + ), + MatchPredicateNode(1901...1913)( + CallNode(1901...1904)( + nil, + nil, + (1901...1904), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + FalseNode(1908...1913)(), + (1905...1907) + ), + MatchPredicateNode(1914...1929)( + CallNode(1914...1917)( + nil, + nil, + (1914...1917), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SourceFileNode(1921...1929)("/fixtures/patterns.txt"), + (1918...1920) + ), + MatchPredicateNode(1930...1945)( + CallNode(1930...1933)( + nil, + nil, + (1930...1933), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SourceLineNode(1937...1945)(), + (1934...1936) + ), + MatchPredicateNode(1946...1965)( + CallNode(1946...1949)( + nil, + nil, + (1946...1949), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SourceEncodingNode(1953...1965)(), + (1950...1952) + ), + MatchPredicateNode(1966...1983)( + CallNode(1966...1969)( + nil, + nil, + (1966...1969), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + LambdaNode(1973...1983)( + [], + (1973...1975), + nil, + StatementsNode(1978...1981)( + [LocalVariableReadNode(1978...1981)(:bar, 1)] + ) + ), + (1970...1972) + ), + CaseNode(1985...2010)( + CallNode(1990...1993)( + nil, + nil, + (1990...1993), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(1995...2006)( + LocalVariableWriteNode(1998...2001)( + :bar, + 0, + nil, + (1998...2001), + nil + ), + nil, + (1995...1997), + (2002...2006) + )], + nil, + (1985...1989), + (2007...2010) + ), + CaseNode(2011...2034)( + CallNode(2016...2019)( + nil, + nil, + (2016...2019), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2021...2030)( + IntegerNode(2024...2025)(), + nil, + (2021...2023), + (2026...2030) + )], + nil, + (2011...2015), + (2031...2034) + ), + CaseNode(2035...2060)( + CallNode(2040...2043)( + nil, + nil, + (2040...2043), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2045...2056)( + FloatNode(2048...2051)(), + nil, + (2045...2047), + (2052...2056) + )], + nil, + (2035...2039), + (2057...2060) + ), + CaseNode(2061...2085)( + CallNode(2066...2069)( + nil, + nil, + (2066...2069), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2071...2081)( + ImaginaryNode(2074...2076)(IntegerNode(2074...2075)()), + nil, + (2071...2073), + (2077...2081) + )], + nil, + (2061...2065), + (2082...2085) + ), + CaseNode(2086...2110)( + CallNode(2091...2094)( + nil, + nil, + (2091...2094), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2096...2106)( + RationalNode(2099...2101)(IntegerNode(2099...2100)()), + nil, + (2096...2098), + (2102...2106) + )], + nil, + (2086...2090), + (2107...2110) + ), + CaseNode(2111...2137)( + CallNode(2116...2119)( + nil, + nil, + (2116...2119), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2121...2133)( + SymbolNode(2124...2128)((2124...2125), (2125...2128), nil, "foo"), + nil, + (2121...2123), + (2129...2133) + )], + nil, + (2111...2115), + (2134...2137) + ), + CaseNode(2138...2167)( + CallNode(2143...2146)( + nil, + nil, + (2143...2146), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2148...2163)( + SymbolNode(2151...2158)( + (2151...2154), + (2154...2157), + (2157...2158), + "foo" + ), + nil, + (2148...2150), + (2159...2163) + )], + nil, + (2138...2142), + (2164...2167) + ), + CaseNode(2168...2196)( + CallNode(2173...2176)( + nil, + nil, + (2173...2176), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2178...2192)( + InterpolatedSymbolNode(2181...2187)( + (2181...2183), + [StringNode(2183...2186)(nil, (2183...2186), nil, "foo")], + (2186...2187) + ), + nil, + (2178...2180), + (2188...2192) + )], + nil, + (2168...2172), + (2193...2196) + ), + CaseNode(2197...2224)( + CallNode(2202...2205)( + nil, + nil, + (2202...2205), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2207...2220)( + RegularExpressionNode(2210...2215)( + (2210...2211), + (2211...2214), + (2214...2215), + "foo", + 0 + ), + nil, + (2207...2209), + (2216...2220) + )], + nil, + (2197...2201), + (2221...2224) + ), + CaseNode(2225...2252)( + CallNode(2230...2233)( + nil, + nil, + (2230...2233), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2235...2248)( + XStringNode(2238...2243)( + (2238...2239), + (2239...2242), + (2242...2243), + "foo" + ), + nil, + (2235...2237), + (2244...2248) + )], + nil, + (2225...2229), + (2249...2252) + ), + CaseNode(2253...2282)( + CallNode(2258...2261)( + nil, + nil, + (2258...2261), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2263...2278)( + XStringNode(2266...2273)( + (2266...2269), + (2269...2272), + (2272...2273), + "foo" + ), + nil, + (2263...2265), + (2274...2278) + )], + nil, + (2253...2257), + (2279...2282) + ), + CaseNode(2283...2312)( + CallNode(2288...2291)( + nil, + nil, + (2288...2291), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2293...2308)( + ArrayNode(2296...2303)( + [SymbolNode(2299...2302)(nil, (2299...2302), nil, "foo")], + (2296...2299), + (2302...2303) + ), + nil, + (2293...2295), + (2304...2308) + )], + nil, + (2283...2287), + (2309...2312) + ), + CaseNode(2313...2342)( + CallNode(2318...2321)( + nil, + nil, + (2318...2321), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2323...2338)( + ArrayNode(2326...2333)( + [SymbolNode(2329...2332)(nil, (2329...2332), nil, "foo")], + (2326...2329), + (2332...2333) + ), + nil, + (2323...2325), + (2334...2338) + )], + nil, + (2313...2317), + (2339...2342) + ), + CaseNode(2343...2372)( + CallNode(2348...2351)( + nil, + nil, + (2348...2351), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2353...2368)( + ArrayNode(2356...2363)( + [StringNode(2359...2362)(nil, (2359...2362), nil, "foo")], + (2356...2359), + (2362...2363) + ), + nil, + (2353...2355), + (2364...2368) + )], + nil, + (2343...2347), + (2369...2372) + ), + CaseNode(2373...2402)( + CallNode(2378...2381)( + nil, + nil, + (2378...2381), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2383...2398)( + ArrayNode(2386...2393)( + [StringNode(2389...2392)(nil, (2389...2392), nil, "foo")], + (2386...2389), + (2392...2393) + ), + nil, + (2383...2385), + (2394...2398) + )], + nil, + (2373...2377), + (2399...2402) + ), + CaseNode(2403...2432)( + CallNode(2408...2411)( + nil, + nil, + (2408...2411), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2413...2428)( + StringNode(2416...2423)( + (2416...2419), + (2419...2422), + (2422...2423), + "foo" + ), + nil, + (2413...2415), + (2424...2428) + )], + nil, + (2403...2407), + (2429...2432) + ), + CaseNode(2433...2462)( + CallNode(2438...2441)( + nil, + nil, + (2438...2441), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2443...2458)( + StringNode(2446...2453)( + (2446...2449), + (2449...2452), + (2452...2453), + "foo" + ), + nil, + (2443...2445), + (2454...2458) + )], + nil, + (2433...2437), + (2459...2462) + ), + CaseNode(2463...2490)( + CallNode(2468...2471)( + nil, + nil, + (2468...2471), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2473...2486)( + StringNode(2476...2481)( + (2476...2477), + (2477...2480), + (2480...2481), + "foo" + ), + nil, + (2473...2475), + (2482...2486) + )], + nil, + (2463...2467), + (2487...2490) + ), + CaseNode(2491...2516)( + CallNode(2496...2499)( + nil, + nil, + (2496...2499), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2501...2512)( + NilNode(2504...2507)(), + nil, + (2501...2503), + (2508...2512) + )], + nil, + (2491...2495), + (2513...2516) + ), + CaseNode(2517...2543)( + CallNode(2522...2525)( + nil, + nil, + (2522...2525), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2527...2539)( + SelfNode(2530...2534)(), + nil, + (2527...2529), + (2535...2539) + )], + nil, + (2517...2521), + (2540...2543) + ), + CaseNode(2544...2570)( + CallNode(2549...2552)( + nil, + nil, + (2549...2552), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2554...2566)( + TrueNode(2557...2561)(), + nil, + (2554...2556), + (2562...2566) + )], + nil, + (2544...2548), + (2567...2570) + ), + CaseNode(2571...2598)( + CallNode(2576...2579)( + nil, + nil, + (2576...2579), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2581...2594)( + FalseNode(2584...2589)(), + nil, + (2581...2583), + (2590...2594) + )], + nil, + (2571...2575), + (2595...2598) + ), + CaseNode(2599...2629)( + CallNode(2604...2607)( + nil, + nil, + (2604...2607), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2609...2625)( + SourceFileNode(2612...2620)("/fixtures/patterns.txt"), + nil, + (2609...2611), + (2621...2625) + )], + nil, + (2599...2603), + (2626...2629) + ), + CaseNode(2630...2660)( + CallNode(2635...2638)( + nil, + nil, + (2635...2638), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2640...2656)( + SourceLineNode(2643...2651)(), + nil, + (2640...2642), + (2652...2656) + )], + nil, + (2630...2634), + (2657...2660) + ), + CaseNode(2661...2695)( + CallNode(2666...2669)( + nil, + nil, + (2666...2669), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2671...2691)( + SourceEncodingNode(2674...2686)(), + nil, + (2671...2673), + (2687...2691) + )], + nil, + (2661...2665), + (2692...2695) + ), + CaseNode(2696...2728)( + CallNode(2701...2704)( + nil, + nil, + (2701...2704), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2706...2724)( + LambdaNode(2709...2719)( + [], + (2709...2711), + nil, + StatementsNode(2714...2717)( + [LocalVariableReadNode(2714...2717)(:bar, 1)] + ) + ), + nil, + (2706...2708), + (2720...2724) + )], + nil, + (2696...2700), + (2725...2728) + ), + CaseNode(2730...2762)( + CallNode(2735...2738)( + nil, + nil, + (2735...2738), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2740...2758)( + IfNode(2743...2753)( + (2747...2749), + LocalVariableReadNode(2750...2753)(:baz, 0), + StatementsNode(2743...2746)( + [LocalVariableWriteNode(2743...2746)( + :bar, + 0, + nil, + (2743...2746), + nil + )] + ), + nil, + nil + ), + nil, + (2740...2742), + (2754...2758) + )], + nil, + (2730...2734), + (2759...2762) + ), + CaseNode(2763...2793)( + CallNode(2768...2771)( + nil, + nil, + (2768...2771), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2773...2789)( + IfNode(2776...2784)( + (2778...2780), + LocalVariableReadNode(2781...2784)(:baz, 0), + StatementsNode(2776...2777)([IntegerNode(2776...2777)()]), + nil, + nil + ), + nil, + (2773...2775), + (2785...2789) + )], + nil, + (2763...2767), + (2790...2793) + ), + CaseNode(2794...2826)( + CallNode(2799...2802)( + nil, + nil, + (2799...2802), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2804...2822)( + IfNode(2807...2817)( + (2811...2813), + LocalVariableReadNode(2814...2817)(:baz, 0), + StatementsNode(2807...2810)([FloatNode(2807...2810)()]), + nil, + nil + ), + nil, + (2804...2806), + (2818...2822) + )], + nil, + (2794...2798), + (2823...2826) + ), + CaseNode(2827...2858)( + CallNode(2832...2835)( + nil, + nil, + (2832...2835), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2837...2854)( + IfNode(2840...2849)( + (2843...2845), + LocalVariableReadNode(2846...2849)(:baz, 0), + StatementsNode(2840...2842)( + [ImaginaryNode(2840...2842)(IntegerNode(2840...2841)())] + ), + nil, + nil + ), + nil, + (2837...2839), + (2850...2854) + )], + nil, + (2827...2831), + (2855...2858) + ), + CaseNode(2859...2890)( + CallNode(2864...2867)( + nil, + nil, + (2864...2867), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2869...2886)( + IfNode(2872...2881)( + (2875...2877), + LocalVariableReadNode(2878...2881)(:baz, 0), + StatementsNode(2872...2874)( + [RationalNode(2872...2874)(IntegerNode(2872...2873)())] + ), + nil, + nil + ), + nil, + (2869...2871), + (2882...2886) + )], + nil, + (2859...2863), + (2887...2890) + ), + CaseNode(2891...2924)( + CallNode(2896...2899)( + nil, + nil, + (2896...2899), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2901...2920)( + IfNode(2904...2915)( + (2909...2911), + LocalVariableReadNode(2912...2915)(:baz, 0), + StatementsNode(2904...2908)( + [SymbolNode(2904...2908)( + (2904...2905), + (2905...2908), + nil, + "foo" + )] + ), + nil, + nil + ), + nil, + (2901...2903), + (2916...2920) + )], + nil, + (2891...2895), + (2921...2924) + ), + CaseNode(2925...2961)( + CallNode(2930...2933)( + nil, + nil, + (2930...2933), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2935...2957)( + IfNode(2938...2952)( + (2946...2948), + LocalVariableReadNode(2949...2952)(:baz, 0), + StatementsNode(2938...2945)( + [SymbolNode(2938...2945)( + (2938...2941), + (2941...2944), + (2944...2945), + "foo" + )] + ), + nil, + nil + ), + nil, + (2935...2937), + (2953...2957) + )], + nil, + (2925...2929), + (2958...2961) + ), + CaseNode(2962...2997)( + CallNode(2967...2970)( + nil, + nil, + (2967...2970), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(2972...2993)( + IfNode(2975...2988)( + (2982...2984), + LocalVariableReadNode(2985...2988)(:baz, 0), + StatementsNode(2975...2981)( + [InterpolatedSymbolNode(2975...2981)( + (2975...2977), + [StringNode(2977...2980)(nil, (2977...2980), nil, "foo")], + (2980...2981) + )] + ), + nil, + nil + ), + nil, + (2972...2974), + (2989...2993) + )], + nil, + (2962...2966), + (2994...2997) + ), + CaseNode(2998...3032)( + CallNode(3003...3006)( + nil, + nil, + (3003...3006), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3008...3028)( + IfNode(3011...3023)( + (3017...3019), + LocalVariableReadNode(3020...3023)(:baz, 0), + StatementsNode(3011...3016)( + [RegularExpressionNode(3011...3016)( + (3011...3012), + (3012...3015), + (3015...3016), + "foo", + 0 + )] + ), + nil, + nil + ), + nil, + (3008...3010), + (3024...3028) + )], + nil, + (2998...3002), + (3029...3032) + ), + CaseNode(3033...3067)( + CallNode(3038...3041)( + nil, + nil, + (3038...3041), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3043...3063)( + IfNode(3046...3058)( + (3052...3054), + LocalVariableReadNode(3055...3058)(:baz, 0), + StatementsNode(3046...3051)( + [XStringNode(3046...3051)( + (3046...3047), + (3047...3050), + (3050...3051), + "foo" + )] + ), + nil, + nil + ), + nil, + (3043...3045), + (3059...3063) + )], + nil, + (3033...3037), + (3064...3067) + ), + CaseNode(3068...3104)( + CallNode(3073...3076)( + nil, + nil, + (3073...3076), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3078...3100)( + IfNode(3081...3095)( + (3089...3091), + LocalVariableReadNode(3092...3095)(:baz, 0), + StatementsNode(3081...3088)( + [XStringNode(3081...3088)( + (3081...3084), + (3084...3087), + (3087...3088), + "foo" + )] + ), + nil, + nil + ), + nil, + (3078...3080), + (3096...3100) + )], + nil, + (3068...3072), + (3101...3104) + ), + CaseNode(3105...3141)( + CallNode(3110...3113)( + nil, + nil, + (3110...3113), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3115...3137)( + IfNode(3118...3132)( + (3126...3128), + LocalVariableReadNode(3129...3132)(:baz, 0), + StatementsNode(3118...3125)( + [ArrayNode(3118...3125)( + [SymbolNode(3121...3124)(nil, (3121...3124), nil, "foo")], + (3118...3121), + (3124...3125) + )] + ), + nil, + nil + ), + nil, + (3115...3117), + (3133...3137) + )], + nil, + (3105...3109), + (3138...3141) + ), + CaseNode(3142...3178)( + CallNode(3147...3150)( + nil, + nil, + (3147...3150), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3152...3174)( + IfNode(3155...3169)( + (3163...3165), + LocalVariableReadNode(3166...3169)(:baz, 0), + StatementsNode(3155...3162)( + [ArrayNode(3155...3162)( + [SymbolNode(3158...3161)(nil, (3158...3161), nil, "foo")], + (3155...3158), + (3161...3162) + )] + ), + nil, + nil + ), + nil, + (3152...3154), + (3170...3174) + )], + nil, + (3142...3146), + (3175...3178) + ), + CaseNode(3179...3215)( + CallNode(3184...3187)( + nil, + nil, + (3184...3187), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3189...3211)( + IfNode(3192...3206)( + (3200...3202), + LocalVariableReadNode(3203...3206)(:baz, 0), + StatementsNode(3192...3199)( + [ArrayNode(3192...3199)( + [StringNode(3195...3198)(nil, (3195...3198), nil, "foo")], + (3192...3195), + (3198...3199) + )] + ), + nil, + nil + ), + nil, + (3189...3191), + (3207...3211) + )], + nil, + (3179...3183), + (3212...3215) + ), + CaseNode(3216...3252)( + CallNode(3221...3224)( + nil, + nil, + (3221...3224), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3226...3248)( + IfNode(3229...3243)( + (3237...3239), + LocalVariableReadNode(3240...3243)(:baz, 0), + StatementsNode(3229...3236)( + [ArrayNode(3229...3236)( + [StringNode(3232...3235)(nil, (3232...3235), nil, "foo")], + (3229...3232), + (3235...3236) + )] + ), + nil, + nil + ), + nil, + (3226...3228), + (3244...3248) + )], + nil, + (3216...3220), + (3249...3252) + ), + CaseNode(3253...3289)( + CallNode(3258...3261)( + nil, + nil, + (3258...3261), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3263...3285)( + IfNode(3266...3280)( + (3274...3276), + LocalVariableReadNode(3277...3280)(:baz, 0), + StatementsNode(3266...3273)( + [StringNode(3266...3273)( + (3266...3269), + (3269...3272), + (3272...3273), + "foo" + )] + ), + nil, + nil + ), + nil, + (3263...3265), + (3281...3285) + )], + nil, + (3253...3257), + (3286...3289) + ), + CaseNode(3290...3326)( + CallNode(3295...3298)( + nil, + nil, + (3295...3298), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3300...3322)( + IfNode(3303...3317)( + (3311...3313), + LocalVariableReadNode(3314...3317)(:baz, 0), + StatementsNode(3303...3310)( + [StringNode(3303...3310)( + (3303...3306), + (3306...3309), + (3309...3310), + "foo" + )] + ), + nil, + nil + ), + nil, + (3300...3302), + (3318...3322) + )], + nil, + (3290...3294), + (3323...3326) + ), + CaseNode(3327...3361)( + CallNode(3332...3335)( + nil, + nil, + (3332...3335), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3337...3357)( + IfNode(3340...3352)( + (3346...3348), + LocalVariableReadNode(3349...3352)(:baz, 0), + StatementsNode(3340...3345)( + [StringNode(3340...3345)( + (3340...3341), + (3341...3344), + (3344...3345), + "foo" + )] + ), + nil, + nil + ), + nil, + (3337...3339), + (3353...3357) + )], + nil, + (3327...3331), + (3358...3361) + ), + CaseNode(3362...3394)( + CallNode(3367...3370)( + nil, + nil, + (3367...3370), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3372...3390)( + IfNode(3375...3385)( + (3379...3381), + LocalVariableReadNode(3382...3385)(:baz, 0), + StatementsNode(3375...3378)([NilNode(3375...3378)()]), + nil, + nil + ), + nil, + (3372...3374), + (3386...3390) + )], + nil, + (3362...3366), + (3391...3394) + ), + CaseNode(3395...3428)( + CallNode(3400...3403)( + nil, + nil, + (3400...3403), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3405...3424)( + IfNode(3408...3419)( + (3413...3415), + LocalVariableReadNode(3416...3419)(:baz, 0), + StatementsNode(3408...3412)([SelfNode(3408...3412)()]), + nil, + nil + ), + nil, + (3405...3407), + (3420...3424) + )], + nil, + (3395...3399), + (3425...3428) + ), + CaseNode(3429...3462)( + CallNode(3434...3437)( + nil, + nil, + (3434...3437), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3439...3458)( + IfNode(3442...3453)( + (3447...3449), + LocalVariableReadNode(3450...3453)(:baz, 0), + StatementsNode(3442...3446)([TrueNode(3442...3446)()]), + nil, + nil + ), + nil, + (3439...3441), + (3454...3458) + )], + nil, + (3429...3433), + (3459...3462) + ), + CaseNode(3463...3497)( + CallNode(3468...3471)( + nil, + nil, + (3468...3471), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3473...3493)( + IfNode(3476...3488)( + (3482...3484), + LocalVariableReadNode(3485...3488)(:baz, 0), + StatementsNode(3476...3481)([FalseNode(3476...3481)()]), + nil, + nil + ), + nil, + (3473...3475), + (3489...3493) + )], + nil, + (3463...3467), + (3494...3497) + ), + CaseNode(3498...3535)( + CallNode(3503...3506)( + nil, + nil, + (3503...3506), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3508...3531)( + IfNode(3511...3526)( + (3520...3522), + LocalVariableReadNode(3523...3526)(:baz, 0), + StatementsNode(3511...3519)( + [SourceFileNode(3511...3519)("/fixtures/patterns.txt")] + ), + nil, + nil + ), + nil, + (3508...3510), + (3527...3531) + )], + nil, + (3498...3502), + (3532...3535) + ), + CaseNode(3536...3573)( + CallNode(3541...3544)( + nil, + nil, + (3541...3544), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3546...3569)( + IfNode(3549...3564)( + (3558...3560), + LocalVariableReadNode(3561...3564)(:baz, 0), + StatementsNode(3549...3557)([SourceLineNode(3549...3557)()]), + nil, + nil + ), + nil, + (3546...3548), + (3565...3569) + )], + nil, + (3536...3540), + (3570...3573) + ), + CaseNode(3574...3615)( + CallNode(3579...3582)( + nil, + nil, + (3579...3582), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3584...3611)( + IfNode(3587...3606)( + (3600...3602), + LocalVariableReadNode(3603...3606)(:baz, 0), + StatementsNode(3587...3599)([SourceEncodingNode(3587...3599)()]), + nil, + nil + ), + nil, + (3584...3586), + (3607...3611) + )], + nil, + (3574...3578), + (3612...3615) + ), + CaseNode(3616...3655)( + CallNode(3621...3624)( + nil, + nil, + (3621...3624), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(3626...3651)( + IfNode(3629...3646)( + (3640...3642), + LocalVariableReadNode(3643...3646)(:baz, 0), + StatementsNode(3629...3639)( + [LambdaNode(3629...3639)( + [], + (3629...3631), + nil, + StatementsNode(3634...3637)( + [LocalVariableReadNode(3634...3637)(:bar, 1)] + ) + )] + ), + nil, + nil + ), + nil, + (3626...3628), + (3647...3651) + )], + nil, + (3616...3620), + (3652...3655) + ), + IfNode(3657...3671)( + (3657...3659), + MatchPredicateNode(3660...3667)( + CallNode(3660...3661)( + nil, + nil, + (3660...3661), + nil, + nil, + nil, + nil, + 0, + "a" + ), + ArrayPatternNode(3665...3667)( + nil, + [], + nil, + [], + (3665...3666), + (3666...3667) + ), + (3662...3664) + ), + nil, + nil, + (3668...3671) + ), + MatchRequiredNode(3673...3685)( + CallNode(3673...3674)( + nil, + nil, + (3673...3674), + nil, + nil, + nil, + nil, + 0, + "a" + ), + ArrayPatternNode(3678...3685)( + nil, + [LocalVariableWriteNode(3682...3683)(:b, 0, nil, (3682...3683), nil)], + nil, + [], + (3678...3679), + (3684...3685) + ), + (3675...3677) + ), + MatchPredicateNode(3687...3725)( + CallNode(3687...3690)( + nil, + nil, + (3687...3690), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + HashPatternNode(3694...3725)( + ConstantReadNode(3694...3695)(), + [AssocNode(3699...3723)( + SymbolNode(3699...3703)(nil, (3699...3702), (3702...3703), "bar"), + HashPatternNode(3704...3723)( + ConstantReadNode(3704...3705)(), + [AssocNode(3711...3719)( + SymbolNode(3711...3717)( + nil, + (3711...3716), + (3716...3717), + "value" + ), + LocalVariableWriteNode(3718...3719)( + :a, + 0, + nil, + (3718...3719), + nil + ), + nil + )], + nil, + (3705...3706), + (3722...3723) + ), + nil + )], + nil, + (3695...3696), + (3724...3725) + ), + (3691...3693) + )] + ) +) diff --git a/test/yarp/snapshots/procs.txt b/test/yarp/snapshots/procs.txt new file mode 100644 index 0000000000..0e02784453 --- /dev/null +++ b/test/yarp/snapshots/procs.txt @@ -0,0 +1,218 @@ +ProgramNode(0...266)( + [], + StatementsNode(0...266)( + [LambdaNode(0...21)( + [:a, :b, :c, :d], + (0...2), + BlockParametersNode(3...15)( + ParametersNode(4...5)( + [RequiredParameterNode(4...5)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [(7...8), (10...11), (13...14)], + (3...4), + (14...15) + ), + StatementsNode(18...19)([LocalVariableReadNode(18...19)(:b, 0)]) + ), + LambdaNode(23...39)( + [], + (23...25), + nil, + BeginNode(29...39)( + nil, + nil, + nil, + nil, + EnsureNode(29...39)((29...35), nil, (36...39)), + (36...39) + ) + ), + LambdaNode(41...69)( + [], + (41...43), + nil, + BeginNode(47...69)( + nil, + nil, + RescueNode(47...53)((47...53), [], nil, nil, nil, nil), + ElseNode(54...65)((54...58), nil, (59...65)), + EnsureNode(59...69)((59...65), nil, (66...69)), + (66...69) + ) + ), + LambdaNode(71...81)( + [], + (71...73), + nil, + StatementsNode(76...79)( + [CallNode(76...79)(nil, nil, (76...79), nil, nil, nil, nil, 0, "foo")] + ) + ), + LambdaNode(83...98)( + [], + (83...85), + nil, + StatementsNode(90...93)( + [CallNode(90...93)(nil, nil, (90...93), nil, nil, nil, nil, 0, "foo")] + ) + ), + LambdaNode(100...129)( + [:a, :b, :c, :d, :e], + (100...102), + BlockParametersNode(103...123)( + ParametersNode(103...123)( + [RequiredParameterNode(103...104)(:a)], + [OptionalParameterNode(106...111)( + :b, + (106...107), + (108...109), + IntegerNode(110...111)() + )], + [], + nil, + [KeywordParameterNode(113...115)((113...115), nil), + KeywordParameterNode(117...119)((117...119), nil)], + nil, + BlockParameterNode(121...123)((122...123), (121...122)) + ), + [], + nil, + nil + ), + StatementsNode(126...127)([LocalVariableReadNode(126...127)(:a, 0)]) + ), + LambdaNode(131...171)( + [:a, :b, :c, :d, :e, :f, :g], + (131...133), + BlockParametersNode(134...165)( + ParametersNode(135...164)( + [RequiredParameterNode(135...136)(:a)], + [OptionalParameterNode(138...143)( + :b, + (138...139), + (140...141), + IntegerNode(142...143)() + )], + [], + RestParameterNode(145...147)((145...146), (146...147)), + [KeywordParameterNode(149...151)((149...151), nil), + KeywordParameterNode(153...155)((153...155), nil)], + KeywordRestParameterNode(157...160)((157...159), (159...160)), + BlockParameterNode(162...164)((163...164), (162...163)) + ), + [], + (134...135), + (164...165) + ), + StatementsNode(168...169)([LocalVariableReadNode(168...169)(:a, 0)]) + ), + LambdaNode(173...218)( + [:a, :b, :c, :d, :e, :f, :g], + (173...175), + BlockParametersNode(176...207)( + ParametersNode(177...206)( + [RequiredParameterNode(177...178)(:a)], + [OptionalParameterNode(180...185)( + :b, + (180...181), + (182...183), + IntegerNode(184...185)() + )], + [], + RestParameterNode(187...189)((187...188), (188...189)), + [KeywordParameterNode(191...193)((191...193), nil), + KeywordParameterNode(195...197)((195...197), nil)], + KeywordRestParameterNode(199...202)((199...201), (201...202)), + BlockParameterNode(204...206)((205...206), (204...205)) + ), + [], + (176...177), + (206...207) + ), + StatementsNode(213...214)([LocalVariableReadNode(213...214)(:a, 0)]) + ), + LambdaNode(220...245)( + [:a], + (220...222), + BlockParametersNode(223...226)( + ParametersNode(224...225)( + [RequiredParameterNode(224...225)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (223...224), + (225...226) + ), + StatementsNode(229...243)( + [LambdaNode(229...243)( + [:b], + (229...231), + BlockParametersNode(232...233)( + ParametersNode(232...233)( + [RequiredParameterNode(232...233)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [], + nil, + nil + ), + StatementsNode(236...241)( + [CallNode(236...241)( + LocalVariableReadNode(236...237)(:a, 1), + nil, + (238...239), + nil, + ArgumentsNode(240...241)( + [LocalVariableReadNode(240...241)(:b, 0)] + ), + nil, + nil, + 0, + "*" + )] + ) + )] + ) + ), + LambdaNode(247...266)( + [:a, :b, :c], + (247...249), + BlockParametersNode(250...262)( + ParametersNode(251...261)( + [RequiredDestructuredParameterNode(251...257)( + [RequiredParameterNode(252...253)(:a), + RequiredParameterNode(255...256)(:b)], + (251...252), + (256...257) + )], + [], + [], + RestParameterNode(259...261)((259...260), (260...261)), + [], + nil, + nil + ), + [], + (250...251), + (261...262) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/range_begin_open_exclusive.txt b/test/yarp/snapshots/range_begin_open_exclusive.txt new file mode 100644 index 0000000000..50a6593c46 --- /dev/null +++ b/test/yarp/snapshots/range_begin_open_exclusive.txt @@ -0,0 +1,6 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [RangeNode(0...4)(nil, IntegerNode(3...4)(), (0...3), 1)] + ) +) diff --git a/test/yarp/snapshots/range_begin_open_inclusive.txt b/test/yarp/snapshots/range_begin_open_inclusive.txt new file mode 100644 index 0000000000..7d09381f30 --- /dev/null +++ b/test/yarp/snapshots/range_begin_open_inclusive.txt @@ -0,0 +1,6 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)( + [RangeNode(0...3)(nil, IntegerNode(2...3)(), (0...2), 0)] + ) +) diff --git a/test/yarp/snapshots/range_end_open_exclusive.txt b/test/yarp/snapshots/range_end_open_exclusive.txt new file mode 100644 index 0000000000..3da37b123c --- /dev/null +++ b/test/yarp/snapshots/range_end_open_exclusive.txt @@ -0,0 +1,6 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [RangeNode(0...4)(IntegerNode(0...1)(), nil, (1...4), 1)] + ) +) diff --git a/test/yarp/snapshots/range_end_open_inclusive.txt b/test/yarp/snapshots/range_end_open_inclusive.txt new file mode 100644 index 0000000000..e1b90bdffc --- /dev/null +++ b/test/yarp/snapshots/range_end_open_inclusive.txt @@ -0,0 +1,6 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)( + [RangeNode(0...3)(IntegerNode(0...1)(), nil, (1...3), 0)] + ) +) diff --git a/test/yarp/snapshots/ranges.txt b/test/yarp/snapshots/ranges.txt new file mode 100644 index 0000000000..d78044bab0 --- /dev/null +++ b/test/yarp/snapshots/ranges.txt @@ -0,0 +1,106 @@ +ProgramNode(0...85)( + [], + StatementsNode(0...85)( + [ParenthesesNode(0...6)( + StatementsNode(1...5)( + [RangeNode(1...5)(nil, IntegerNode(4...5)(), (1...4), 1)] + ), + (0...1), + (5...6) + ), + ParenthesesNode(8...13)( + StatementsNode(9...12)( + [RangeNode(9...12)(nil, IntegerNode(11...12)(), (9...11), 0)] + ), + (8...9), + (12...13) + ), + RangeNode(15...20)( + IntegerNode(15...16)(), + IntegerNode(19...20)(), + (16...19), + 1 + ), + CallNode(22...31)( + CallNode(22...25)(nil, nil, (22...25), nil, nil, nil, nil, 0, "foo"), + nil, + (25...31), + (25...26), + ArgumentsNode(26...30)( + [RangeNode(26...30)(nil, IntegerNode(29...30)(), (26...29), 1)] + ), + (30...31), + nil, + 0, + "[]" + ), + HashNode(33...48)( + (33...34), + [AssocNode(35...46)( + SymbolNode(35...39)(nil, (35...38), (38...39), "foo"), + RangeNode(40...46)( + nil, + CallNode(43...46)( + nil, + nil, + (43...46), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (40...43), + 1 + ), + nil + )], + (47...48) + ), + ParenthesesNode(50...56)( + StatementsNode(51...55)( + [RangeNode(51...55)(IntegerNode(51...52)(), nil, (52...55), 1)] + ), + (50...51), + (55...56) + ), + RangeNode(58...62)( + IntegerNode(58...59)(), + IntegerNode(61...62)(), + (59...61), + 0 + ), + HashNode(64...78)( + (64...65), + [AssocNode(66...76)( + SymbolNode(66...70)(nil, (66...69), (69...70), "foo"), + RangeNode(71...76)( + nil, + CallNode(73...76)( + nil, + nil, + (73...76), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (71...73), + 0 + ), + nil + )], + (77...78) + ), + ParenthesesNode(80...85)( + StatementsNode(81...84)( + [RangeNode(81...84)(IntegerNode(81...82)(), nil, (82...84), 0)] + ), + (80...81), + (84...85) + )] + ) +) diff --git a/test/yarp/snapshots/regex.txt b/test/yarp/snapshots/regex.txt new file mode 100644 index 0000000000..b53f35df2a --- /dev/null +++ b/test/yarp/snapshots/regex.txt @@ -0,0 +1,143 @@ +ProgramNode(0...278)( + [:foo], + StatementsNode(0...278)( + [CallNode(0...9)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...9)( + [RegularExpressionNode(4...9)((4...5), (5...8), (8...9), "bar", 0)] + ), + nil, + nil, + 0, + "foo" + ), + RegularExpressionNode(11...19)((11...14), (14...17), (17...19), "abc", 1), + RegularExpressionNode(21...26)((21...22), (22...25), (25...26), "a\b", 0), + InterpolatedRegularExpressionNode(28...39)( + (28...29), + [StringNode(29...33)(nil, (29...33), nil, "aaa "), + EmbeddedVariableNode(33...38)( + (33...34), + GlobalVariableReadNode(34...38)() + )], + (38...39), + 0 + ), + InterpolatedRegularExpressionNode(41...57)( + (41...42), + [StringNode(42...46)(nil, (42...46), nil, "aaa "), + EmbeddedStatementsNode(46...52)( + (46...48), + StatementsNode(48...51)( + [CallNode(48...51)( + nil, + nil, + (48...51), + nil, + nil, + nil, + nil, + 0, + "bbb" + )] + ), + (51...52) + ), + StringNode(52...56)(nil, (52...56), nil, " ccc")], + (56...57), + 0 + ), + ArrayNode(59...86)( + [CallNode(60...80)( + RegularExpressionNode(60...73)( + (60...61), + (61...72), + (72...73), + "(?<foo>bar)", + 0 + ), + nil, + (74...76), + nil, + ArgumentsNode(77...80)( + [CallNode(77...80)( + nil, + nil, + (77...80), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil, + nil, + 0, + "=~" + ), + LocalVariableReadNode(82...85)(:foo, 0)], + (59...60), + (85...86) + ), + RegularExpressionNode(88...94)((88...89), (89...92), (92...94), "abc", 1), + RegularExpressionNode(96...122)( + (96...99), + (99...120), + (120...122), + "[a-z$._?][w$.?\#@~]*:", + 1 + ), + RegularExpressionNode(124...161)( + (124...127), + (127...159), + (159...161), + "([a-z$._?][w$.?\#@~]*)( +)(equ)", + 1 + ), + RegularExpressionNode(163...188)( + (163...166), + (166...186), + (186...188), + "[a-z$._?][w$.?\#@~]*", + 1 + ), + RegularExpressionNode(190...249)( + (190...193), + (193...248), + (248...249), + "\n" + "(?:[w\#$%_']|()|(,)|[]|[0-9])*\n" + " (?:[w\#$%_']+)\n", + 0 + ), + CallNode(251...267)( + RegularExpressionNode(251...259)( + (251...252), + (252...258), + (258...259), + "(?#))", + 0 + ), + nil, + (260...262), + nil, + ArgumentsNode(263...267)( + [StringNode(263...267)((263...264), (264...266), (266...267), "hi")] + ), + nil, + nil, + 0, + "=~" + ), + RegularExpressionNode(269...278)( + (269...272), + (272...277), + (277...278), + "pound", + 0 + )] + ) +) diff --git a/test/yarp/snapshots/rescue.txt b/test/yarp/snapshots/rescue.txt new file mode 100644 index 0000000000..01887935e8 --- /dev/null +++ b/test/yarp/snapshots/rescue.txt @@ -0,0 +1,306 @@ +ProgramNode(0...316)( + [:a], + StatementsNode(0...316)( + [RescueModifierNode(0...14)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (4...10), + NilNode(11...14)() + ), + RescueModifierNode(16...30)( + CallNode(16...19)(nil, nil, (16...19), nil, nil, nil, nil, 0, "foo"), + (20...26), + NilNode(27...30)() + ), + RescueModifierNode(32...48)( + BreakNode(32...37)(nil, (32...37)), + (38...44), + NilNode(45...48)() + ), + RescueModifierNode(50...65)( + NextNode(50...54)(nil, (50...54)), + (55...61), + NilNode(62...65)() + ), + RescueModifierNode(67...84)( + ReturnNode(67...73)((67...73), nil), + (74...80), + NilNode(81...84)() + ), + RescueModifierNode(86...105)( + CallNode(86...89)(nil, nil, (86...89), nil, nil, nil, nil, 0, "foo"), + (90...96), + OrNode(97...105)( + NilNode(97...100)(), + IntegerNode(104...105)(), + (101...103) + ) + ), + RescueModifierNode(107...129)( + CallNode(107...110)( + nil, + nil, + (107...110), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (111...117), + IfNode(118...129)( + nil, + NilNode(118...121)(), + StatementsNode(124...125)([IntegerNode(124...125)()]), + ElseNode(126...129)( + (126...127), + StatementsNode(128...129)([IntegerNode(128...129)()]), + nil + ), + nil + ) + ), + BeginNode(131...155)( + (131...136), + StatementsNode(138...139)( + [CallNode(138...139)( + nil, + nil, + (138...139), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(141...150)( + (141...147), + [SplatNode(148...150)( + (148...149), + CallNode(149...150)( + nil, + nil, + (149...150), + nil, + nil, + nil, + nil, + 0, + "b" + ) + )], + nil, + nil, + nil, + nil + ), + nil, + nil, + (152...155) + ), + CallNode(157...212)( + nil, + nil, + (157...160), + nil, + nil, + nil, + BlockNode(161...212)( + [:x], + BlockParametersNode(164...167)( + ParametersNode(165...166)( + [RequiredParameterNode(165...166)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (164...165), + (166...167) + ), + StatementsNode(170...208)( + [RescueModifierNode(170...208)( + CallNode(170...176)( + nil, + nil, + (170...173), + (173...174), + ArgumentsNode(174...175)( + [CallNode(174...175)( + nil, + nil, + (174...175), + nil, + nil, + nil, + nil, + 0, + "y" + )] + ), + (175...176), + nil, + 0, + "bar" + ), + (177...183), + CallNode(184...208)( + nil, + nil, + (184...197), + nil, + ArgumentsNode(198...208)( + [CallNode(198...208)( + nil, + nil, + (198...202), + nil, + ArgumentsNode(203...208)( + [StringNode(203...208)( + (203...204), + (204...207), + (207...208), + "baz" + )] + ), + nil, + nil, + 0, + "fail" + )] + ), + nil, + nil, + 0, + "ArgumentError" + ) + )] + ), + (161...163), + (209...212) + ), + 0, + "foo" + ), + IfNode(214...245)( + (214...216), + LocalVariableWriteNode(217...235)( + :a, + 0, + RescueModifierNode(221...235)( + CallNode(221...224)( + nil, + nil, + (221...224), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (225...231), + NilNode(232...235)() + ), + (217...218), + (219...220) + ), + StatementsNode(238...241)( + [CallNode(238...241)( + nil, + nil, + (238...241), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + (242...245) + ), + DefNode(247...291)( + (251...262), + nil, + nil, + StatementsNode(265...291)( + [CallNode(265...291)( + nil, + nil, + (265...277), + nil, + ArgumentsNode(278...291)( + [RescueModifierNode(278...291)( + IntegerNode(278...280)(), + (281...287), + NilNode(288...291)() + )] + ), + nil, + nil, + 0, + "other_method" + )] + ), + [], + (247...250), + nil, + nil, + nil, + (263...264), + nil + ), + DefNode(293...316)( + (297...298), + nil, + nil, + BeginNode(301...316)( + nil, + StatementsNode(301...305)( + [CallNode(301...305)( + nil, + nil, + (301...302), + nil, + ArgumentsNode(303...305)( + [KeywordHashNode(303...305)( + [AssocNode(303...305)( + SymbolNode(303...305)( + nil, + (303...304), + (304...305), + "b" + ), + nil, + nil + )] + )] + ), + nil, + nil, + 0, + "a" + )] + ), + RescueNode(306...312)((306...312), [], nil, nil, nil, nil), + nil, + nil, + (313...316) + ), + [], + (293...296), + nil, + nil, + nil, + nil, + (313...316) + )] + ) +) diff --git a/test/yarp/snapshots/return.txt b/test/yarp/snapshots/return.txt new file mode 100644 index 0000000000..bbb4b63af2 --- /dev/null +++ b/test/yarp/snapshots/return.txt @@ -0,0 +1,92 @@ +ProgramNode(0...139)( + [], + StatementsNode(0...139)( + [ReturnNode(0...6)((0...6), nil), + ReturnNode(8...28)( + (8...14), + ArgumentsNode(15...28)( + [ParenthesesNode(15...18)( + StatementsNode(16...17)([IntegerNode(16...17)()]), + (15...16), + (17...18) + ), + ParenthesesNode(20...23)( + StatementsNode(21...22)([IntegerNode(21...22)()]), + (20...21), + (22...23) + ), + ParenthesesNode(25...28)( + StatementsNode(26...27)([IntegerNode(26...27)()]), + (25...26), + (27...28) + )] + ) + ), + ReturnNode(30...39)( + (30...36), + ArgumentsNode(37...39)( + [SplatNode(37...39)((37...38), IntegerNode(38...39)())] + ) + ), + ReturnNode(41...49)( + (41...47), + ArgumentsNode(48...49)([IntegerNode(48...49)()]) + ), + ReturnNode(51...65)( + (51...57), + ArgumentsNode(58...65)( + [IntegerNode(58...59)(), + IntegerNode(61...62)(), + IntegerNode(64...65)()] + ) + ), + ReturnNode(67...81)( + (67...73), + ArgumentsNode(74...81)( + [IntegerNode(74...75)(), + IntegerNode(77...78)(), + IntegerNode(80...81)()] + ) + ), + ReturnNode(83...99)( + (83...89), + ArgumentsNode(90...99)( + [ArrayNode(90...99)( + [IntegerNode(91...92)(), + IntegerNode(94...95)(), + IntegerNode(97...98)()], + (90...91), + (98...99) + )] + ) + ), + ReturnNode(101...118)( + (101...107), + ArgumentsNode(107...118)( + [ParenthesesNode(107...118)( + StatementsNode(111...116)( + [IntegerNode(111...112)(), IntegerNode(115...116)()] + ), + (107...108), + (117...118) + )] + ) + ), + ReturnNode(120...128)( + (120...126), + ArgumentsNode(126...128)( + [ParenthesesNode(126...128)(nil, (126...127), (127...128))] + ) + ), + ReturnNode(130...139)( + (130...136), + ArgumentsNode(136...139)( + [ParenthesesNode(136...139)( + StatementsNode(137...138)([IntegerNode(137...138)()]), + (136...137), + (138...139) + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/BEGIN.txt b/test/yarp/snapshots/seattlerb/BEGIN.txt new file mode 100644 index 0000000000..f3366c5610 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/BEGIN.txt @@ -0,0 +1,11 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [PreExecutionNode(0...12)( + StatementsNode(8...10)([IntegerNode(8...10)()]), + (0...5), + (6...7), + (11...12) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/__ENCODING__.txt b/test/yarp/snapshots/seattlerb/__ENCODING__.txt new file mode 100644 index 0000000000..2f5aaa5dfc --- /dev/null +++ b/test/yarp/snapshots/seattlerb/__ENCODING__.txt @@ -0,0 +1 @@ +ProgramNode(0...12)([], StatementsNode(0...12)([SourceEncodingNode(0...12)()])) diff --git a/test/yarp/snapshots/seattlerb/alias_gvar_backref.txt b/test/yarp/snapshots/seattlerb/alias_gvar_backref.txt new file mode 100644 index 0000000000..c055a64925 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/alias_gvar_backref.txt @@ -0,0 +1,10 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [AliasNode(0...15)( + GlobalVariableReadNode(6...12)(), + BackReferenceReadNode(13...15)(), + (0...5) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/alias_resword.txt b/test/yarp/snapshots/seattlerb/alias_resword.txt new file mode 100644 index 0000000000..8452f54826 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/alias_resword.txt @@ -0,0 +1,10 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [AliasNode(0...12)( + SymbolNode(6...8)(nil, (6...8), nil, "in"), + SymbolNode(9...12)(nil, (9...12), nil, "out"), + (0...5) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/and_multi.txt b/test/yarp/snapshots/seattlerb/and_multi.txt new file mode 100644 index 0000000000..2db7d7cedd --- /dev/null +++ b/test/yarp/snapshots/seattlerb/and_multi.txt @@ -0,0 +1,24 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [AndNode(0...27)( + AndNode(0...18)( + TrueNode(0...4)(), + CallNode(9...18)( + FalseNode(13...18)(), + nil, + (9...12), + nil, + nil, + nil, + nil, + 0, + "!" + ), + (5...8) + ), + TrueNode(23...27)(), + (19...22) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/aref_args_assocs.txt b/test/yarp/snapshots/seattlerb/aref_args_assocs.txt new file mode 100644 index 0000000000..aac10a6763 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/aref_args_assocs.txt @@ -0,0 +1,16 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [ArrayNode(0...8)( + [KeywordHashNode(1...7)( + [AssocNode(1...7)( + IntegerNode(1...2)(), + IntegerNode(6...7)(), + (3...5) + )] + )], + (0...1), + (7...8) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/aref_args_lit_assocs.txt b/test/yarp/snapshots/seattlerb/aref_args_lit_assocs.txt new file mode 100644 index 0000000000..24857076d0 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/aref_args_lit_assocs.txt @@ -0,0 +1,17 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [ArrayNode(0...11)( + [IntegerNode(1...2)(), + KeywordHashNode(4...10)( + [AssocNode(4...10)( + IntegerNode(4...5)(), + IntegerNode(9...10)(), + (6...8) + )] + )], + (0...1), + (10...11) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/args_kw_block.txt b/test/yarp/snapshots/seattlerb/args_kw_block.txt new file mode 100644 index 0000000000..ee6e224c80 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/args_kw_block.txt @@ -0,0 +1,26 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [DefNode(0...20)( + (4...5), + nil, + ParametersNode(6...14)( + [], + [], + [], + nil, + [KeywordParameterNode(6...10)((6...8), IntegerNode(9...10)())], + nil, + BlockParameterNode(12...14)((13...14), (12...13)) + ), + nil, + [:a, :b], + (0...3), + nil, + (5...6), + (14...15), + nil, + (17...20) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/array_line_breaks.txt b/test/yarp/snapshots/seattlerb/array_line_breaks.txt new file mode 100644 index 0000000000..4d5224564b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/array_line_breaks.txt @@ -0,0 +1,12 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [ArrayNode(0...11)( + [StringNode(2...5)((2...3), (3...4), (4...5), "a"), + StringNode(7...10)((7...8), (8...9), (9...10), "b")], + (0...1), + (10...11) + ), + IntegerNode(12...13)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/array_lits_trailing_calls.txt b/test/yarp/snapshots/seattlerb/array_lits_trailing_calls.txt new file mode 100644 index 0000000000..8e9c131846 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/array_lits_trailing_calls.txt @@ -0,0 +1,27 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...6)( + ArrayNode(0...4)([], (0...3), (3...4)), + (4...5), + (5...6), + nil, + nil, + nil, + nil, + 0, + "b" + ), + CallNode(8...12)( + ArrayNode(8...10)([], (8...9), (9...10)), + (10...11), + (11...12), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/assoc__bare.txt b/test/yarp/snapshots/seattlerb/assoc__bare.txt new file mode 100644 index 0000000000..ddefbd1f62 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/assoc__bare.txt @@ -0,0 +1,14 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [HashNode(0...6)( + (0...1), + [AssocNode(2...4)( + SymbolNode(2...4)(nil, (2...3), (3...4), "y"), + nil, + nil + )], + (5...6) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/assoc_label.txt b/test/yarp/snapshots/seattlerb/assoc_label.txt new file mode 100644 index 0000000000..4fa881d191 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/assoc_label.txt @@ -0,0 +1,24 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...5)( + [KeywordHashNode(2...5)( + [AssocNode(2...5)( + SymbolNode(2...4)(nil, (2...3), (3...4), "b"), + IntegerNode(4...5)(), + nil + )] + )] + ), + (5...6), + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/attr_asgn_colon_id.txt b/test/yarp/snapshots/seattlerb/attr_asgn_colon_id.txt new file mode 100644 index 0000000000..20cff2a086 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/attr_asgn_colon_id.txt @@ -0,0 +1,16 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...8)( + ConstantReadNode(0...1)(), + (1...3), + (3...4), + nil, + ArgumentsNode(7...8)([IntegerNode(7...8)()]), + nil, + nil, + 0, + "b=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/attrasgn_array_arg.txt b/test/yarp/snapshots/seattlerb/attrasgn_array_arg.txt new file mode 100644 index 0000000000..4da302b141 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/attrasgn_array_arg.txt @@ -0,0 +1,23 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + nil, + (1...9), + (1...2), + ArgumentsNode(2...13)( + [ArrayNode(2...8)( + [IntegerNode(3...4)(), IntegerNode(6...7)()], + (2...3), + (7...8) + ), + IntegerNode(12...13)()] + ), + (8...9), + nil, + 0, + "[]=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/attrasgn_array_lhs.txt b/test/yarp/snapshots/seattlerb/attrasgn_array_lhs.txt new file mode 100644 index 0000000000..e720ae5c86 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/attrasgn_array_lhs.txt @@ -0,0 +1,57 @@ +ProgramNode(0...42)( + [], + StatementsNode(0...42)( + [CallNode(0...42)( + ArrayNode(0...12)( + [IntegerNode(1...2)(), + IntegerNode(4...5)(), + IntegerNode(7...8)(), + IntegerNode(10...11)()], + (0...1), + (11...12) + ), + nil, + (12...24), + (12...13), + ArgumentsNode(13...42)( + [RangeNode(13...23)( + CallNode(13...17)( + nil, + nil, + (13...17), + nil, + nil, + nil, + nil, + 0, + "from" + ), + CallNode(21...23)( + nil, + nil, + (21...23), + nil, + nil, + nil, + nil, + 0, + "to" + ), + (18...20), + 0 + ), + ArrayNode(27...42)( + [StringNode(28...31)((28...29), (29...30), (30...31), "a"), + StringNode(33...36)((33...34), (34...35), (35...36), "b"), + StringNode(38...41)((38...39), (39...40), (40...41), "c")], + (27...28), + (41...42) + )] + ), + (23...24), + nil, + 0, + "[]=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/attrasgn_primary_dot_constant.txt b/test/yarp/snapshots/seattlerb/attrasgn_primary_dot_constant.txt new file mode 100644 index 0000000000..562fa404d4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/attrasgn_primary_dot_constant.txt @@ -0,0 +1,16 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + ArgumentsNode(6...7)([IntegerNode(6...7)()]), + nil, + nil, + 0, + "B=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/backticks_interpolation_line.txt b/test/yarp/snapshots/seattlerb/backticks_interpolation_line.txt new file mode 100644 index 0000000000..27d3f4e3cf --- /dev/null +++ b/test/yarp/snapshots/seattlerb/backticks_interpolation_line.txt @@ -0,0 +1,38 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...8)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...8)( + [InterpolatedXStringNode(2...8)( + (2...3), + [EmbeddedStatementsNode(3...7)( + (3...5), + StatementsNode(5...6)( + [CallNode(5...6)( + nil, + nil, + (5...6), + nil, + nil, + nil, + nil, + 0, + "y" + )] + ), + (6...7) + )], + (7...8) + )] + ), + nil, + nil, + 0, + "x" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bang_eq.txt b/test/yarp/snapshots/seattlerb/bang_eq.txt new file mode 100644 index 0000000000..3a04d4603a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bang_eq.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + IntegerNode(0...1)(), + nil, + (2...4), + nil, + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + nil, + nil, + 0, + "!=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bdot2.txt b/test/yarp/snapshots/seattlerb/bdot2.txt new file mode 100644 index 0000000000..107f9ec206 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bdot2.txt @@ -0,0 +1,13 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [RangeNode(0...4)(nil, IntegerNode(2...4)(), (0...2), 0), + RangeNode(7...10)( + nil, + CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "a"), + (7...9), + 0 + ), + CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bdot3.txt b/test/yarp/snapshots/seattlerb/bdot3.txt new file mode 100644 index 0000000000..433ff9b38f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bdot3.txt @@ -0,0 +1,13 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [RangeNode(0...5)(nil, IntegerNode(3...5)(), (0...3), 1), + RangeNode(8...12)( + nil, + CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 0, "a"), + (8...11), + 1 + ), + CallNode(15...16)(nil, nil, (15...16), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/begin_ensure_no_bodies.txt b/test/yarp/snapshots/seattlerb/begin_ensure_no_bodies.txt new file mode 100644 index 0000000000..39ac8bfea1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/begin_ensure_no_bodies.txt @@ -0,0 +1,13 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [BeginNode(0...16)( + (0...5), + nil, + nil, + nil, + EnsureNode(6...16)((6...12), nil, (13...16)), + (13...16) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/begin_rescue_else_ensure_bodies.txt b/test/yarp/snapshots/seattlerb/begin_rescue_else_ensure_bodies.txt new file mode 100644 index 0000000000..4ad22bbc28 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/begin_rescue_else_ensure_bodies.txt @@ -0,0 +1,28 @@ +ProgramNode(0...44)( + [], + StatementsNode(0...44)( + [BeginNode(0...44)( + (0...5), + StatementsNode(8...9)([IntegerNode(8...9)()]), + RescueNode(10...20)( + (10...16), + [], + nil, + nil, + StatementsNode(19...20)([IntegerNode(19...20)()]), + nil + ), + ElseNode(21...36)( + (21...25), + StatementsNode(28...29)([IntegerNode(28...29)()]), + (30...36) + ), + EnsureNode(30...44)( + (30...36), + StatementsNode(39...40)([IntegerNode(39...40)()]), + (41...44) + ), + (41...44) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/begin_rescue_else_ensure_no_bodies.txt b/test/yarp/snapshots/seattlerb/begin_rescue_else_ensure_no_bodies.txt new file mode 100644 index 0000000000..f8cc5345e3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/begin_rescue_else_ensure_no_bodies.txt @@ -0,0 +1,13 @@ +ProgramNode(0...32)( + [], + StatementsNode(0...32)( + [BeginNode(0...32)( + (0...5), + nil, + RescueNode(7...13)((7...13), [], nil, nil, nil, nil), + ElseNode(15...27)((15...19), nil, (21...27)), + EnsureNode(21...32)((21...27), nil, (29...32)), + (29...32) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/begin_rescue_ensure_no_bodies.txt b/test/yarp/snapshots/seattlerb/begin_rescue_ensure_no_bodies.txt new file mode 100644 index 0000000000..1152a0cddf --- /dev/null +++ b/test/yarp/snapshots/seattlerb/begin_rescue_ensure_no_bodies.txt @@ -0,0 +1,13 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [BeginNode(0...23)( + (0...5), + nil, + RescueNode(6...12)((6...12), [], nil, nil, nil, nil), + nil, + EnsureNode(13...23)((13...19), nil, (20...23)), + (20...23) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg__bare.txt b/test/yarp/snapshots/seattlerb/block_arg__bare.txt new file mode 100644 index 0000000000..94451c870d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg__bare.txt @@ -0,0 +1,26 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [DefNode(0...13)( + (4...5), + nil, + ParametersNode(6...7)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(6...7)(nil, (6...7)) + ), + nil, + [:&], + (0...3), + nil, + (5...6), + (7...8), + nil, + (10...13) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg_kwsplat.txt b/test/yarp/snapshots/seattlerb/block_arg_kwsplat.txt new file mode 100644 index 0000000000..36b7c9f83c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg_kwsplat.txt @@ -0,0 +1,35 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...11)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...11)( + [:b], + BlockParametersNode(4...9)( + ParametersNode(5...8)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(5...8)((5...7), (7...8)), + nil + ), + [], + (4...5), + (8...9) + ), + nil, + (2...3), + (10...11) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg_opt_arg_block.txt b/test/yarp/snapshots/seattlerb/block_arg_opt_arg_block.txt new file mode 100644 index 0000000000..9a663faff8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg_opt_arg_block.txt @@ -0,0 +1,40 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [CallNode(0...21)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...21)( + [:b, :c, :d, :e], + BlockParametersNode(4...19)( + ParametersNode(5...18)( + [RequiredParameterNode(5...6)(:b)], + [OptionalParameterNode(8...11)( + :c, + (8...9), + (9...10), + IntegerNode(10...11)() + )], + [RequiredParameterNode(13...14)(:d)], + nil, + [], + nil, + BlockParameterNode(16...18)((17...18), (16...17)) + ), + [], + (4...5), + (18...19) + ), + nil, + (2...3), + (20...21) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg_opt_splat.txt b/test/yarp/snapshots/seattlerb/block_arg_opt_splat.txt new file mode 100644 index 0000000000..096a00092d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg_opt_splat.txt @@ -0,0 +1,40 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [CallNode(0...20)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...20)( + [:b, :c, :d], + BlockParametersNode(4...18)( + ParametersNode(5...17)( + [RequiredParameterNode(5...6)(:b)], + [OptionalParameterNode(8...13)( + :c, + (8...9), + (10...11), + IntegerNode(12...13)() + )], + [], + RestParameterNode(15...17)((15...16), (16...17)), + [], + nil, + nil + ), + [], + (4...5), + (17...18) + ), + nil, + (2...3), + (19...20) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt b/test/yarp/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt new file mode 100644 index 0000000000..6ace3ff446 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt @@ -0,0 +1,40 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [CallNode(0...25)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...25)( + [:b, :c, :d, :e, :f], + BlockParametersNode(4...23)( + ParametersNode(5...22)( + [RequiredParameterNode(5...6)(:b)], + [OptionalParameterNode(8...11)( + :c, + (8...9), + (9...10), + IntegerNode(10...11)() + )], + [RequiredParameterNode(17...18)(:e)], + RestParameterNode(13...15)((13...14), (14...15)), + [], + nil, + BlockParameterNode(20...22)((21...22), (20...21)) + ), + [], + (4...5), + (22...23) + ), + nil, + (2...3), + (24...25) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg_optional.txt b/test/yarp/snapshots/seattlerb/block_arg_optional.txt new file mode 100644 index 0000000000..cb71821778 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg_optional.txt @@ -0,0 +1,40 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...13)( + [:b], + BlockParametersNode(4...11)( + ParametersNode(5...10)( + [], + [OptionalParameterNode(5...10)( + :b, + (5...6), + (7...8), + IntegerNode(9...10)() + )], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (10...11) + ), + nil, + (2...3), + (12...13) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg_scope.txt b/test/yarp/snapshots/seattlerb/block_arg_scope.txt new file mode 100644 index 0000000000..498d41cbe3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg_scope.txt @@ -0,0 +1,35 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...12)( + [:b, :c], + BlockParametersNode(4...10)( + ParametersNode(5...6)( + [RequiredParameterNode(5...6)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [(8...9)], + (4...5), + (9...10) + ), + nil, + (2...3), + (11...12) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg_scope2.txt b/test/yarp/snapshots/seattlerb/block_arg_scope2.txt new file mode 100644 index 0000000000..787e8cb10a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg_scope2.txt @@ -0,0 +1,35 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...14)( + [:b, :c, :d], + BlockParametersNode(3...12)( + ParametersNode(4...5)( + [RequiredParameterNode(4...5)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [(7...8), (10...11)], + (3...4), + (11...12) + ), + nil, + (2...3), + (13...14) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_arg_splat_arg.txt b/test/yarp/snapshots/seattlerb/block_arg_splat_arg.txt new file mode 100644 index 0000000000..01732f748e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_arg_splat_arg.txt @@ -0,0 +1,35 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...16)( + [:b, :c, :d], + BlockParametersNode(4...14)( + ParametersNode(5...13)( + [RequiredParameterNode(5...6)(:b)], + [], + [RequiredParameterNode(12...13)(:d)], + RestParameterNode(8...10)((8...9), (9...10)), + [], + nil, + nil + ), + [], + (4...5), + (13...14) + ), + nil, + (2...3), + (15...16) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_args_kwargs.txt b/test/yarp/snapshots/seattlerb/block_args_kwargs.txt new file mode 100644 index 0000000000..f54b1bc55f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_args_kwargs.txt @@ -0,0 +1,35 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [CallNode(0...23)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...23)( + [:kwargs], + BlockParametersNode(4...14)( + ParametersNode(5...13)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(5...13)((5...7), (7...13)), + nil + ), + [], + (4...5), + (13...14) + ), + StatementsNode(15...21)([LocalVariableReadNode(15...21)(:kwargs, 0)]), + (2...3), + (22...23) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_args_no_kwargs.txt b/test/yarp/snapshots/seattlerb/block_args_no_kwargs.txt new file mode 100644 index 0000000000..7e4fa1e9f8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_args_no_kwargs.txt @@ -0,0 +1,35 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...13)( + [], + BlockParametersNode(4...11)( + ParametersNode(5...10)( + [], + [], + [], + nil, + [], + NoKeywordsParameterNode(5...10)((5...7), (7...10)), + nil + ), + [], + (4...5), + (10...11) + ), + nil, + (2...3), + (12...13) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_args_opt1.txt b/test/yarp/snapshots/seattlerb/block_args_opt1.txt new file mode 100644 index 0000000000..271638e3d8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_args_opt1.txt @@ -0,0 +1,47 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [CallNode(0...24)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...24)( + [:a, :b], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [RequiredParameterNode(5...6)(:a)], + [OptionalParameterNode(8...14)( + :b, + (8...9), + (10...11), + IntegerNode(12...14)() + )], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (14...15) + ), + StatementsNode(16...22)( + [ArrayNode(16...22)( + [LocalVariableReadNode(17...18)(:a, 0), + LocalVariableReadNode(20...21)(:b, 0)], + (16...17), + (21...22) + )] + ), + (2...3), + (23...24) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_args_opt2.txt b/test/yarp/snapshots/seattlerb/block_args_opt2.txt new file mode 100644 index 0000000000..6b98d4f75c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_args_opt2.txt @@ -0,0 +1,46 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...18)( + [:b, :c], + BlockParametersNode(4...16)( + ParametersNode(6...14)( + [], + [OptionalParameterNode(6...9)( + :b, + (6...7), + (7...8), + IntegerNode(8...9)() + ), + OptionalParameterNode(11...14)( + :c, + (11...12), + (12...13), + IntegerNode(13...14)() + )], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (15...16) + ), + nil, + (2...3), + (17...18) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_args_opt2_2.txt b/test/yarp/snapshots/seattlerb/block_args_opt2_2.txt new file mode 100644 index 0000000000..cdda0997df --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_args_opt2_2.txt @@ -0,0 +1,54 @@ +ProgramNode(0...35)( + [], + StatementsNode(0...35)( + [CallNode(0...35)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...35)( + [:a, :b, :c], + BlockParametersNode(4...23)( + ParametersNode(5...22)( + [RequiredParameterNode(5...6)(:a)], + [OptionalParameterNode(8...14)( + :b, + (8...9), + (10...11), + IntegerNode(12...14)() + ), + OptionalParameterNode(16...22)( + :c, + (16...17), + (18...19), + IntegerNode(20...22)() + )], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (22...23) + ), + StatementsNode(24...33)( + [ArrayNode(24...33)( + [LocalVariableReadNode(25...26)(:a, 0), + LocalVariableReadNode(28...29)(:b, 0), + LocalVariableReadNode(31...32)(:c, 0)], + (24...25), + (32...33) + )] + ), + (2...3), + (34...35) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_args_opt3.txt b/test/yarp/snapshots/seattlerb/block_args_opt3.txt new file mode 100644 index 0000000000..0513157505 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_args_opt3.txt @@ -0,0 +1,55 @@ +ProgramNode(0...42)( + [], + StatementsNode(0...42)( + [CallNode(0...42)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...42)( + [:a, :b, :c, :d], + BlockParametersNode(4...27)( + ParametersNode(5...26)( + [RequiredParameterNode(5...6)(:a)], + [OptionalParameterNode(8...14)( + :b, + (8...9), + (10...11), + IntegerNode(12...14)() + ), + OptionalParameterNode(16...22)( + :c, + (16...17), + (18...19), + IntegerNode(20...22)() + )], + [], + nil, + [], + nil, + BlockParameterNode(24...26)((25...26), (24...25)) + ), + [], + (4...5), + (26...27) + ), + StatementsNode(28...40)( + [ArrayNode(28...40)( + [LocalVariableReadNode(29...30)(:a, 0), + LocalVariableReadNode(32...33)(:b, 0), + LocalVariableReadNode(35...36)(:c, 0), + LocalVariableReadNode(38...39)(:d, 0)], + (28...29), + (39...40) + )] + ), + (2...3), + (41...42) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_break.txt b/test/yarp/snapshots/seattlerb/block_break.txt new file mode 100644 index 0000000000..3d93c86f69 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_break.txt @@ -0,0 +1,52 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [BreakNode(0...26)( + ArgumentsNode(6...26)( + [CallNode(6...26)( + nil, + nil, + (6...9), + nil, + ArgumentsNode(10...13)( + [CallNode(10...13)( + nil, + nil, + (10...13), + nil, + nil, + nil, + nil, + 0, + "arg" + )] + ), + nil, + BlockNode(14...26)( + [:bar], + BlockParametersNode(17...22)( + ParametersNode(18...21)( + [RequiredParameterNode(18...21)(:bar)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (17...18), + (21...22) + ), + nil, + (14...16), + (23...26) + ), + 0, + "foo" + )] + ), + (0...5) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_call_defn_call_block_call.txt b/test/yarp/snapshots/seattlerb/block_call_defn_call_block_call.txt new file mode 100644 index 0000000000..5c68b72478 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_call_defn_call_block_call.txt @@ -0,0 +1,61 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...18)( + [DefNode(2...18)( + (6...7), + nil, + ParametersNode(8...9)( + [RequiredParameterNode(8...9)(:c)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(12...13)( + [CallNode(12...13)( + nil, + nil, + (12...13), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + [:c], + (2...5), + nil, + (7...8), + (9...10), + nil, + (15...18) + )] + ), + nil, + nil, + 0, + "a" + ), + CallNode(20...30)( + CallNode(20...21)(nil, nil, (20...21), nil, nil, nil, nil, 0, "e"), + (21...22), + (22...23), + nil, + nil, + nil, + BlockNode(24...30)([], nil, nil, (24...26), (27...30)), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_call_dot_op2_brace_block.txt b/test/yarp/snapshots/seattlerb/block_call_dot_op2_brace_block.txt new file mode 100644 index 0000000000..5b3de7d352 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_call_dot_op2_brace_block.txt @@ -0,0 +1,77 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [CallNode(0...31)( + CallNode(0...16)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + ArgumentsNode(4...7)( + [CallNode(4...7)( + nil, + nil, + (4...5), + (5...6), + nil, + (6...7), + nil, + 0, + "c" + )] + ), + nil, + BlockNode(8...16)( + [], + nil, + StatementsNode(11...12)( + [CallNode(11...12)( + nil, + nil, + (11...12), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (8...10), + (13...16) + ), + 0, + "b" + ), + (16...17), + (17...18), + nil, + nil, + nil, + BlockNode(19...31)( + [:f], + BlockParametersNode(22...25)( + ParametersNode(23...24)( + [RequiredParameterNode(23...24)(:f)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (22...23), + (24...25) + ), + StatementsNode(26...27)( + [CallNode(26...27)(nil, nil, (26...27), nil, nil, nil, nil, 0, "g")] + ), + (19...21), + (28...31) + ), + 0, + "e" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt b/test/yarp/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt new file mode 100644 index 0000000000..28d30af0c6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt @@ -0,0 +1,79 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [CallNode(0...33)( + CallNode(0...16)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + ArgumentsNode(4...7)( + [CallNode(4...7)( + nil, + nil, + (4...5), + (5...6), + nil, + (6...7), + nil, + 0, + "c" + )] + ), + nil, + BlockNode(8...16)( + [], + nil, + StatementsNode(11...12)( + [CallNode(11...12)( + nil, + nil, + (11...12), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (8...10), + (13...16) + ), + 0, + "b" + ), + (16...17), + (17...18), + nil, + ArgumentsNode(19...20)( + [CallNode(19...20)(nil, nil, (19...20), nil, nil, nil, nil, 0, "f")] + ), + nil, + BlockNode(21...33)( + [:g], + BlockParametersNode(24...27)( + ParametersNode(25...26)( + [RequiredParameterNode(25...26)(:g)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (24...25), + (26...27) + ), + StatementsNode(28...29)( + [CallNode(28...29)(nil, nil, (28...29), nil, nil, nil, nil, 0, "h")] + ), + (21...23), + (30...33) + ), + 0, + "e" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_call_operation_colon.txt b/test/yarp/snapshots/seattlerb/block_call_operation_colon.txt new file mode 100644 index 0000000000..9f2be35702 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_call_operation_colon.txt @@ -0,0 +1,28 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...15)( + CallNode(0...12)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + ArgumentsNode(4...5)( + [CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "c")] + ), + nil, + BlockNode(6...12)([], nil, nil, (6...8), (9...12)), + 0, + "b" + ), + (12...14), + (14...15), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_call_operation_dot.txt b/test/yarp/snapshots/seattlerb/block_call_operation_dot.txt new file mode 100644 index 0000000000..255fdc2271 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_call_operation_dot.txt @@ -0,0 +1,28 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + CallNode(0...12)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + ArgumentsNode(4...5)( + [CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "c")] + ), + nil, + BlockNode(6...12)([], nil, nil, (6...8), (9...12)), + 0, + "b" + ), + (12...13), + (13...14), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_call_paren_call_block_call.txt b/test/yarp/snapshots/seattlerb/block_call_paren_call_block_call.txt new file mode 100644 index 0000000000..0689466b69 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_call_paren_call_block_call.txt @@ -0,0 +1,35 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...5)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...5)( + [ParenthesesNode(2...5)( + StatementsNode(3...4)( + [CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 0, "b")] + ), + (2...3), + (4...5) + )] + ), + nil, + nil, + 0, + "a" + ), + CallNode(6...16)( + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "c"), + (7...8), + (8...9), + nil, + nil, + nil, + BlockNode(10...16)([], nil, nil, (10...12), (13...16)), + 0, + "d" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_command_operation_colon.txt b/test/yarp/snapshots/seattlerb/block_command_operation_colon.txt new file mode 100644 index 0000000000..9007764dea --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_command_operation_colon.txt @@ -0,0 +1,28 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + CallNode(0...11)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...4)([SymbolNode(2...4)((2...3), (3...4), nil, "b")]), + nil, + BlockNode(5...11)([], nil, nil, (5...7), (8...11)), + 0, + "a" + ), + (11...13), + (16...17), + nil, + ArgumentsNode(15...17)( + [SymbolNode(15...17)((15...16), (16...17), nil, "d")] + ), + nil, + nil, + 0, + "d" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_command_operation_dot.txt b/test/yarp/snapshots/seattlerb/block_command_operation_dot.txt new file mode 100644 index 0000000000..8225ce403f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_command_operation_dot.txt @@ -0,0 +1,28 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + CallNode(0...11)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...4)([SymbolNode(2...4)((2...3), (3...4), nil, "b")]), + nil, + BlockNode(5...11)([], nil, nil, (5...7), (8...11)), + 0, + "a" + ), + (11...12), + (12...13), + nil, + ArgumentsNode(14...16)( + [SymbolNode(14...16)((14...15), (15...16), nil, "d")] + ), + nil, + nil, + 0, + "c" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_decomp_anon_splat_arg.txt b/test/yarp/snapshots/seattlerb/block_decomp_anon_splat_arg.txt new file mode 100644 index 0000000000..f5bee5b926 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_decomp_anon_splat_arg.txt @@ -0,0 +1,40 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...14)( + [:a], + BlockParametersNode(4...12)( + ParametersNode(5...11)( + [RequiredDestructuredParameterNode(5...11)( + [SplatNode(6...7)((6...7), nil), + RequiredParameterNode(9...10)(:a)], + (5...6), + (10...11) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (11...12) + ), + nil, + (2...3), + (13...14) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_decomp_arg_splat.txt b/test/yarp/snapshots/seattlerb/block_decomp_arg_splat.txt new file mode 100644 index 0000000000..b1c8e2e9b8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_decomp_arg_splat.txt @@ -0,0 +1,40 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...14)( + [:b], + BlockParametersNode(4...12)( + ParametersNode(5...11)( + [RequiredDestructuredParameterNode(5...11)( + [RequiredParameterNode(6...7)(:b), + SplatNode(9...10)((9...10), nil)], + (5...6), + (10...11) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (11...12) + ), + nil, + (2...3), + (13...14) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_decomp_arg_splat_arg.txt b/test/yarp/snapshots/seattlerb/block_decomp_arg_splat_arg.txt new file mode 100644 index 0000000000..f66bef6ccb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_decomp_arg_splat_arg.txt @@ -0,0 +1,44 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...18)( + [:a, :b, :c], + BlockParametersNode(4...16)( + ParametersNode(5...15)( + [RequiredDestructuredParameterNode(5...15)( + [RequiredParameterNode(6...7)(:a), + SplatNode(9...11)( + (9...10), + RequiredParameterNode(10...11)(:b) + ), + RequiredParameterNode(13...14)(:c)], + (5...6), + (14...15) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (15...16) + ), + nil, + (2...3), + (17...18) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_decomp_splat.txt b/test/yarp/snapshots/seattlerb/block_decomp_splat.txt new file mode 100644 index 0000000000..c78fd82317 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_decomp_splat.txt @@ -0,0 +1,39 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...12)( + [:a], + BlockParametersNode(4...10)( + ParametersNode(5...9)( + [RequiredDestructuredParameterNode(5...9)( + [SplatNode(6...8)((6...7), RequiredParameterNode(7...8)(:a))], + (5...6), + (8...9) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (9...10) + ), + nil, + (2...3), + (11...12) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_kw.txt b/test/yarp/snapshots/seattlerb/block_kw.txt new file mode 100644 index 0000000000..b8f61d8e30 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_kw.txt @@ -0,0 +1,35 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...15)( + nil, + nil, + (0...4), + nil, + nil, + nil, + BlockNode(5...15)( + [:k], + BlockParametersNode(7...13)( + ParametersNode(8...12)( + [], + [], + [], + nil, + [KeywordParameterNode(8...12)((8...10), IntegerNode(10...12)())], + nil, + nil + ), + [], + (7...8), + (12...13) + ), + nil, + (5...6), + (14...15) + ), + 0, + "blah" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_kw__required.txt b/test/yarp/snapshots/seattlerb/block_kw__required.txt new file mode 100644 index 0000000000..cb7b291237 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_kw__required.txt @@ -0,0 +1,35 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + nil, + nil, + (0...4), + nil, + nil, + nil, + BlockNode(5...16)( + [:k], + BlockParametersNode(8...12)( + ParametersNode(9...11)( + [], + [], + [], + nil, + [KeywordParameterNode(9...11)((9...11), nil)], + nil, + nil + ), + [], + (8...9), + (11...12) + ), + nil, + (5...7), + (13...16) + ), + 0, + "blah" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_kwarg_lvar.txt b/test/yarp/snapshots/seattlerb/block_kwarg_lvar.txt new file mode 100644 index 0000000000..dd1df1b7ad --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_kwarg_lvar.txt @@ -0,0 +1,38 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [CallNode(0...20)( + nil, + nil, + (0...2), + nil, + nil, + nil, + BlockNode(3...20)( + [:kw], + BlockParametersNode(5...15)( + ParametersNode(6...14)( + [], + [], + [], + nil, + [KeywordParameterNode(6...14)( + (6...9), + SymbolNode(10...14)((10...11), (11...14), nil, "val") + )], + nil, + nil + ), + [], + (5...6), + (14...15) + ), + StatementsNode(16...18)([LocalVariableReadNode(16...18)(:kw, 0)]), + (3...4), + (19...20) + ), + 0, + "bl" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_kwarg_lvar_multiple.txt b/test/yarp/snapshots/seattlerb/block_kwarg_lvar_multiple.txt new file mode 100644 index 0000000000..ae561f5de3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_kwarg_lvar_multiple.txt @@ -0,0 +1,42 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [CallNode(0...33)( + nil, + nil, + (0...2), + nil, + nil, + nil, + BlockNode(3...33)( + [:kw, :kw2], + BlockParametersNode(5...28)( + ParametersNode(6...26)( + [], + [], + [], + nil, + [KeywordParameterNode(6...14)( + (6...9), + SymbolNode(10...14)((10...11), (11...14), nil, "val") + ), + KeywordParameterNode(16...26)( + (16...20), + SymbolNode(21...26)((21...22), (22...26), nil, "val2") + )], + nil, + nil + ), + [], + (5...6), + (27...28) + ), + StatementsNode(29...31)([LocalVariableReadNode(29...31)(:kw, 0)]), + (3...4), + (32...33) + ), + 0, + "bl" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_next.txt b/test/yarp/snapshots/seattlerb/block_next.txt new file mode 100644 index 0000000000..b7babbf781 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_next.txt @@ -0,0 +1,52 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [NextNode(0...25)( + ArgumentsNode(5...25)( + [CallNode(5...25)( + nil, + nil, + (5...8), + nil, + ArgumentsNode(9...12)( + [CallNode(9...12)( + nil, + nil, + (9...12), + nil, + nil, + nil, + nil, + 0, + "arg" + )] + ), + nil, + BlockNode(13...25)( + [:bar], + BlockParametersNode(16...21)( + ParametersNode(17...20)( + [RequiredParameterNode(17...20)(:bar)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (16...17), + (20...21) + ), + nil, + (13...15), + (22...25) + ), + 0, + "foo" + )] + ), + (0...4) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_opt_arg.txt b/test/yarp/snapshots/seattlerb/block_opt_arg.txt new file mode 100644 index 0000000000..0927953818 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_opt_arg.txt @@ -0,0 +1,40 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...14)( + [:b, :c], + BlockParametersNode(4...12)( + ParametersNode(5...11)( + [], + [OptionalParameterNode(5...8)( + :b, + (5...6), + (6...7), + IntegerNode(7...8)() + )], + [RequiredParameterNode(10...11)(:c)], + nil, + [], + nil, + nil + ), + [], + (4...5), + (11...12) + ), + nil, + (2...3), + (13...14) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_opt_splat.txt b/test/yarp/snapshots/seattlerb/block_opt_splat.txt new file mode 100644 index 0000000000..59b1a79e40 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_opt_splat.txt @@ -0,0 +1,40 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:b, :c], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [], + [OptionalParameterNode(5...10)( + :b, + (5...6), + (7...8), + IntegerNode(9...10)() + )], + [], + RestParameterNode(12...14)((12...13), (13...14)), + [], + nil, + nil + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt b/test/yarp/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt new file mode 100644 index 0000000000..cc48f213f8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt @@ -0,0 +1,40 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [CallNode(0...22)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...22)( + [:b, :c, :d, :e], + BlockParametersNode(4...20)( + ParametersNode(5...19)( + [], + [OptionalParameterNode(5...8)( + :b, + (5...6), + (6...7), + IntegerNode(7...8)() + )], + [RequiredParameterNode(14...15)(:d)], + RestParameterNode(10...12)((10...11), (11...12)), + [], + nil, + BlockParameterNode(17...19)((18...19), (17...18)) + ), + [], + (4...5), + (19...20) + ), + nil, + (2...3), + (21...22) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_optarg.txt b/test/yarp/snapshots/seattlerb/block_optarg.txt new file mode 100644 index 0000000000..faaaf22e0e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_optarg.txt @@ -0,0 +1,40 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...14)( + [:b], + BlockParametersNode(4...12)( + ParametersNode(5...11)( + [], + [OptionalParameterNode(5...11)( + :b, + (5...6), + (7...8), + SymbolNode(9...11)((9...10), (10...11), nil, "c") + )], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (11...12) + ), + nil, + (2...3), + (13...14) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_paren_splat.txt b/test/yarp/snapshots/seattlerb/block_paren_splat.txt new file mode 100644 index 0000000000..74a59ed1de --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_paren_splat.txt @@ -0,0 +1,43 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...15)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...15)( + [:b, :c], + BlockParametersNode(4...13)( + ParametersNode(5...12)( + [RequiredDestructuredParameterNode(5...12)( + [RequiredParameterNode(6...7)(:b), + SplatNode(9...11)( + (9...10), + RequiredParameterNode(10...11)(:c) + )], + (5...6), + (11...12) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (12...13) + ), + nil, + (2...3), + (14...15) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_reg_optarg.txt b/test/yarp/snapshots/seattlerb/block_reg_optarg.txt new file mode 100644 index 0000000000..c6cbc623e0 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_reg_optarg.txt @@ -0,0 +1,40 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:b, :c], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [RequiredParameterNode(5...6)(:b)], + [OptionalParameterNode(8...14)( + :c, + (8...9), + (10...11), + SymbolNode(12...14)((12...13), (13...14), nil, "d") + )], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_return.txt b/test/yarp/snapshots/seattlerb/block_return.txt new file mode 100644 index 0000000000..b8adacc523 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_return.txt @@ -0,0 +1,52 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [ReturnNode(0...27)( + (0...6), + ArgumentsNode(7...27)( + [CallNode(7...27)( + nil, + nil, + (7...10), + nil, + ArgumentsNode(11...14)( + [CallNode(11...14)( + nil, + nil, + (11...14), + nil, + nil, + nil, + nil, + 0, + "arg" + )] + ), + nil, + BlockNode(15...27)( + [:bar], + BlockParametersNode(18...23)( + ParametersNode(19...22)( + [RequiredParameterNode(19...22)(:bar)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (18...19), + (22...23) + ), + nil, + (15...17), + (24...27) + ), + 0, + "foo" + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_scope.txt b/test/yarp/snapshots/seattlerb/block_scope.txt new file mode 100644 index 0000000000..223268c471 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_scope.txt @@ -0,0 +1,22 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallNode(0...10)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...10)( + [:b], + BlockParametersNode(4...8)(nil, [(6...7)], (4...5), (7...8)), + nil, + (2...3), + (9...10) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/block_splat_reg.txt b/test/yarp/snapshots/seattlerb/block_splat_reg.txt new file mode 100644 index 0000000000..85011bd781 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/block_splat_reg.txt @@ -0,0 +1,35 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...13)( + [:b, :c], + BlockParametersNode(4...11)( + ParametersNode(5...10)( + [], + [], + [RequiredParameterNode(9...10)(:c)], + RestParameterNode(5...7)((5...6), (6...7)), + [], + nil, + nil + ), + [], + (4...5), + (10...11) + ), + nil, + (2...3), + (12...13) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug169.txt b/test/yarp/snapshots/seattlerb/bug169.txt new file mode 100644 index 0000000000..d6b75f5369 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug169.txt @@ -0,0 +1,16 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...4)([ParenthesesNode(2...4)(nil, (2...3), (3...4))]), + nil, + BlockNode(5...7)([], nil, nil, (5...6), (6...7)), + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug179.txt b/test/yarp/snapshots/seattlerb/bug179.txt new file mode 100644 index 0000000000..9dc2331c93 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug179.txt @@ -0,0 +1,23 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...9)( + [RangeNode(2...9)( + ParenthesesNode(2...4)(nil, (2...3), (3...4)), + NilNode(6...9)(), + (4...6), + 0 + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug190.txt b/test/yarp/snapshots/seattlerb/bug190.txt new file mode 100644 index 0000000000..1ad483ada9 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug190.txt @@ -0,0 +1,6 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [RegularExpressionNode(0...6)((0...3), (3...5), (5...6), "'", 0)] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug191.txt b/test/yarp/snapshots/seattlerb/bug191.txt new file mode 100644 index 0000000000..0e45d22dae --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug191.txt @@ -0,0 +1,35 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [IfNode(0...9)( + nil, + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + StatementsNode(4...6)( + [StringNode(4...6)((4...5), (5...5), (5...6), "")] + ), + ElseNode(6...9)( + (6...7), + StatementsNode(8...9)( + [CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "b")] + ), + nil + ), + nil + ), + IfNode(11...20)( + nil, + CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 0, "a"), + StatementsNode(15...17)( + [StringNode(15...17)((15...16), (16...16), (16...17), "")] + ), + ElseNode(17...20)( + (17...18), + StatementsNode(19...20)( + [CallNode(19...20)(nil, nil, (19...20), nil, nil, nil, nil, 0, "b")] + ), + nil + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug202.txt b/test/yarp/snapshots/seattlerb/bug202.txt new file mode 100644 index 0000000000..7bb548f798 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug202.txt @@ -0,0 +1,13 @@ +ProgramNode(0...22)( + [:测试], + StatementsNode(0...22)( + [GlobalVariableWriteNode(0...11)((0...7), (8...9), IntegerNode(10...11)()), + LocalVariableWriteNode(12...22)( + :测试, + 0, + IntegerNode(21...22)(), + (12...18), + (19...20) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug236.txt b/test/yarp/snapshots/seattlerb/bug236.txt new file mode 100644 index 0000000000..bf6b429802 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug236.txt @@ -0,0 +1,65 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...7)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(1...7)( + [:a], + BlockParametersNode(2...6)( + ParametersNode(3...5)( + [RequiredParameterNode(3...4)(:a)], + [], + [], + RestParameterNode(4...5)((4...5), nil), + [], + nil, + nil + ), + [], + (2...3), + (5...6) + ), + nil, + (1...2), + (6...7) + ), + 0, + "x" + ), + CallNode(9...15)( + nil, + nil, + (9...10), + nil, + nil, + nil, + BlockNode(10...15)( + [:a], + BlockParametersNode(11...14)( + ParametersNode(12...13)( + [RequiredParameterNode(12...13)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (11...12), + (13...14) + ), + nil, + (10...11), + (14...15) + ), + 0, + "x" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug290.txt b/test/yarp/snapshots/seattlerb/bug290.txt new file mode 100644 index 0000000000..84e7cbeb97 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug290.txt @@ -0,0 +1,15 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [BeginNode(0...15)( + (0...5), + StatementsNode(8...11)( + [CallNode(8...11)(nil, nil, (8...11), nil, nil, nil, nil, 0, "foo")] + ), + nil, + nil, + nil, + (12...15) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_187.txt b/test/yarp/snapshots/seattlerb/bug_187.txt new file mode 100644 index 0000000000..b0c76b3c4b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_187.txt @@ -0,0 +1,52 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CallNode(0...28)( + nil, + nil, + (0...7), + nil, + ArgumentsNode(8...28)( + [DefNode(8...28)( + (12...13), + nil, + nil, + StatementsNode(14...24)( + [CallNode(14...24)( + CallNode(14...15)( + nil, + nil, + (14...15), + nil, + nil, + nil, + nil, + 0, + "a" + ), + (15...16), + (16...17), + nil, + nil, + nil, + BlockNode(18...24)([], nil, nil, (18...20), (21...24)), + 0, + "b" + )] + ), + [], + (8...11), + nil, + nil, + nil, + nil, + (25...28) + )] + ), + nil, + nil, + 0, + "private" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_215.txt b/test/yarp/snapshots/seattlerb/bug_215.txt new file mode 100644 index 0000000000..16a2ca3be1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_215.txt @@ -0,0 +1,9 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [UndefNode(0...13)( + [SymbolNode(6...13)((6...9), (9...12), (12...13), "foo")], + (0...5) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_249.txt b/test/yarp/snapshots/seattlerb/bug_249.txt new file mode 100644 index 0000000000..08a99c73b9 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_249.txt @@ -0,0 +1,76 @@ +ProgramNode(0...67)( + [], + StatementsNode(0...67)( + [CallNode(0...67)( + nil, + nil, + (0...5), + nil, + ArgumentsNode(6...67)( + [CallNode(6...48)( + ParenthesesNode(6...44)( + StatementsNode(7...43)( + [CallNode(7...43)( + ConstantReadNode(7...12)(), + (12...13), + (13...16), + nil, + nil, + nil, + BlockNode(17...43)( + [], + nil, + StatementsNode(20...38)( + [DefNode(20...38)( + (24...34), + nil, + nil, + nil, + [], + (20...23), + nil, + nil, + nil, + nil, + (35...38) + )] + ), + (17...19), + (40...43) + ), + 0, + "new" + )] + ), + (6...7), + (43...44) + ), + (44...45), + (45...48), + nil, + nil, + nil, + nil, + 0, + "new" + ), + KeywordHashNode(50...67)( + [AssocNode(50...67)( + SymbolNode(50...53)((50...51), (51...53), nil, "at"), + StringNode(57...67)( + (57...58), + (58...66), + (66...67), + "endpoint" + ), + (54...56) + )] + )] + ), + nil, + nil, + 0, + "mount" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_and.txt b/test/yarp/snapshots/seattlerb/bug_and.txt new file mode 100644 index 0000000000..b81ddb4d87 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_and.txt @@ -0,0 +1,11 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [AndNode(0...13)(TrueNode(0...4)(), TrueNode(9...13)(), (5...8)), + AndNode(15...26)( + TrueNode(15...19)(), + ArrayNode(24...26)([], (24...25), (25...26)), + (20...23) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_args__19.txt b/test/yarp/snapshots/seattlerb/bug_args__19.txt new file mode 100644 index 0000000000..64dece1b91 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_args__19.txt @@ -0,0 +1,42 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...16)( + [:a, :b], + BlockParametersNode(4...12)( + ParametersNode(5...11)( + [RequiredDestructuredParameterNode(5...11)( + [RequiredParameterNode(6...7)(:a), + RequiredParameterNode(9...10)(:b)], + (5...6), + (10...11) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (11...12) + ), + StatementsNode(13...14)( + [CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 0, "d")] + ), + (2...3), + (15...16) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_args_masgn.txt b/test/yarp/snapshots/seattlerb/bug_args_masgn.txt new file mode 100644 index 0000000000..5a79af6c92 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_args_masgn.txt @@ -0,0 +1,41 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:a, :b, :c], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [RequiredDestructuredParameterNode(5...11)( + [RequiredParameterNode(6...7)(:a), + RequiredParameterNode(9...10)(:b)], + (5...6), + (10...11) + ), + RequiredParameterNode(13...14)(:c)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_args_masgn2.txt b/test/yarp/snapshots/seattlerb/bug_args_masgn2.txt new file mode 100644 index 0000000000..410d5f7ebd --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_args_masgn2.txt @@ -0,0 +1,46 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [CallNode(0...22)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...22)( + [:a, :b, :c, :d], + BlockParametersNode(4...20)( + ParametersNode(5...19)( + [RequiredDestructuredParameterNode(5...16)( + [RequiredDestructuredParameterNode(6...12)( + [RequiredParameterNode(7...8)(:a), + RequiredParameterNode(10...11)(:b)], + (6...7), + (11...12) + ), + RequiredParameterNode(14...15)(:c)], + (5...6), + (15...16) + ), + RequiredParameterNode(18...19)(:d)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (19...20) + ), + nil, + (2...3), + (21...22) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt b/test/yarp/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt new file mode 100644 index 0000000000..c0b97dce6b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt @@ -0,0 +1,45 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [CallNode(0...19)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...19)( + [:k, :v, :i], + BlockParametersNode(4...17)( + ParametersNode(5...16)( + [RequiredDestructuredParameterNode(5...16)( + [RequiredDestructuredParameterNode(6...12)( + [RequiredParameterNode(7...8)(:k), + RequiredParameterNode(10...11)(:v)], + (6...7), + (11...12) + ), + RequiredParameterNode(14...15)(:i)], + (5...6), + (15...16) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (16...17) + ), + nil, + (2...3), + (18...19) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_call_arglist_parens.txt b/test/yarp/snapshots/seattlerb/bug_call_arglist_parens.txt new file mode 100644 index 0000000000..61193bb0a6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_call_arglist_parens.txt @@ -0,0 +1,87 @@ +ProgramNode(6...94)( + [], + StatementsNode(6...94)( + [DefNode(6...39)( + (10...11), + nil, + nil, + StatementsNode(20...29)( + [CallNode(20...29)( + nil, + nil, + (20...21), + nil, + ArgumentsNode(22...29)( + [ParenthesesNode(22...26)( + StatementsNode(24...25)([IntegerNode(24...25)()]), + (22...23), + (25...26) + ), + IntegerNode(28...29)()] + ), + nil, + nil, + 0, + "g" + )] + ), + [], + (6...9), + nil, + nil, + nil, + nil, + (36...39) + ), + DefNode(48...82)( + (52...53), + nil, + nil, + StatementsNode(64...72)( + [CallNode(64...72)( + nil, + nil, + (64...65), + nil, + ArgumentsNode(66...72)( + [ParenthesesNode(66...69)( + StatementsNode(67...68)([IntegerNode(67...68)()]), + (66...67), + (68...69) + ), + IntegerNode(71...72)()] + ), + nil, + nil, + 0, + "g" + )] + ), + [], + (48...51), + nil, + (53...54), + (54...55), + nil, + (79...82) + ), + CallNode(85...94)( + nil, + nil, + (85...86), + nil, + ArgumentsNode(87...94)( + [ParenthesesNode(87...91)( + StatementsNode(89...90)([IntegerNode(89...90)()]), + (87...88), + (90...91) + ), + IntegerNode(93...94)()] + ), + nil, + nil, + 0, + "g" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_case_when_regexp.txt b/test/yarp/snapshots/seattlerb/bug_case_when_regexp.txt new file mode 100644 index 0000000000..0b898fd523 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_case_when_regexp.txt @@ -0,0 +1,22 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [CaseNode(0...26)( + SymbolNode(5...7)((5...6), (6...7), nil, "x"), + [WhenNode(9...17)( + (9...13), + [RegularExpressionNode(14...17)( + (14...15), + (15...16), + (16...17), + "x", + 0 + )], + nil + )], + nil, + (0...4), + (23...26) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_comma.txt b/test/yarp/snapshots/seattlerb/bug_comma.txt new file mode 100644 index 0000000000..b4dbc7db5a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_comma.txt @@ -0,0 +1,35 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [IfNode(0...24)( + (0...2), + CallNode(3...15)( + nil, + nil, + (3...7), + nil, + ArgumentsNode(8...15)( + [StringNode(8...10)((8...9), (9...10), nil, "d"), + CallNode(12...15)( + nil, + nil, + (12...15), + nil, + nil, + nil, + nil, + 0, + "dir" + )] + ), + nil, + nil, + 0, + "test" + ), + nil, + nil, + (21...24) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_cond_pct.txt b/test/yarp/snapshots/seattlerb/bug_cond_pct.txt new file mode 100644 index 0000000000..6a73ca7493 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_cond_pct.txt @@ -0,0 +1,22 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CaseNode(0...28)( + nil, + [WhenNode(6...23)( + (6...10), + [RegularExpressionNode(11...23)( + (11...14), + (14...22), + (22...23), + "blahblah", + 0 + )], + nil + )], + nil, + (0...4), + (25...28) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_hash_args.txt b/test/yarp/snapshots/seattlerb/bug_hash_args.txt new file mode 100644 index 0000000000..1eec48e930 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_hash_args.txt @@ -0,0 +1,25 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [CallNode(0...19)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...18)( + [SymbolNode(4...8)((4...5), (5...8), nil, "bar"), + KeywordHashNode(10...18)( + [AssocNode(10...18)( + SymbolNode(10...14)(nil, (10...13), (13...14), "baz"), + NilNode(15...18)(), + nil + )] + )] + ), + (18...19), + nil, + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_hash_args_trailing_comma.txt b/test/yarp/snapshots/seattlerb/bug_hash_args_trailing_comma.txt new file mode 100644 index 0000000000..3801df91bf --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_hash_args_trailing_comma.txt @@ -0,0 +1,25 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [CallNode(0...20)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...18)( + [SymbolNode(4...8)((4...5), (5...8), nil, "bar"), + KeywordHashNode(10...18)( + [AssocNode(10...18)( + SymbolNode(10...14)(nil, (10...13), (13...14), "baz"), + NilNode(15...18)(), + nil + )] + )] + ), + (19...20), + nil, + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_hash_interp_array.txt b/test/yarp/snapshots/seattlerb/bug_hash_interp_array.txt new file mode 100644 index 0000000000..fff5c3bfb6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_hash_interp_array.txt @@ -0,0 +1,18 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [HashNode(0...13)( + (0...1), + [AssocNode(2...11)( + InterpolatedSymbolNode(2...8)( + (2...3), + [EmbeddedStatementsNode(3...6)((3...5), nil, (5...6))], + (6...8) + ), + ArrayNode(9...11)([], (9...10), (10...11)), + nil + )], + (12...13) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_masgn_right.txt b/test/yarp/snapshots/seattlerb/bug_masgn_right.txt new file mode 100644 index 0000000000..beee1f7990 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_masgn_right.txt @@ -0,0 +1,41 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:a, :b, :c], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...14)( + [RequiredParameterNode(9...10)(:b), + RequiredParameterNode(12...13)(:c)], + (8...9), + (13...14) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_not_parens.txt b/test/yarp/snapshots/seattlerb/bug_not_parens.txt new file mode 100644 index 0000000000..3a12af1da8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_not_parens.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "a"), + nil, + (0...3), + (3...4), + nil, + (5...6), + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/bug_op_asgn_rescue.txt b/test/yarp/snapshots/seattlerb/bug_op_asgn_rescue.txt new file mode 100644 index 0000000000..2a445ebfdb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/bug_op_asgn_rescue.txt @@ -0,0 +1,15 @@ +ProgramNode(0...18)( + [:a], + StatementsNode(0...18)( + [LocalVariableOperatorOrWriteNode(0...18)( + (0...1), + (2...5), + RescueModifierNode(6...18)( + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "b"), + (8...14), + NilNode(15...18)() + ), + :a + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_and.txt b/test/yarp/snapshots/seattlerb/call_and.txt new file mode 100644 index 0000000000..d6b4d8d6ce --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_and.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + nil, + (2...3), + nil, + ArgumentsNode(4...5)([IntegerNode(4...5)()]), + nil, + nil, + 0, + "&" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_arg_assoc.txt b/test/yarp/snapshots/seattlerb/call_arg_assoc.txt new file mode 100644 index 0000000000..e6c88afdf0 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_arg_assoc.txt @@ -0,0 +1,25 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallNode(0...10)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...9)( + [IntegerNode(2...3)(), + KeywordHashNode(5...9)( + [AssocNode(5...9)( + IntegerNode(5...6)(), + IntegerNode(8...9)(), + (6...8) + )] + )] + ), + (9...10), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_arg_assoc_kwsplat.txt b/test/yarp/snapshots/seattlerb/call_arg_assoc_kwsplat.txt new file mode 100644 index 0000000000..076fe7a8b2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_arg_assoc_kwsplat.txt @@ -0,0 +1,26 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...15)( + [IntegerNode(2...3)(), + KeywordHashNode(5...15)( + [AssocNode(5...10)( + SymbolNode(5...8)(nil, (5...7), (7...8), "kw"), + IntegerNode(9...10)(), + nil + ), + AssocSplatNode(12...15)(IntegerNode(14...15)(), (12...14))] + )] + ), + (15...16), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_arg_kwsplat.txt b/test/yarp/snapshots/seattlerb/call_arg_kwsplat.txt new file mode 100644 index 0000000000..9571678cf7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_arg_kwsplat.txt @@ -0,0 +1,21 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...8)( + [CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "b"), + KeywordHashNode(5...8)( + [AssocSplatNode(5...8)(IntegerNode(7...8)(), (5...7))] + )] + ), + (8...9), + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_args_assoc_quoted.txt b/test/yarp/snapshots/seattlerb/call_args_assoc_quoted.txt new file mode 100644 index 0000000000..792b07c41d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_args_assoc_quoted.txt @@ -0,0 +1,82 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [CallNode(0...11)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...11)( + [KeywordHashNode(2...11)( + [AssocNode(2...11)( + InterpolatedSymbolNode(2...9)( + (2...3), + [EmbeddedStatementsNode(3...7)( + (3...5), + StatementsNode(5...6)( + [CallNode(5...6)( + nil, + nil, + (5...6), + nil, + nil, + nil, + nil, + 0, + "k" + )] + ), + (6...7) + )], + (7...9) + ), + IntegerNode(9...11)(), + nil + )] + )] + ), + nil, + nil, + 0, + "x" + ), + CallNode(13...21)( + nil, + nil, + (13...14), + nil, + ArgumentsNode(15...21)( + [KeywordHashNode(15...21)( + [AssocNode(15...21)( + SymbolNode(15...19)((15...16), (16...17), (17...19), "k"), + IntegerNode(19...21)(), + nil + )] + )] + ), + nil, + nil, + 0, + "x" + ), + CallNode(23...31)( + nil, + nil, + (23...24), + nil, + ArgumentsNode(25...31)( + [KeywordHashNode(25...31)( + [AssocNode(25...31)( + SymbolNode(25...29)((25...26), (26...27), (27...29), "k"), + IntegerNode(29...31)(), + nil + )] + )] + ), + nil, + nil, + 0, + "x" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_args_assoc_trailing_comma.txt b/test/yarp/snapshots/seattlerb/call_args_assoc_trailing_comma.txt new file mode 100644 index 0000000000..432a7c0a44 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_args_assoc_trailing_comma.txt @@ -0,0 +1,25 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...11)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...9)( + [IntegerNode(2...3)(), + KeywordHashNode(5...9)( + [AssocNode(5...9)( + IntegerNode(5...6)(), + IntegerNode(8...9)(), + (6...8) + )] + )] + ), + (10...11), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_args_command.txt b/test/yarp/snapshots/seattlerb/call_args_command.txt new file mode 100644 index 0000000000..649e360f18 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_args_command.txt @@ -0,0 +1,28 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + ArgumentsNode(4...9)( + [CallNode(4...9)( + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "c"), + (5...6), + (6...7), + nil, + ArgumentsNode(8...9)([IntegerNode(8...9)()]), + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_array_arg.txt b/test/yarp/snapshots/seattlerb/call_array_arg.txt new file mode 100644 index 0000000000..ade225a9e6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_array_arg.txt @@ -0,0 +1,23 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + IntegerNode(0...1)(), + nil, + (2...4), + nil, + ArgumentsNode(5...13)( + [ArrayNode(5...13)( + [SymbolNode(6...8)((6...7), (7...8), nil, "b"), + SymbolNode(10...12)((10...11), (11...12), nil, "c")], + (5...6), + (12...13) + )] + ), + nil, + nil, + 0, + "==" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_array_block_call.txt b/test/yarp/snapshots/seattlerb/call_array_block_call.txt new file mode 100644 index 0000000000..460621a131 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_array_block_call.txt @@ -0,0 +1,33 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [CallNode(0...19)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...19)( + [ArrayNode(2...19)( + [NilNode(4...7)(), + CallNode(9...17)( + nil, + nil, + (9...10), + nil, + nil, + nil, + BlockNode(11...17)([], nil, nil, (11...13), (14...17)), + 0, + "b" + )], + (2...3), + (18...19) + )] + ), + nil, + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_array_lambda_block_call.txt b/test/yarp/snapshots/seattlerb/call_array_lambda_block_call.txt new file mode 100644 index 0000000000..1d8c2f1472 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_array_lambda_block_call.txt @@ -0,0 +1,27 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...11)( + [ArrayNode(2...11)( + [LambdaNode(3...10)( + [], + (3...5), + BlockParametersNode(5...7)(nil, [], (5...6), (6...7)), + nil + )], + (2...3), + (10...11) + )] + ), + nil, + BlockNode(12...18)([], nil, nil, (12...14), (15...18)), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_array_lit_inline_hash.txt b/test/yarp/snapshots/seattlerb/call_array_lit_inline_hash.txt new file mode 100644 index 0000000000..ef336c5a15 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_array_lit_inline_hash.txt @@ -0,0 +1,29 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...15)( + [ArrayNode(2...15)( + [SymbolNode(3...5)((3...4), (4...5), nil, "b"), + KeywordHashNode(7...14)( + [AssocNode(7...14)( + SymbolNode(7...9)((7...8), (8...9), nil, "c"), + IntegerNode(13...14)(), + (10...12) + )] + )], + (2...3), + (14...15) + )] + ), + (15...16), + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_assoc.txt b/test/yarp/snapshots/seattlerb/call_assoc.txt new file mode 100644 index 0000000000..bd6a6e286c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_assoc.txt @@ -0,0 +1,24 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...6)( + [KeywordHashNode(2...6)( + [AssocNode(2...6)( + IntegerNode(2...3)(), + IntegerNode(5...6)(), + (3...5) + )] + )] + ), + (6...7), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_assoc_new.txt b/test/yarp/snapshots/seattlerb/call_assoc_new.txt new file mode 100644 index 0000000000..525b3b1472 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_assoc_new.txt @@ -0,0 +1,24 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...5)( + [KeywordHashNode(2...5)( + [AssocNode(2...5)( + SymbolNode(2...4)(nil, (2...3), (3...4), "a"), + IntegerNode(4...5)(), + nil + )] + )] + ), + (5...6), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_assoc_new_if_multiline.txt b/test/yarp/snapshots/seattlerb/call_assoc_new_if_multiline.txt new file mode 100644 index 0000000000..5bfb5a0887 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_assoc_new_if_multiline.txt @@ -0,0 +1,34 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [CallNode(0...24)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...23)( + [KeywordHashNode(2...23)( + [AssocNode(2...23)( + SymbolNode(2...4)(nil, (2...3), (3...4), "b"), + IfNode(5...23)( + (5...7), + SymbolNode(8...10)((8...9), (9...10), nil, "c"), + StatementsNode(11...12)([IntegerNode(11...12)()]), + ElseNode(13...23)( + (13...17), + StatementsNode(18...19)([IntegerNode(18...19)()]), + (20...23) + ), + (20...23) + ), + nil + )] + )] + ), + (23...24), + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_assoc_trailing_comma.txt b/test/yarp/snapshots/seattlerb/call_assoc_trailing_comma.txt new file mode 100644 index 0000000000..0f68852c19 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_assoc_trailing_comma.txt @@ -0,0 +1,24 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...8)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...6)( + [KeywordHashNode(2...6)( + [AssocNode(2...6)( + IntegerNode(2...3)(), + IntegerNode(5...6)(), + (3...5) + )] + )] + ), + (7...8), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_bang_command_call.txt b/test/yarp/snapshots/seattlerb/call_bang_command_call.txt new file mode 100644 index 0000000000..37cf8e13af --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_bang_command_call.txt @@ -0,0 +1,26 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + CallNode(2...7)( + CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "a"), + (3...4), + (4...5), + nil, + ArgumentsNode(6...7)([IntegerNode(6...7)()]), + nil, + nil, + 0, + "b" + ), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_bang_squiggle.txt b/test/yarp/snapshots/seattlerb/call_bang_squiggle.txt new file mode 100644 index 0000000000..5614695771 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_bang_squiggle.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + IntegerNode(0...1)(), + nil, + (2...4), + nil, + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + nil, + nil, + 0, + "!~" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_begin_call_block_call.txt b/test/yarp/snapshots/seattlerb/call_begin_call_block_call.txt new file mode 100644 index 0000000000..7d0e92cf1d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_begin_call_block_call.txt @@ -0,0 +1,47 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [CallNode(0...22)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...22)( + [BeginNode(2...22)( + (2...7), + StatementsNode(8...18)( + [CallNode(8...18)( + CallNode(8...9)( + nil, + nil, + (8...9), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (9...10), + (10...11), + nil, + nil, + nil, + BlockNode(12...18)([], nil, nil, (12...14), (15...18)), + 0, + "c" + )] + ), + nil, + nil, + nil, + (19...22) + )] + ), + nil, + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_block_arg_named.txt b/test/yarp/snapshots/seattlerb/call_block_arg_named.txt new file mode 100644 index 0000000000..e0d6cc8e03 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_block_arg_named.txt @@ -0,0 +1,21 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...6)( + [BlockArgumentNode(2...6)( + CallNode(3...6)(nil, nil, (3...6), nil, nil, nil, nil, 0, "blk"), + (2...3) + )] + ), + (6...7), + nil, + 0, + "x" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_carat.txt b/test/yarp/snapshots/seattlerb/call_carat.txt new file mode 100644 index 0000000000..bea1ff7c68 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_carat.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + nil, + (2...3), + nil, + ArgumentsNode(4...5)([IntegerNode(4...5)()]), + nil, + nil, + 0, + "^" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_colon2.txt b/test/yarp/snapshots/seattlerb/call_colon2.txt new file mode 100644 index 0000000000..36955f3b23 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_colon2.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + ConstantReadNode(0...1)(), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_colon_parens.txt b/test/yarp/snapshots/seattlerb/call_colon_parens.txt new file mode 100644 index 0000000000..2e707afcfb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_colon_parens.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + (1...3), + (0...0), + (3...4), + nil, + (4...5), + nil, + 0, + "call" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_div.txt b/test/yarp/snapshots/seattlerb/call_div.txt new file mode 100644 index 0000000000..f7caf10414 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_div.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + nil, + (2...3), + nil, + ArgumentsNode(4...5)([IntegerNode(4...5)()]), + nil, + nil, + 0, + "/" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_dot_parens.txt b/test/yarp/snapshots/seattlerb/call_dot_parens.txt new file mode 100644 index 0000000000..5a32c3b9cf --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_dot_parens.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + IntegerNode(0...1)(), + (1...2), + (0...0), + (2...3), + nil, + (3...4), + nil, + 0, + "call" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_env.txt b/test/yarp/snapshots/seattlerb/call_env.txt new file mode 100644 index 0000000000..9f2860ab56 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_env.txt @@ -0,0 +1,16 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...7), + nil, + nil, + nil, + nil, + 0, + "happy" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_eq3.txt b/test/yarp/snapshots/seattlerb/call_eq3.txt new file mode 100644 index 0000000000..192a3c97c5 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_eq3.txt @@ -0,0 +1,16 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + IntegerNode(0...1)(), + nil, + (2...5), + nil, + ArgumentsNode(6...7)([IntegerNode(6...7)()]), + nil, + nil, + 0, + "===" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_gt.txt b/test/yarp/snapshots/seattlerb/call_gt.txt new file mode 100644 index 0000000000..9eadb5ee2f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_gt.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + nil, + (2...3), + nil, + ArgumentsNode(4...5)([IntegerNode(4...5)()]), + nil, + nil, + 0, + ">" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_kwsplat.txt b/test/yarp/snapshots/seattlerb/call_kwsplat.txt new file mode 100644 index 0000000000..c5b45b9cb2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_kwsplat.txt @@ -0,0 +1,20 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...5)( + [KeywordHashNode(2...5)( + [AssocSplatNode(2...5)(IntegerNode(4...5)(), (2...4))] + )] + ), + (5...6), + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_leading_dots.txt b/test/yarp/snapshots/seattlerb/call_leading_dots.txt new file mode 100644 index 0000000000..47f2c8e5c5 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_leading_dots.txt @@ -0,0 +1,26 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (2...3), + (3...4), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (5...6), + (6...7), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_leading_dots_comment.txt b/test/yarp/snapshots/seattlerb/call_leading_dots_comment.txt new file mode 100644 index 0000000000..0f64dd7e26 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_leading_dots_comment.txt @@ -0,0 +1,26 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...11)( + CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (2...3), + (3...4), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (9...10), + (10...11), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_lt.txt b/test/yarp/snapshots/seattlerb/call_lt.txt new file mode 100644 index 0000000000..11fcd8c44f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_lt.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + nil, + (2...3), + nil, + ArgumentsNode(4...5)([IntegerNode(4...5)()]), + nil, + nil, + 0, + "<" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_lte.txt b/test/yarp/snapshots/seattlerb/call_lte.txt new file mode 100644 index 0000000000..5ad45cbf0e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_lte.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + IntegerNode(0...1)(), + nil, + (2...4), + nil, + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + nil, + nil, + 0, + "<=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_not.txt b/test/yarp/snapshots/seattlerb/call_not.txt new file mode 100644 index 0000000000..d42b852ead --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_not.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + IntegerNode(4...6)(), + nil, + (0...3), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_pipe.txt b/test/yarp/snapshots/seattlerb/call_pipe.txt new file mode 100644 index 0000000000..e372fce6e5 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_pipe.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + nil, + (2...3), + nil, + ArgumentsNode(4...5)([IntegerNode(4...5)()]), + nil, + nil, + 0, + "|" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_rshift.txt b/test/yarp/snapshots/seattlerb/call_rshift.txt new file mode 100644 index 0000000000..9a523669eb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_rshift.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + IntegerNode(0...1)(), + nil, + (2...4), + nil, + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + nil, + nil, + 0, + ">>" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_self_brackets.txt b/test/yarp/snapshots/seattlerb/call_self_brackets.txt new file mode 100644 index 0000000000..7dfe5a50be --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_self_brackets.txt @@ -0,0 +1,16 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + SelfNode(0...4)(), + nil, + (4...7), + (4...5), + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + (6...7), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_spaceship.txt b/test/yarp/snapshots/seattlerb/call_spaceship.txt new file mode 100644 index 0000000000..a7ee865978 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_spaceship.txt @@ -0,0 +1,16 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + IntegerNode(0...1)(), + nil, + (2...5), + nil, + ArgumentsNode(6...7)([IntegerNode(6...7)()]), + nil, + nil, + 0, + "<=>" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_stabby_do_end_with_block.txt b/test/yarp/snapshots/seattlerb/call_stabby_do_end_with_block.txt new file mode 100644 index 0000000000..e48578da2a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_stabby_do_end_with_block.txt @@ -0,0 +1,29 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [CallNode(0...22)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...13)( + [LambdaNode(2...13)( + [], + (2...4), + nil, + StatementsNode(8...9)([IntegerNode(8...9)()]) + )] + ), + nil, + BlockNode(14...22)( + [], + nil, + StatementsNode(17...18)([IntegerNode(17...18)()]), + (14...16), + (19...22) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_stabby_with_braces_block.txt b/test/yarp/snapshots/seattlerb/call_stabby_with_braces_block.txt new file mode 100644 index 0000000000..36fbd7fb1a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_stabby_with_braces_block.txt @@ -0,0 +1,29 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [CallNode(0...19)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...10)( + [LambdaNode(2...10)( + [], + (2...4), + nil, + StatementsNode(7...8)([IntegerNode(7...8)()]) + )] + ), + nil, + BlockNode(11...19)( + [], + nil, + StatementsNode(14...15)([IntegerNode(14...15)()]), + (11...13), + (16...19) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_star.txt b/test/yarp/snapshots/seattlerb/call_star.txt new file mode 100644 index 0000000000..1e4683a882 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_star.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + nil, + (2...3), + nil, + ArgumentsNode(4...5)([IntegerNode(4...5)()]), + nil, + nil, + 0, + "*" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_star2.txt b/test/yarp/snapshots/seattlerb/call_star2.txt new file mode 100644 index 0000000000..d051c4a313 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_star2.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + IntegerNode(0...1)(), + nil, + (2...4), + nil, + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + nil, + nil, + 0, + "**" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_trailing_comma.txt b/test/yarp/snapshots/seattlerb/call_trailing_comma.txt new file mode 100644 index 0000000000..da971880af --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_trailing_comma.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...3)([IntegerNode(2...3)()]), + (4...5), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_trailing_dots.txt b/test/yarp/snapshots/seattlerb/call_trailing_dots.txt new file mode 100644 index 0000000000..929decb5f1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_trailing_dots.txt @@ -0,0 +1,26 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (3...4), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (4...5), + (6...7), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/call_unary_bang.txt b/test/yarp/snapshots/seattlerb/call_unary_bang.txt new file mode 100644 index 0000000000..e0de2a924f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/call_unary_bang.txt @@ -0,0 +1,16 @@ +ProgramNode(0...2)( + [], + StatementsNode(0...2)( + [CallNode(0...2)( + IntegerNode(1...2)(), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in.txt b/test/yarp/snapshots/seattlerb/case_in.txt new file mode 100644 index 0000000000..981905526c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in.txt @@ -0,0 +1,607 @@ +ProgramNode(0...746)( + [:b, :_, :lhs, :x, :rhs, :c, :e], + StatementsNode(0...746)( + [CaseNode(0...20)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...16)( + HashPatternNode(12...16)( + nil, + [AssocNode(12...16)( + SymbolNode(12...16)((12...13), (13...14), (14...16), "b"), + nil, + nil + )], + nil, + nil, + nil + ), + nil, + (8...10), + nil + )], + nil, + (0...4), + (17...20) + ), + CaseNode(22...44)( + SymbolNode(27...29)((27...28), (28...29), nil, "a"), + [InNode(30...40)( + ArrayNode(33...40)( + [SymbolNode(36...37)(nil, (36...37), nil, "a"), + SymbolNode(38...39)(nil, (38...39), nil, "b")], + (33...36), + (39...40) + ), + nil, + (30...32), + nil + )], + nil, + (22...26), + (41...44) + ), + CaseNode(46...68)( + SymbolNode(51...53)((51...52), (52...53), nil, "a"), + [InNode(54...64)( + ArrayNode(57...64)( + [StringNode(60...61)(nil, (60...61), nil, "a"), + StringNode(62...63)(nil, (62...63), nil, "b")], + (57...60), + (63...64) + ), + nil, + (54...56), + nil + )], + nil, + (46...50), + (65...68) + ), + CaseNode(70...92)( + SymbolNode(75...77)((75...76), (76...77), nil, "a"), + [InNode(78...88)( + ArrayNode(81...88)( + [SymbolNode(84...85)(nil, (84...85), nil, "a"), + SymbolNode(86...87)(nil, (86...87), nil, "b")], + (81...84), + (87...88) + ), + nil, + (78...80), + nil + )], + nil, + (70...74), + (89...92) + ), + CaseNode(94...116)( + SymbolNode(99...101)((99...100), (100...101), nil, "a"), + [InNode(102...112)( + ArrayNode(105...112)( + [StringNode(108...109)(nil, (108...109), nil, "a"), + StringNode(110...111)(nil, (110...111), nil, "b")], + (105...108), + (111...112) + ), + nil, + (102...104), + nil + )], + nil, + (94...98), + (113...116) + ), + CaseNode(118...140)( + SymbolNode(123...125)((123...124), (124...125), nil, "a"), + [InNode(126...135)( + RangeNode(130...135)(nil, IntegerNode(133...135)(), (130...133), 1), + nil, + (126...128), + nil + )], + nil, + (118...122), + (137...140) + ), + CaseNode(142...163)( + SymbolNode(147...149)((147...148), (148...149), nil, "a"), + [InNode(150...158)( + RangeNode(154...158)(nil, IntegerNode(156...158)(), (154...156), 0), + nil, + (150...152), + nil + )], + nil, + (142...146), + (160...163) + ), + CaseNode(165...186)( + SymbolNode(170...172)((170...171), (171...172), nil, "a"), + [InNode(173...181)( + RangeNode(177...181)(IntegerNode(177...178)(), nil, (178...181), 1), + nil, + (173...175), + nil + )], + nil, + (165...169), + (183...186) + ), + CaseNode(188...210)( + SymbolNode(193...195)((193...194), (194...195), nil, "a"), + [InNode(196...205)( + RangeNode(200...205)( + IntegerNode(200...201)(), + IntegerNode(204...205)(), + (201...204), + 1 + ), + nil, + (196...198), + nil + )], + nil, + (188...192), + (207...210) + ), + CaseNode(212...231)( + SymbolNode(217...219)((217...218), (218...219), nil, "a"), + [InNode(220...226)(IntegerNode(224...226)(), nil, (220...222), nil)], + nil, + (212...216), + (228...231) + ), + CaseNode(233...253)( + SymbolNode(238...240)((238...239), (239...240), nil, "a"), + [InNode(241...249)( + HashPatternNode(244...249)( + nil, + [NoKeywordsParameterNode(244...249)((244...246), (246...249))], + nil, + nil, + nil + ), + nil, + (241...243), + nil + )], + nil, + (233...237), + (250...253) + ), + CaseNode(255...278)( + SymbolNode(260...262)((260...261), (261...262), nil, "a"), + [InNode(263...274)( + RegularExpressionNode(266...274)( + (266...267), + (267...273), + (273...274), + "regexp", + 0 + ), + nil, + (263...265), + nil + )], + nil, + (255...259), + (275...278) + ), + CaseNode(280...305)( + SymbolNode(285...287)((285...286), (286...287), nil, "a"), + [InNode(288...301)( + ArrayPatternNode(291...301)( + nil, + [SymbolNode(291...293)((291...292), (292...293), nil, "b")], + SplatNode(295...297)( + (295...296), + LocalVariableWriteNode(296...297)(:_, 0, nil, (296...297), nil) + ), + [SymbolNode(299...301)((299...300), (300...301), nil, "c")], + nil, + nil + ), + nil, + (288...290), + nil + )], + nil, + (280...284), + (302...305) + ), + CaseNode(307...330)( + SymbolNode(312...314)((312...313), (313...314), nil, "a"), + [InNode(315...326)( + ArrayPatternNode(318...326)( + nil, + [SymbolNode(318...320)((318...319), (319...320), nil, "b"), + ArrayPatternNode(322...326)( + nil, + [SymbolNode(323...325)((323...324), (324...325), nil, "c")], + nil, + [], + (322...323), + (325...326) + )], + nil, + [], + nil, + nil + ), + nil, + (315...317), + nil + )], + nil, + (307...311), + (327...330) + ), + CaseNode(332...355)( + SymbolNode(337...339)((337...338), (338...339), nil, "a"), + [InNode(340...351)( + ArrayPatternNode(343...351)( + ConstantReadNode(343...349)(), + [], + nil, + [], + (349...350), + (350...351) + ), + nil, + (340...342), + nil + )], + nil, + (332...336), + (352...355) + ), + CaseNode(357...393)( + SymbolNode(362...364)((362...363), (363...364), nil, "a"), + [InNode(365...389)( + FindPatternNode(368...389)( + ConstantReadNode(368...374)(), + SplatNode(375...379)( + (375...376), + LocalVariableWriteNode(376...379)(:lhs, 0, nil, (376...379), nil) + ), + [LocalVariableWriteNode(381...382)(:x, 0, nil, (381...382), nil)], + SplatNode(384...388)( + (384...385), + LocalVariableWriteNode(385...388)(:rhs, 0, nil, (385...388), nil) + ), + (374...375), + (388...389) + ), + nil, + (365...367), + nil + )], + nil, + (357...361), + (390...393) + ), + CaseNode(395...431)( + SymbolNode(400...402)((400...401), (401...402), nil, "a"), + [InNode(403...427)( + FindPatternNode(406...427)( + ConstantReadNode(406...412)(), + SplatNode(413...417)( + (413...414), + LocalVariableWriteNode(414...417)(:lhs, 0, nil, (414...417), nil) + ), + [LocalVariableWriteNode(419...420)(:x, 0, nil, (419...420), nil)], + SplatNode(422...426)( + (422...423), + LocalVariableWriteNode(423...426)(:rhs, 0, nil, (423...426), nil) + ), + (412...413), + (426...427) + ), + nil, + (403...405), + nil + )], + nil, + (395...399), + (428...431) + ), + CaseNode(433...467)( + SymbolNode(438...440)((438...439), (439...440), nil, "a"), + [InNode(441...463)( + ArrayPatternNode(444...463)( + nil, + [LambdaNode(445...459)( + [:b], + (445...447), + BlockParametersNode(447...450)( + ParametersNode(448...449)( + [RequiredParameterNode(448...449)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (447...448), + (449...450) + ), + StatementsNode(453...457)([TrueNode(453...457)()]) + ), + LocalVariableWriteNode(461...462)(:c, 0, nil, (461...462), nil)], + nil, + [], + (444...445), + (462...463) + ), + nil, + (441...443), + nil + )], + nil, + (433...437), + (464...467) + ), + CaseNode(469...509)( + SymbolNode(474...476)((474...475), (475...476), nil, "a"), + [InNode(477...505)( + ArrayPatternNode(480...505)( + nil, + [SymbolNode(481...483)((481...482), (482...483), nil, "a"), + LocalVariableWriteNode(485...486)(:b, 0, nil, (485...486), nil), + LocalVariableWriteNode(488...489)(:c, 0, nil, (488...489), nil), + ArrayPatternNode(491...504)( + nil, + [SymbolNode(492...494)((492...493), (493...494), nil, "d")], + SplatNode(496...498)( + (496...497), + LocalVariableWriteNode(497...498)( + :e, + 0, + nil, + (497...498), + nil + ) + ), + [NilNode(500...503)()], + (491...492), + (503...504) + )], + nil, + [], + (480...481), + (504...505) + ), + nil, + (477...479), + nil + )], + nil, + (469...473), + (506...509) + ), + CaseNode(511...535)( + SymbolNode(516...518)((516...517), (517...518), nil, "a"), + [InNode(519...531)( + ArrayPatternNode(522...531)( + nil, + [ConstantReadNode(523...524)()], + SplatNode(526...527)((526...527), nil), + [ConstantReadNode(529...530)()], + (522...523), + (530...531) + ), + nil, + (519...521), + nil + )], + nil, + (511...515), + (532...535) + ), + CaseNode(537...571)( + SymbolNode(542...544)((542...543), (543...544), nil, "a"), + [InNode(545...567)( + ArrayPatternNode(548...567)( + nil, + [ArrayPatternNode(549...556)( + nil, + [SymbolNode(550...552)((550...551), (551...552), nil, "b"), + LocalVariableWriteNode(554...555)( + :c, + 0, + nil, + (554...555), + nil + )], + nil, + [], + (549...550), + (555...556) + ), + ArrayPatternNode(558...566)( + nil, + [SymbolNode(559...561)((559...560), (560...561), nil, "d"), + PinnedVariableNode(563...565)( + LocalVariableReadNode(564...565)(:e, 0), + (563...564) + )], + nil, + [], + (558...559), + (565...566) + )], + nil, + [], + (548...549), + (566...567) + ), + nil, + (545...547), + nil + )], + nil, + (537...541), + (568...571) + ), + CaseNode(573...590)( + SymbolNode(578...580)((578...579), (579...580), nil, "a"), + [InNode(581...586)( + ArrayPatternNode(584...586)( + nil, + [], + nil, + [], + (584...585), + (585...586) + ), + nil, + (581...583), + nil + )], + nil, + (573...577), + (587...590) + ), + CaseNode(592...613)( + SymbolNode(597...599)((597...598), (598...599), nil, "a"), + [InNode(600...609)( + ArrayPatternNode(603...609)( + nil, + [PinnedExpressionNode(604...608)( + CallNode(606...607)( + nil, + nil, + (606...607), + nil, + nil, + nil, + nil, + 0, + "a" + ), + (604...605), + (605...606), + (607...608) + )], + nil, + [], + (603...604), + (608...609) + ), + nil, + (600...602), + nil + )], + nil, + (592...596), + (610...613) + ), + CaseNode(615...646)( + SymbolNode(620...622)((620...621), (621...622), nil, "a"), + [InNode(623...642)( + ArrayPatternNode(626...642)( + nil, + [PinnedVariableNode(627...630)( + InstanceVariableReadNode(628...630)(), + (627...628) + ), + PinnedVariableNode(632...635)( + GlobalVariableReadNode(633...635)(), + (632...633) + ), + PinnedVariableNode(637...641)( + ClassVariableReadNode(638...641)(), + (637...638) + )], + nil, + [], + (626...627), + (641...642) + ), + nil, + (623...625), + nil + )], + nil, + (615...619), + (643...646) + ), + CaseNode(648...672)( + SymbolNode(653...655)((653...654), (654...655), nil, "a"), + [InNode(656...668)( + XStringNode(659...668)( + (659...660), + (660...667), + (667...668), + "echo hi" + ), + nil, + (656...658), + nil + )], + nil, + (648...652), + (669...672) + ), + CaseNode(674...702)( + SymbolNode(679...681)((679...680), (680...681), nil, "a"), + [InNode(682...698)( + ArrayPatternNode(685...698)( + nil, + [NilNode(685...688)(), NilNode(690...693)(), NilNode(695...698)()], + nil, + [], + nil, + nil + ), + nil, + (682...684), + nil + )], + nil, + (674...678), + (699...702) + ), + CaseNode(704...727)( + SymbolNode(709...711)((709...710), (710...711), nil, "a"), + [InNode(712...723)( + HashPatternNode(715...723)( + nil, + [AssocNode(717...721)( + SymbolNode(717...721)( + (717...718), + (718...719), + (719...721), + "b" + ), + nil, + nil + )], + nil, + (715...716), + (722...723) + ), + nil, + (712...714), + nil + )], + nil, + (704...708), + (724...727) + ), + CaseNode(729...746)( + SymbolNode(734...736)((734...735), (735...736), nil, "a"), + [InNode(737...742)( + HashPatternNode(740...742)(nil, [], nil, (740...741), (741...742)), + nil, + (737...739), + nil + )], + nil, + (729...733), + (743...746) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_31.txt b/test/yarp/snapshots/seattlerb/case_in_31.txt new file mode 100644 index 0000000000..26ff5c913f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_31.txt @@ -0,0 +1,29 @@ +ProgramNode(0...28)( + [:c], + StatementsNode(0...28)( + [CaseNode(0...28)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...24)( + ArrayPatternNode(11...19)( + nil, + [SymbolNode(12...14)((12...13), (13...14), nil, "b")], + SplatNode(16...18)( + (16...17), + LocalVariableWriteNode(17...18)(:c, 0, nil, (17...18), nil) + ), + [], + (11...12), + (18...19) + ), + StatementsNode(22...24)( + [SymbolNode(22...24)((22...23), (23...24), nil, "d")] + ), + (8...10), + nil + )], + nil, + (0...4), + (25...28) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_37.txt b/test/yarp/snapshots/seattlerb/case_in_37.txt new file mode 100644 index 0000000000..721c6173d5 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_37.txt @@ -0,0 +1,36 @@ +ProgramNode(0...36)( + [], + StatementsNode(0...36)( + [CaseNode(0...36)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...32)( + HashPatternNode(11...27)( + nil, + [AssocNode(13...25)( + SymbolNode(13...15)(nil, (13...14), (14...15), "b"), + ArrayPatternNode(16...25)( + nil, + [ConstantReadNode(17...21)()], + SplatNode(23...24)((23...24), nil), + [], + (16...17), + (24...25) + ), + nil + )], + nil, + (11...12), + (26...27) + ), + StatementsNode(30...32)( + [SymbolNode(30...32)((30...31), (31...32), nil, "c")] + ), + (8...10), + nil + )], + nil, + (0...4), + (33...36) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_42.txt b/test/yarp/snapshots/seattlerb/case_in_42.txt new file mode 100644 index 0000000000..7cd17bb0e1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_42.txt @@ -0,0 +1,27 @@ +ProgramNode(0...30)( + [:_], + StatementsNode(0...30)( + [CaseNode(0...30)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...26)( + ArrayPatternNode(11...17)( + nil, + [SymbolNode(11...13)((11...12), (12...13), nil, "b")], + SplatNode(15...17)( + (15...16), + LocalVariableWriteNode(16...17)(:_, 0, nil, (16...17), nil) + ), + [], + nil, + nil + ), + StatementsNode(23...26)([NilNode(23...26)()]), + (8...10), + (18...22) + )], + nil, + (0...4), + (27...30) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_42_2.txt b/test/yarp/snapshots/seattlerb/case_in_42_2.txt new file mode 100644 index 0000000000..7c0c87e98c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_42_2.txt @@ -0,0 +1,27 @@ +ProgramNode(0...32)( + [:list], + StatementsNode(0...32)( + [CaseNode(0...32)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...28)( + ArrayPatternNode(11...19)( + ConstantReadNode(11...12)(), + [], + SplatNode(13...18)( + (13...14), + LocalVariableWriteNode(14...18)(:list, 0, nil, (14...18), nil) + ), + [], + (12...13), + (18...19) + ), + StatementsNode(25...28)([NilNode(25...28)()]), + (8...10), + (20...24) + )], + nil, + (0...4), + (29...32) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_47.txt b/test/yarp/snapshots/seattlerb/case_in_47.txt new file mode 100644 index 0000000000..727efebdde --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_47.txt @@ -0,0 +1,27 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [CaseNode(0...31)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...27)( + ArrayPatternNode(11...22)( + nil, + [], + SplatNode(12...13)((12...13), nil), + [SymbolNode(15...17)((15...16), (16...17), nil, "b"), + SymbolNode(19...21)((19...20), (20...21), nil, "c")], + (11...12), + (21...22) + ), + StatementsNode(25...27)( + [SymbolNode(25...27)((25...26), (26...27), nil, "d")] + ), + (8...10), + nil + )], + nil, + (0...4), + (28...31) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_67.txt b/test/yarp/snapshots/seattlerb/case_in_67.txt new file mode 100644 index 0000000000..094d6711aa --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_67.txt @@ -0,0 +1,17 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [CaseNode(0...27)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...23)( + RangeNode(11...14)(IntegerNode(11...12)(), nil, (12...14), 0), + StatementsNode(20...23)([NilNode(20...23)()]), + (8...10), + (15...19) + )], + nil, + (0...4), + (24...27) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_86.txt b/test/yarp/snapshots/seattlerb/case_in_86.txt new file mode 100644 index 0000000000..0475e9ef9a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_86.txt @@ -0,0 +1,33 @@ +ProgramNode(0...43)( + [], + StatementsNode(0...43)( + [CaseNode(0...43)( + ArrayNode(5...13)( + [SymbolNode(6...8)((6...7), (7...8), nil, "a"), + SymbolNode(10...12)((10...11), (11...12), nil, "b")], + (5...6), + (12...13) + ), + [InNode(14...39)( + ArrayPatternNode(17...30)( + nil, + [ConstantPathNode(17...27)( + nil, + ConstantReadNode(19...27)(), + (17...19) + )], + SplatNode(29...30)((29...30), nil), + [], + nil, + nil + ), + StatementsNode(36...39)([NilNode(36...39)()]), + (14...16), + (31...35) + )], + nil, + (0...4), + (40...43) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_86_2.txt b/test/yarp/snapshots/seattlerb/case_in_86_2.txt new file mode 100644 index 0000000000..067835c5be --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_86_2.txt @@ -0,0 +1,33 @@ +ProgramNode(0...43)( + [], + StatementsNode(0...43)( + [CaseNode(0...43)( + ArrayNode(5...13)( + [SymbolNode(6...8)((6...7), (7...8), nil, "a"), + SymbolNode(10...12)((10...11), (11...12), nil, "b")], + (5...6), + (12...13) + ), + [InNode(14...39)( + ArrayPatternNode(17...30)( + nil, + [], + SplatNode(17...18)((17...18), nil), + [ConstantPathNode(20...30)( + nil, + ConstantReadNode(22...30)(), + (20...22) + )], + nil, + nil + ), + StatementsNode(36...39)([NilNode(36...39)()]), + (14...16), + (31...35) + )], + nil, + (0...4), + (40...43) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_array_pat_const.txt b/test/yarp/snapshots/seattlerb/case_in_array_pat_const.txt new file mode 100644 index 0000000000..b8eee48203 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_array_pat_const.txt @@ -0,0 +1,26 @@ +ProgramNode(0...24)( + [:c], + StatementsNode(0...24)( + [CaseNode(0...24)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...20)( + ArrayPatternNode(11...15)( + ConstantReadNode(11...12)(), + [LocalVariableWriteNode(13...14)(:c, 0, nil, (13...14), nil)], + nil, + [], + (12...13), + (14...15) + ), + StatementsNode(18...20)( + [SymbolNode(18...20)((18...19), (19...20), nil, "d")] + ), + (8...10), + nil + )], + nil, + (0...4), + (21...24) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_array_pat_const2.txt b/test/yarp/snapshots/seattlerb/case_in_array_pat_const2.txt new file mode 100644 index 0000000000..2e29ef9d16 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_array_pat_const2.txt @@ -0,0 +1,30 @@ +ProgramNode(0...27)( + [:d], + StatementsNode(0...27)( + [CaseNode(0...27)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...23)( + ArrayPatternNode(11...18)( + ConstantPathNode(11...15)( + ConstantReadNode(11...12)(), + ConstantReadNode(14...15)(), + (12...14) + ), + [LocalVariableWriteNode(16...17)(:d, 0, nil, (16...17), nil)], + nil, + [], + (15...16), + (17...18) + ), + StatementsNode(21...23)( + [SymbolNode(21...23)((21...22), (22...23), nil, "e")] + ), + (8...10), + nil + )], + nil, + (0...4), + (24...27) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_array_pat_paren_assign.txt b/test/yarp/snapshots/seattlerb/case_in_array_pat_paren_assign.txt new file mode 100644 index 0000000000..85b069fb00 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_array_pat_paren_assign.txt @@ -0,0 +1,30 @@ +ProgramNode(0...29)( + [:d], + StatementsNode(0...29)( + [CaseNode(0...29)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...25)( + ArrayPatternNode(11...20)( + ConstantReadNode(11...12)(), + [CapturePatternNode(13...19)( + ConstantReadNode(13...14)(), + LocalVariableWriteNode(18...19)(:d, 0, nil, (18...19), nil), + (15...17) + )], + nil, + [], + (12...13), + (19...20) + ), + StatementsNode(23...25)( + [SymbolNode(23...25)((23...24), (24...25), nil, "d")] + ), + (8...10), + nil + )], + nil, + (0...4), + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_const.txt b/test/yarp/snapshots/seattlerb/case_in_const.txt new file mode 100644 index 0000000000..3f8dde74fd --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_const.txt @@ -0,0 +1,19 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CaseNode(0...28)( + ConstantReadNode(5...10)(), + [InNode(11...24)( + ConstantReadNode(14...19)(), + StatementsNode(22...24)( + [SymbolNode(22...24)((22...23), (23...24), nil, "b")] + ), + (11...13), + nil + )], + nil, + (0...4), + (25...28) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_else.txt b/test/yarp/snapshots/seattlerb/case_in_else.txt new file mode 100644 index 0000000000..fe2e6e7ee9 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_else.txt @@ -0,0 +1,25 @@ +ProgramNode(0...38)( + [], + StatementsNode(0...38)( + [CaseNode(0...38)( + ConstantReadNode(5...10)(), + [InNode(11...24)( + ConstantReadNode(14...19)(), + StatementsNode(22...24)( + [SymbolNode(22...24)((22...23), (23...24), nil, "b")] + ), + (11...13), + nil + )], + ElseNode(25...38)( + (25...29), + StatementsNode(32...34)( + [SymbolNode(32...34)((32...33), (33...34), nil, "c")] + ), + (35...38) + ), + (0...4), + (35...38) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_find.txt b/test/yarp/snapshots/seattlerb/case_in_find.txt new file mode 100644 index 0000000000..2d36642369 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_find.txt @@ -0,0 +1,30 @@ +ProgramNode(0...27)( + [:a, :b], + StatementsNode(0...27)( + [CaseNode(0...27)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(10...23)( + FindPatternNode(13...23)( + nil, + SplatNode(13...15)( + (13...14), + LocalVariableWriteNode(14...15)(:a, 0, nil, (14...15), nil) + ), + [SymbolNode(17...19)((17...18), (18...19), nil, "+")], + SplatNode(21...23)( + (21...22), + LocalVariableWriteNode(22...23)(:b, 0, nil, (22...23), nil) + ), + nil, + nil + ), + nil, + (10...12), + nil + )], + nil, + (0...4), + (24...27) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_find_array.txt b/test/yarp/snapshots/seattlerb/case_in_find_array.txt new file mode 100644 index 0000000000..410fda576a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_find_array.txt @@ -0,0 +1,25 @@ +ProgramNode(0...28)( + [:c], + StatementsNode(0...28)( + [CaseNode(0...28)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...24)( + FindPatternNode(11...24)( + nil, + SplatNode(12...13)((12...13), nil), + [SymbolNode(15...17)((15...16), (16...17), nil, "b"), + LocalVariableWriteNode(19...20)(:c, 0, nil, (19...20), nil)], + SplatNode(22...23)((22...23), nil), + (11...12), + (23...24) + ), + nil, + (8...10), + nil + )], + nil, + (0...4), + (25...28) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat.txt new file mode 100644 index 0000000000..b7c8e7eb82 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat.txt @@ -0,0 +1,34 @@ +ProgramNode(0...43)( + [], + StatementsNode(0...43)( + [CaseNode(0...43)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...39)( + HashPatternNode(11...29)( + nil, + [AssocNode(13...19)( + SymbolNode(13...15)(nil, (13...14), (14...15), "b"), + StringNode(16...19)((16...17), (17...18), (18...19), "c"), + nil + ), + AssocNode(21...27)( + SymbolNode(21...23)(nil, (21...22), (22...23), "d"), + StringNode(24...27)((24...25), (25...26), (26...27), "e"), + nil + )], + nil, + (11...12), + (28...29) + ), + StatementsNode(37...39)( + [SymbolNode(37...39)((37...38), (38...39), nil, "f")] + ), + (8...10), + (30...34) + )], + nil, + (0...4), + (40...43) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat_assign.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat_assign.txt new file mode 100644 index 0000000000..92933ca071 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat_assign.txt @@ -0,0 +1,43 @@ +ProgramNode(0...56)( + [:x, :f], + StatementsNode(0...56)( + [CaseNode(0...56)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...52)( + HashPatternNode(11...42)( + nil, + [AssocNode(13...28)( + SymbolNode(13...15)(nil, (13...14), (14...15), "b"), + CapturePatternNode(16...28)( + ConstantReadNode(16...23)(), + LocalVariableWriteNode(27...28)(:x, 0, nil, (27...28), nil), + (24...26) + ), + nil + ), + AssocNode(30...36)( + SymbolNode(30...32)(nil, (30...31), (31...32), "d"), + StringNode(33...36)((33...34), (34...35), (35...36), "e"), + nil + ), + AssocNode(38...40)( + SymbolNode(38...40)(nil, (38...39), (39...40), "f"), + nil, + nil + )], + nil, + (11...12), + (41...42) + ), + StatementsNode(50...52)( + [SymbolNode(50...52)((50...51), (51...52), nil, "g")] + ), + (8...10), + (43...47) + )], + nil, + (0...4), + (53...56) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt new file mode 100644 index 0000000000..2b822fdd44 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt @@ -0,0 +1,29 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CaseNode(0...28)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...24)( + HashPatternNode(11...19)( + ConstantReadNode(11...12)(), + [AssocNode(13...18)( + SymbolNode(13...15)(nil, (13...14), (14...15), "a"), + IntegerNode(16...18)(), + nil + )], + nil, + (12...13), + (18...19) + ), + StatementsNode(22...24)( + [SymbolNode(22...24)((22...23), (23...24), nil, "d")] + ), + (8...10), + nil + )], + nil, + (0...4), + (25...28) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat_paren_true.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat_paren_true.txt new file mode 100644 index 0000000000..c1bc104eff --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat_paren_true.txt @@ -0,0 +1,29 @@ +ProgramNode(0...32)( + [], + StatementsNode(0...32)( + [CaseNode(0...32)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...28)( + HashPatternNode(11...18)( + nil, + [AssocNode(11...18)( + SymbolNode(11...13)(nil, (11...12), (12...13), "b"), + TrueNode(14...18)(), + nil + )], + nil, + nil, + nil + ), + StatementsNode(26...28)( + [SymbolNode(26...28)((26...27), (27...28), nil, "c")] + ), + (8...10), + (19...23) + )], + nil, + (0...4), + (29...32) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest.txt new file mode 100644 index 0000000000..ed7b166852 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest.txt @@ -0,0 +1,33 @@ +ProgramNode(0...35)( + [:c, :rest], + StatementsNode(0...35)( + [CaseNode(0...35)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...31)( + HashPatternNode(11...23)( + nil, + [AssocNode(11...15)( + SymbolNode(11...13)(nil, (11...12), (12...13), "b"), + LocalVariableWriteNode(14...15)(:c, 0, nil, (14...15), nil), + nil + ), + AssocSplatNode(17...23)( + LocalVariableWriteNode(19...23)(:rest, 0, nil, (19...23), nil), + (17...19) + )], + nil, + nil, + nil + ), + StatementsNode(29...31)( + [SymbolNode(29...31)((29...30), (30...31), nil, "d")] + ), + (8...10), + (24...28) + )], + nil, + (0...4), + (32...35) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt b/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt new file mode 100644 index 0000000000..7bdc02e6fb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt @@ -0,0 +1,28 @@ +ProgramNode(0...29)( + [:rest], + StatementsNode(0...29)( + [CaseNode(0...29)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...25)( + HashPatternNode(11...17)( + nil, + [AssocSplatNode(11...17)( + LocalVariableWriteNode(13...17)(:rest, 0, nil, (13...17), nil), + (11...13) + )], + nil, + nil, + nil + ), + StatementsNode(23...25)( + [SymbolNode(23...25)((23...24), (24...25), nil, "d")] + ), + (8...10), + (18...22) + )], + nil, + (0...4), + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_if_unless_post_mod.txt b/test/yarp/snapshots/seattlerb/case_in_if_unless_post_mod.txt new file mode 100644 index 0000000000..5091c3d7f9 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_if_unless_post_mod.txt @@ -0,0 +1,39 @@ +ProgramNode(0...52)( + [], + StatementsNode(0...52)( + [CaseNode(0...52)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...25)( + IfNode(11...20)( + (13...15), + TrueNode(16...20)(), + StatementsNode(11...12)([ConstantReadNode(11...12)()]), + nil, + nil + ), + StatementsNode(23...25)( + [SymbolNode(23...25)((23...24), (24...25), nil, "C")] + ), + (8...10), + nil + ), + InNode(26...48)( + UnlessNode(29...43)( + (31...37), + FalseNode(38...43)(), + StatementsNode(29...30)([ConstantReadNode(29...30)()]), + nil, + nil + ), + StatementsNode(46...48)( + [SymbolNode(46...48)((46...47), (47...48), nil, "E")] + ), + (26...28), + nil + )], + nil, + (0...4), + (49...52) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_multiple.txt b/test/yarp/snapshots/seattlerb/case_in_multiple.txt new file mode 100644 index 0000000000..e35b87ff5c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_multiple.txt @@ -0,0 +1,35 @@ +ProgramNode(0...37)( + [], + StatementsNode(0...37)( + [CaseNode(0...37)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...20)( + ConstantPathNode(11...15)( + ConstantReadNode(11...12)(), + ConstantReadNode(14...15)(), + (12...14) + ), + StatementsNode(18...20)( + [SymbolNode(18...20)((18...19), (19...20), nil, "C")] + ), + (8...10), + nil + ), + InNode(21...33)( + ConstantPathNode(24...28)( + ConstantReadNode(24...25)(), + ConstantReadNode(27...28)(), + (25...27) + ), + StatementsNode(31...33)( + [SymbolNode(31...33)((31...32), (32...33), nil, "F")] + ), + (21...23), + nil + )], + nil, + (0...4), + (34...37) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/case_in_or.txt b/test/yarp/snapshots/seattlerb/case_in_or.txt new file mode 100644 index 0000000000..a8c251b414 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/case_in_or.txt @@ -0,0 +1,23 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [CaseNode(0...25)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...21)( + AlternationPatternNode(11...16)( + ConstantReadNode(11...12)(), + ConstantReadNode(15...16)(), + (13...14) + ), + StatementsNode(19...21)( + [SymbolNode(19...21)((19...20), (20...21), nil, "d")] + ), + (8...10), + nil + )], + nil, + (0...4), + (22...25) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/class_comments.txt b/test/yarp/snapshots/seattlerb/class_comments.txt new file mode 100644 index 0000000000..12b347ee8a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/class_comments.txt @@ -0,0 +1,28 @@ +ProgramNode(19...71)( + [], + StatementsNode(19...71)( + [ClassNode(19...71)( + [], + (19...24), + ConstantReadNode(25...26)(), + nil, + nil, + StatementsNode(40...67)( + [DefNode(40...67)( + (44...48), + nil, + nil, + nil, + [], + (40...43), + nil, + nil, + nil, + nil, + (64...67) + )] + ), + (68...71) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/cond_unary_minus.txt b/test/yarp/snapshots/seattlerb/cond_unary_minus.txt new file mode 100644 index 0000000000..79d8f4a09a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/cond_unary_minus.txt @@ -0,0 +1,22 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [IfNode(0...10)( + (0...2), + CallNode(3...5)( + IntegerNode(4...5)(), + nil, + (3...4), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + nil, + nil, + (7...10) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/const_2_op_asgn_or2.txt b/test/yarp/snapshots/seattlerb/const_2_op_asgn_or2.txt new file mode 100644 index 0000000000..dfaac5447c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/const_2_op_asgn_or2.txt @@ -0,0 +1,14 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [ConstantPathOperatorOrWriteNode(0...12)( + ConstantPathNode(0...6)( + ConstantPathNode(0...3)(nil, ConstantReadNode(2...3)(), (0...2)), + ConstantReadNode(5...6)(), + (3...5) + ), + (7...10), + IntegerNode(11...12)() + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/const_3_op_asgn_or.txt b/test/yarp/snapshots/seattlerb/const_3_op_asgn_or.txt new file mode 100644 index 0000000000..c9d4dbfe31 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/const_3_op_asgn_or.txt @@ -0,0 +1,10 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [ConstantPathOperatorOrWriteNode(0...9)( + ConstantPathNode(0...3)(nil, ConstantReadNode(2...3)(), (0...2)), + (4...7), + IntegerNode(8...9)() + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/const_op_asgn_and1.txt b/test/yarp/snapshots/seattlerb/const_op_asgn_and1.txt new file mode 100644 index 0000000000..1e7dce0226 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/const_op_asgn_and1.txt @@ -0,0 +1,11 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [ConstantPathOperatorWriteNode(0...8)( + ConstantPathNode(0...3)(nil, ConstantReadNode(2...3)(), (0...2)), + (4...6), + IntegerNode(7...8)(), + :& + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/const_op_asgn_and2.txt b/test/yarp/snapshots/seattlerb/const_op_asgn_and2.txt new file mode 100644 index 0000000000..85739dac2d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/const_op_asgn_and2.txt @@ -0,0 +1,10 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [ConstantPathOperatorAndWriteNode(0...9)( + ConstantPathNode(0...3)(nil, ConstantReadNode(2...3)(), (0...2)), + (4...7), + IntegerNode(8...9)() + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/const_op_asgn_or.txt b/test/yarp/snapshots/seattlerb/const_op_asgn_or.txt new file mode 100644 index 0000000000..d1bfe6cd4d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/const_op_asgn_or.txt @@ -0,0 +1,14 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [ConstantPathOperatorOrWriteNode(0...10)( + ConstantPathNode(0...4)( + ConstantReadNode(0...1)(), + ConstantReadNode(3...4)(), + (1...3) + ), + (5...8), + IntegerNode(9...10)() + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dasgn_icky2.txt b/test/yarp/snapshots/seattlerb/dasgn_icky2.txt new file mode 100644 index 0000000000..26d5ca491c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dasgn_icky2.txt @@ -0,0 +1,47 @@ +ProgramNode(0...76)( + [], + StatementsNode(0...76)( + [CallNode(0...76)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...76)( + [:v], + nil, + StatementsNode(7...72)( + [LocalVariableWriteNode(7...14)( + :v, + 0, + NilNode(11...14)(), + (7...8), + (9...10) + ), + BeginNode(17...72)( + (17...22), + StatementsNode(27...32)( + [YieldNode(27...32)((27...32), nil, nil, nil)] + ), + RescueNode(35...66)( + (35...41), + [ConstantReadNode(42...51)()], + (52...54), + LocalVariableWriteNode(55...56)(:v, 0, nil, (55...56), nil), + StatementsNode(61...66)([BreakNode(61...66)(nil, (61...66))]), + nil + ), + nil, + nil, + (69...72) + )] + ), + (2...4), + (73...76) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defined_eh_parens.txt b/test/yarp/snapshots/seattlerb/defined_eh_parens.txt new file mode 100644 index 0000000000..5aedca1fbb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defined_eh_parens.txt @@ -0,0 +1,6 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [DefinedNode(0...12)((8...9), IntegerNode(9...11)(), (11...12), (0...8))] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_arg_asplat_arg.txt b/test/yarp/snapshots/seattlerb/defn_arg_asplat_arg.txt new file mode 100644 index 0000000000..6e7e9478f1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_arg_asplat_arg.txt @@ -0,0 +1,26 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [DefNode(0...29)( + (4...8), + nil, + ParametersNode(9...24)( + [RequiredParameterNode(9...15)(:interp)], + [], + [RequiredParameterNode(20...24)(:args)], + RestParameterNode(17...18)((17...18), nil), + [], + nil, + nil + ), + nil, + [:interp, :*, :args], + (0...3), + nil, + (8...9), + (24...25), + nil, + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_arg_forward_args.txt b/test/yarp/snapshots/seattlerb/defn_arg_forward_args.txt new file mode 100644 index 0000000000..c3e8e7d010 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_arg_forward_args.txt @@ -0,0 +1,41 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [DefNode(0...29)( + (4...5), + nil, + ParametersNode(6...12)( + [RequiredParameterNode(6...7)(:x)], + [], + [], + nil, + [], + ForwardingParameterNode(9...12)(), + nil + ), + StatementsNode(15...24)( + [CallNode(15...24)( + nil, + nil, + (15...16), + (16...17), + ArgumentsNode(17...23)( + [LocalVariableReadNode(17...18)(:x, 0), + ForwardingArgumentsNode(20...23)()] + ), + (23...24), + nil, + 0, + "b" + )] + ), + [:x, :"..."], + (0...3), + nil, + (5...6), + (12...13), + nil, + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_args_forward_args.txt b/test/yarp/snapshots/seattlerb/defn_args_forward_args.txt new file mode 100644 index 0000000000..c14a1868ed --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_args_forward_args.txt @@ -0,0 +1,44 @@ +ProgramNode(0...41)( + [], + StatementsNode(0...41)( + [DefNode(0...41)( + (4...5), + nil, + ParametersNode(6...18)( + [RequiredParameterNode(6...7)(:x), + RequiredParameterNode(9...10)(:y), + RequiredParameterNode(12...13)(:z)], + [], + [], + nil, + [], + ForwardingParameterNode(15...18)(), + nil + ), + StatementsNode(21...36)( + [CallNode(21...36)( + nil, + nil, + (21...22), + (22...23), + ArgumentsNode(23...35)( + [SymbolNode(23...27)((23...24), (24...27), nil, "get"), + LocalVariableReadNode(29...30)(:z, 0), + ForwardingArgumentsNode(32...35)()] + ), + (35...36), + nil, + 0, + "b" + )] + ), + [:x, :y, :z, :"..."], + (0...3), + nil, + (5...6), + (18...19), + nil, + (38...41) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_comments.txt b/test/yarp/snapshots/seattlerb/defn_comments.txt new file mode 100644 index 0000000000..1ff1c127bd --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_comments.txt @@ -0,0 +1,18 @@ +ProgramNode(19...31)( + [], + StatementsNode(19...31)( + [DefNode(19...31)( + (23...27), + nil, + nil, + nil, + [], + (19...22), + nil, + nil, + nil, + nil, + (28...31) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_endless_command.txt b/test/yarp/snapshots/seattlerb/defn_endless_command.txt new file mode 100644 index 0000000000..7e1989cf6f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_endless_command.txt @@ -0,0 +1,30 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [DefNode(0...33)( + (4...15), + nil, + nil, + StatementsNode(18...33)( + [CallNode(18...33)( + nil, + nil, + (18...30), + nil, + ArgumentsNode(31...33)([IntegerNode(31...33)()]), + nil, + nil, + 0, + "other_method" + )] + ), + [], + (0...3), + nil, + nil, + nil, + (16...17), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_endless_command_rescue.txt b/test/yarp/snapshots/seattlerb/defn_endless_command_rescue.txt new file mode 100644 index 0000000000..bed7b31b5a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_endless_command_rescue.txt @@ -0,0 +1,36 @@ +ProgramNode(0...43)( + [], + StatementsNode(0...43)( + [DefNode(0...43)( + (4...15), + nil, + nil, + StatementsNode(18...43)( + [CallNode(18...43)( + nil, + nil, + (18...30), + nil, + ArgumentsNode(31...43)( + [RescueModifierNode(31...43)( + IntegerNode(31...33)(), + (34...40), + IntegerNode(41...43)() + )] + ), + nil, + nil, + 0, + "other_method" + )] + ), + [], + (0...3), + nil, + nil, + nil, + (16...17), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_forward_args.txt b/test/yarp/snapshots/seattlerb/defn_forward_args.txt new file mode 100644 index 0000000000..0fbe6f0d70 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_forward_args.txt @@ -0,0 +1,38 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [DefNode(0...23)( + (4...5), + nil, + ParametersNode(6...9)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(6...9)(), + nil + ), + StatementsNode(12...18)( + [CallNode(12...18)( + nil, + nil, + (12...13), + (13...14), + ArgumentsNode(14...17)([ForwardingArgumentsNode(14...17)()]), + (17...18), + nil, + 0, + "b" + )] + ), + [:"..."], + (0...3), + nil, + (5...6), + (9...10), + nil, + (20...23) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_env.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_env.txt new file mode 100644 index 0000000000..5872579ee6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_kwarg_env.txt @@ -0,0 +1,45 @@ +ProgramNode(0...45)( + [], + StatementsNode(0...45)( + [DefNode(0...45)( + (4...8), + nil, + ParametersNode(9...18)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(9...18)((9...11), (11...18)), + nil + ), + StatementsNode(20...41)( + [CallNode(20...41)( + nil, + nil, + (20...30), + (30...31), + ArgumentsNode(31...40)( + [KeywordHashNode(31...40)( + [AssocSplatNode(31...40)( + LocalVariableReadNode(33...40)(:testing, 0), + (31...33) + )] + )] + ), + (40...41), + nil, + 0, + "test_splat" + )] + ), + [:testing], + (0...3), + nil, + (8...9), + (18...19), + nil, + (42...45) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_kwarg.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_kwarg.txt new file mode 100644 index 0000000000..6dcd4aaf2b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_kwarg_kwarg.txt @@ -0,0 +1,27 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [DefNode(0...24)( + (4...5), + nil, + ParametersNode(6...19)( + [RequiredParameterNode(6...7)(:a)], + [], + [], + nil, + [KeywordParameterNode(9...13)((9...11), IntegerNode(12...13)()), + KeywordParameterNode(15...19)((15...17), IntegerNode(18...19)())], + nil, + nil + ), + nil, + [:a, :b, :c], + (0...3), + nil, + (5...6), + (19...20), + nil, + (21...24) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat.txt new file mode 100644 index 0000000000..5bc6490a6f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat.txt @@ -0,0 +1,26 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [DefNode(0...20)( + (4...5), + nil, + ParametersNode(6...15)( + [], + [], + [], + nil, + [KeywordParameterNode(6...10)((6...8), IntegerNode(9...10)())], + KeywordRestParameterNode(12...15)((12...14), (14...15)), + nil + ), + nil, + [:b, :c], + (0...3), + nil, + (5...6), + (15...16), + nil, + (17...20) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt new file mode 100644 index 0000000000..3dfb42f6d7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt @@ -0,0 +1,26 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [DefNode(0...19)( + (4...5), + nil, + ParametersNode(6...14)( + [], + [], + [], + nil, + [KeywordParameterNode(6...10)((6...8), IntegerNode(9...10)())], + KeywordRestParameterNode(12...14)((12...14), nil), + nil + ), + nil, + [:b, :**], + (0...3), + nil, + (5...6), + (14...15), + nil, + (16...19) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_lvar.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_lvar.txt new file mode 100644 index 0000000000..f4f6964c58 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_kwarg_lvar.txt @@ -0,0 +1,29 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [DefNode(0...26)( + (4...7), + nil, + ParametersNode(8...16)( + [], + [], + [], + nil, + [KeywordParameterNode(8...16)( + (8...11), + SymbolNode(12...16)((12...13), (13...16), nil, "val") + )], + nil, + nil + ), + StatementsNode(19...21)([LocalVariableReadNode(19...21)(:kw, 0)]), + [:kw], + (0...3), + nil, + (7...8), + (16...17), + nil, + (23...26) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_no_parens.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_no_parens.txt new file mode 100644 index 0000000000..b0649973ac --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_kwarg_no_parens.txt @@ -0,0 +1,26 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [DefNode(0...14)( + (4...5), + nil, + ParametersNode(6...10)( + [], + [], + [], + nil, + [KeywordParameterNode(6...10)((6...8), IntegerNode(9...10)())], + nil, + nil + ), + nil, + [:a], + (0...3), + nil, + nil, + nil, + nil, + (11...14) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_val.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_val.txt new file mode 100644 index 0000000000..dfa99b7066 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_kwarg_val.txt @@ -0,0 +1,26 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [DefNode(0...17)( + (4...5), + nil, + ParametersNode(6...12)( + [RequiredParameterNode(6...7)(:a)], + [], + [], + nil, + [KeywordParameterNode(9...12)((9...11), IntegerNode(11...12)())], + nil, + nil + ), + nil, + [:a, :b], + (0...3), + nil, + (5...6), + (12...13), + nil, + (14...17) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_no_kwargs.txt b/test/yarp/snapshots/seattlerb/defn_no_kwargs.txt new file mode 100644 index 0000000000..a5046e04e4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_no_kwargs.txt @@ -0,0 +1,26 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [DefNode(0...17)( + (4...5), + nil, + ParametersNode(6...11)( + [], + [], + [], + nil, + [], + NoKeywordsParameterNode(6...11)((6...8), (8...11)), + nil + ), + nil, + [], + (0...3), + nil, + (5...6), + (11...12), + nil, + (14...17) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_oneliner.txt b/test/yarp/snapshots/seattlerb/defn_oneliner.txt new file mode 100644 index 0000000000..053400c564 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_oneliner.txt @@ -0,0 +1,38 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [DefNode(0...27)( + (4...8), + nil, + ParametersNode(9...12)( + [RequiredParameterNode(9...12)(:cmd)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(16...27)( + [CallNode(16...27)( + nil, + nil, + (16...22), + (22...23), + ArgumentsNode(23...26)([LocalVariableReadNode(23...26)(:cmd, 0)]), + (26...27), + nil, + 0, + "system" + )] + ), + [:cmd], + (0...3), + nil, + (8...9), + (12...13), + (14...15), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_oneliner_eq2.txt b/test/yarp/snapshots/seattlerb/defn_oneliner_eq2.txt new file mode 100644 index 0000000000..30aaf7190e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_oneliner_eq2.txt @@ -0,0 +1,36 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [ClassNode(0...28)( + [], + (0...5), + ConstantReadNode(6...7)(), + nil, + nil, + StatementsNode(10...24)( + [DefNode(10...24)( + (14...16), + nil, + ParametersNode(17...18)( + [RequiredParameterNode(17...18)(:o)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(22...24)([IntegerNode(22...24)()]), + [:o], + (10...13), + nil, + (16...17), + (18...19), + (20...21), + nil + )] + ), + (25...28) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_oneliner_noargs.txt b/test/yarp/snapshots/seattlerb/defn_oneliner_noargs.txt new file mode 100644 index 0000000000..b560a37f61 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_oneliner_noargs.txt @@ -0,0 +1,30 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [DefNode(0...17)( + (4...8), + nil, + nil, + StatementsNode(11...17)( + [CallNode(11...17)( + nil, + nil, + (11...17), + nil, + nil, + nil, + nil, + 0, + "system" + )] + ), + [], + (0...3), + nil, + nil, + nil, + (9...10), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_oneliner_noargs_parentheses.txt b/test/yarp/snapshots/seattlerb/defn_oneliner_noargs_parentheses.txt new file mode 100644 index 0000000000..7a106c57d6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_oneliner_noargs_parentheses.txt @@ -0,0 +1,30 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [DefNode(0...19)( + (4...8), + nil, + nil, + StatementsNode(13...19)( + [CallNode(13...19)( + nil, + nil, + (13...19), + nil, + nil, + nil, + nil, + 0, + "system" + )] + ), + [], + (0...3), + nil, + (8...9), + (9...10), + (11...12), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_oneliner_rescue.txt b/test/yarp/snapshots/seattlerb/defn_oneliner_rescue.txt new file mode 100644 index 0000000000..5032c52203 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_oneliner_rescue.txt @@ -0,0 +1,132 @@ +ProgramNode(0...130)( + [], + StatementsNode(0...130)( + [DefNode(0...44)( + (4...8), + nil, + ParametersNode(9...12)( + [RequiredParameterNode(9...12)(:cmd)], + [], + [], + nil, + [], + nil, + nil + ), + BeginNode(16...44)( + nil, + StatementsNode(16...27)( + [CallNode(16...27)( + nil, + nil, + (16...22), + (22...23), + ArgumentsNode(23...26)( + [LocalVariableReadNode(23...26)(:cmd, 0)] + ), + (26...27), + nil, + 0, + "system" + )] + ), + RescueNode(28...40)( + (28...34), + [], + nil, + nil, + StatementsNode(37...40)([NilNode(37...40)()]), + nil + ), + nil, + nil, + (41...44) + ), + [:cmd], + (0...3), + nil, + (8...9), + (12...13), + nil, + (41...44) + ), + DefNode(47...89)( + (51...55), + nil, + ParametersNode(56...59)( + [RequiredParameterNode(56...59)(:cmd)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(63...85)( + [RescueModifierNode(63...85)( + CallNode(63...74)( + nil, + nil, + (63...69), + (69...70), + ArgumentsNode(70...73)( + [LocalVariableReadNode(70...73)(:cmd, 0)] + ), + (73...74), + nil, + 0, + "system" + ), + (75...81), + NilNode(82...85)() + )] + ), + [:cmd], + (47...50), + nil, + (55...56), + (59...60), + nil, + (86...89) + ), + DefNode(92...130)( + (96...100), + nil, + ParametersNode(101...104)( + [RequiredParameterNode(101...104)(:cmd)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(108...130)( + [RescueModifierNode(108...130)( + CallNode(108...119)( + nil, + nil, + (108...114), + (114...115), + ArgumentsNode(115...118)( + [LocalVariableReadNode(115...118)(:cmd, 0)] + ), + (118...119), + nil, + 0, + "system" + ), + (120...126), + NilNode(127...130)() + )] + ), + [:cmd], + (92...95), + nil, + (100...101), + (104...105), + (106...107), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_opt_last_arg.txt b/test/yarp/snapshots/seattlerb/defn_opt_last_arg.txt new file mode 100644 index 0000000000..d4064d0f34 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_opt_last_arg.txt @@ -0,0 +1,31 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [DefNode(0...21)( + (4...5), + nil, + ParametersNode(6...17)( + [], + [OptionalParameterNode(6...17)( + :arg, + (6...9), + (10...11), + FalseNode(12...17)() + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:arg], + (0...3), + nil, + nil, + nil, + nil, + (18...21) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_opt_reg.txt b/test/yarp/snapshots/seattlerb/defn_opt_reg.txt new file mode 100644 index 0000000000..5796adf1e9 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_opt_reg.txt @@ -0,0 +1,31 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [DefNode(0...19)( + (4...5), + nil, + ParametersNode(6...14)( + [], + [OptionalParameterNode(6...11)( + :a, + (6...7), + (7...8), + NilNode(8...11)() + )], + [RequiredParameterNode(13...14)(:b)], + nil, + [], + nil, + nil + ), + nil, + [:a, :b], + (0...3), + nil, + (5...6), + (14...15), + nil, + (16...19) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_opt_splat_arg.txt b/test/yarp/snapshots/seattlerb/defn_opt_splat_arg.txt new file mode 100644 index 0000000000..cd181b55b3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_opt_splat_arg.txt @@ -0,0 +1,31 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [DefNode(0...24)( + (4...5), + nil, + ParametersNode(7...19)( + [], + [OptionalParameterNode(7...12)( + :a, + (7...8), + (9...10), + IntegerNode(11...12)() + )], + [RequiredParameterNode(18...19)(:c)], + RestParameterNode(14...16)((14...15), (15...16)), + [], + nil, + nil + ), + nil, + [:a, :b, :c], + (0...3), + nil, + (6...7), + (19...20), + nil, + (21...24) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_powarg.txt b/test/yarp/snapshots/seattlerb/defn_powarg.txt new file mode 100644 index 0000000000..a6d63f56cb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_powarg.txt @@ -0,0 +1,26 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [DefNode(0...17)( + (4...5), + nil, + ParametersNode(6...12)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(6...12)((6...8), (8...12)), + nil + ), + nil, + [:opts], + (0...3), + nil, + (5...6), + (12...13), + nil, + (14...17) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_reg_opt_reg.txt b/test/yarp/snapshots/seattlerb/defn_reg_opt_reg.txt new file mode 100644 index 0000000000..c7e9c64087 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_reg_opt_reg.txt @@ -0,0 +1,31 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [DefNode(0...23)( + (4...5), + nil, + ParametersNode(6...18)( + [RequiredParameterNode(6...7)(:a)], + [OptionalParameterNode(9...15)( + :b, + (9...10), + (11...12), + SymbolNode(13...15)((13...14), (14...15), nil, "c") + )], + [RequiredParameterNode(17...18)(:d)], + nil, + [], + nil, + nil + ), + nil, + [:a, :b, :d], + (0...3), + nil, + (5...6), + (18...19), + nil, + (20...23) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_splat_arg.txt b/test/yarp/snapshots/seattlerb/defn_splat_arg.txt new file mode 100644 index 0000000000..0fb8bb01c1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_splat_arg.txt @@ -0,0 +1,26 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [DefNode(0...15)( + (4...5), + nil, + ParametersNode(6...10)( + [], + [], + [RequiredParameterNode(9...10)(:a)], + RestParameterNode(6...7)((6...7), nil), + [], + nil, + nil + ), + nil, + [:*, :a], + (0...3), + nil, + (5...6), + (10...11), + nil, + (12...15) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defn_unary_not.txt b/test/yarp/snapshots/seattlerb/defn_unary_not.txt new file mode 100644 index 0000000000..9fbee1764f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defn_unary_not.txt @@ -0,0 +1,18 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [DefNode(0...17)( + (4...6), + nil, + nil, + StatementsNode(8...12)([TrueNode(8...12)()]), + [], + (0...3), + nil, + nil, + nil, + nil, + (14...17) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defns_reserved.txt b/test/yarp/snapshots/seattlerb/defns_reserved.txt new file mode 100644 index 0000000000..07b165898e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defns_reserved.txt @@ -0,0 +1,18 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [DefNode(0...20)( + (9...15), + SelfNode(4...8)(), + nil, + nil, + [], + (0...3), + (8...9), + nil, + nil, + nil, + (17...20) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defs_as_arg_with_do_block_inside.txt b/test/yarp/snapshots/seattlerb/defs_as_arg_with_do_block_inside.txt new file mode 100644 index 0000000000..57e5932ab4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defs_as_arg_with_do_block_inside.txt @@ -0,0 +1,52 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [CallNode(0...30)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...30)( + [DefNode(2...30)( + (11...12), + SelfNode(6...10)(), + nil, + StatementsNode(14...25)( + [CallNode(14...25)( + CallNode(14...15)( + nil, + nil, + (14...15), + nil, + nil, + nil, + nil, + 0, + "x" + ), + (15...16), + (16...17), + nil, + nil, + nil, + BlockNode(18...25)([], nil, nil, (18...20), (22...25)), + 0, + "y" + )] + ), + [], + (2...5), + (10...11), + nil, + nil, + nil, + (27...30) + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defs_comments.txt b/test/yarp/snapshots/seattlerb/defs_comments.txt new file mode 100644 index 0000000000..55a3054373 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defs_comments.txt @@ -0,0 +1,18 @@ +ProgramNode(19...36)( + [], + StatementsNode(19...36)( + [DefNode(19...36)( + (28...32), + SelfNode(23...27)(), + nil, + nil, + [], + (19...22), + (27...28), + nil, + nil, + nil, + (33...36) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defs_endless_command.txt b/test/yarp/snapshots/seattlerb/defs_endless_command.txt new file mode 100644 index 0000000000..11572715af --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defs_endless_command.txt @@ -0,0 +1,30 @@ +ProgramNode(0...35)( + [], + StatementsNode(0...35)( + [DefNode(0...35)( + (6...17), + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "x"), + nil, + StatementsNode(20...35)( + [CallNode(20...35)( + nil, + nil, + (20...32), + nil, + ArgumentsNode(33...35)([IntegerNode(33...35)()]), + nil, + nil, + 0, + "other_method" + )] + ), + [], + (0...3), + (5...6), + nil, + nil, + (18...19), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defs_endless_command_rescue.txt b/test/yarp/snapshots/seattlerb/defs_endless_command_rescue.txt new file mode 100644 index 0000000000..b657a3f19d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defs_endless_command_rescue.txt @@ -0,0 +1,36 @@ +ProgramNode(0...45)( + [], + StatementsNode(0...45)( + [DefNode(0...45)( + (6...17), + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "x"), + nil, + StatementsNode(20...45)( + [CallNode(20...45)( + nil, + nil, + (20...32), + nil, + ArgumentsNode(33...45)( + [RescueModifierNode(33...45)( + IntegerNode(33...35)(), + (36...42), + IntegerNode(43...45)() + )] + ), + nil, + nil, + 0, + "other_method" + )] + ), + [], + (0...3), + (5...6), + nil, + nil, + (18...19), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defs_kwarg.txt b/test/yarp/snapshots/seattlerb/defs_kwarg.txt new file mode 100644 index 0000000000..0309161b8e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defs_kwarg.txt @@ -0,0 +1,26 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [DefNode(0...19)( + (9...10), + SelfNode(4...8)(), + ParametersNode(11...15)( + [], + [], + [], + nil, + [KeywordParameterNode(11...15)((11...13), IntegerNode(14...15)())], + nil, + nil + ), + nil, + [:b], + (0...3), + (8...9), + nil, + nil, + nil, + (16...19) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defs_oneliner.txt b/test/yarp/snapshots/seattlerb/defs_oneliner.txt new file mode 100644 index 0000000000..60ea01092f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defs_oneliner.txt @@ -0,0 +1,38 @@ +ProgramNode(0...32)( + [], + StatementsNode(0...32)( + [DefNode(0...32)( + (9...13), + SelfNode(4...8)(), + ParametersNode(14...17)( + [RequiredParameterNode(14...17)(:cmd)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(21...32)( + [CallNode(21...32)( + nil, + nil, + (21...27), + (27...28), + ArgumentsNode(28...31)([LocalVariableReadNode(28...31)(:cmd, 0)]), + (31...32), + nil, + 0, + "system" + )] + ), + [:cmd], + (0...3), + (8...9), + (13...14), + (17...18), + (19...20), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defs_oneliner_eq2.txt b/test/yarp/snapshots/seattlerb/defs_oneliner_eq2.txt new file mode 100644 index 0000000000..8a4f9e9086 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defs_oneliner_eq2.txt @@ -0,0 +1,36 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [ClassNode(0...33)( + [], + (0...5), + ConstantReadNode(6...7)(), + nil, + nil, + StatementsNode(10...29)( + [DefNode(10...29)( + (19...21), + SelfNode(14...18)(), + ParametersNode(22...23)( + [RequiredParameterNode(22...23)(:o)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(27...29)([IntegerNode(27...29)()]), + [:o], + (10...13), + (18...19), + (21...22), + (23...24), + (25...26), + nil + )] + ), + (30...33) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/defs_oneliner_rescue.txt b/test/yarp/snapshots/seattlerb/defs_oneliner_rescue.txt new file mode 100644 index 0000000000..90269cc14a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/defs_oneliner_rescue.txt @@ -0,0 +1,132 @@ +ProgramNode(0...145)( + [], + StatementsNode(0...145)( + [DefNode(0...49)( + (9...13), + SelfNode(4...8)(), + ParametersNode(14...17)( + [RequiredParameterNode(14...17)(:cmd)], + [], + [], + nil, + [], + nil, + nil + ), + BeginNode(21...49)( + nil, + StatementsNode(21...32)( + [CallNode(21...32)( + nil, + nil, + (21...27), + (27...28), + ArgumentsNode(28...31)( + [LocalVariableReadNode(28...31)(:cmd, 0)] + ), + (31...32), + nil, + 0, + "system" + )] + ), + RescueNode(33...45)( + (33...39), + [], + nil, + nil, + StatementsNode(42...45)([NilNode(42...45)()]), + nil + ), + nil, + nil, + (46...49) + ), + [:cmd], + (0...3), + (8...9), + (13...14), + (17...18), + nil, + (46...49) + ), + DefNode(52...99)( + (61...65), + SelfNode(56...60)(), + ParametersNode(66...69)( + [RequiredParameterNode(66...69)(:cmd)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(73...95)( + [RescueModifierNode(73...95)( + CallNode(73...84)( + nil, + nil, + (73...79), + (79...80), + ArgumentsNode(80...83)( + [LocalVariableReadNode(80...83)(:cmd, 0)] + ), + (83...84), + nil, + 0, + "system" + ), + (85...91), + NilNode(92...95)() + )] + ), + [:cmd], + (52...55), + (60...61), + (65...66), + (69...70), + nil, + (96...99) + ), + DefNode(102...145)( + (111...115), + SelfNode(106...110)(), + ParametersNode(116...119)( + [RequiredParameterNode(116...119)(:cmd)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(123...145)( + [RescueModifierNode(123...145)( + CallNode(123...134)( + nil, + nil, + (123...129), + (129...130), + ArgumentsNode(130...133)( + [LocalVariableReadNode(130...133)(:cmd, 0)] + ), + (133...134), + nil, + 0, + "system" + ), + (135...141), + NilNode(142...145)() + )] + ), + [:cmd], + (102...105), + (110...111), + (115...116), + (119...120), + (121...122), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/do_bug.txt b/test/yarp/snapshots/seattlerb/do_bug.txt new file mode 100644 index 0000000000..8226a3fa45 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/do_bug.txt @@ -0,0 +1,46 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [CallNode(0...3)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...3)([IntegerNode(2...3)()]), + nil, + nil, + 0, + "a" + ), + CallNode(4...33)( + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "a"), + (5...6), + (6...7), + nil, + nil, + nil, + BlockNode(8...33)( + [:c], + BlockParametersNode(11...14)( + ParametersNode(12...13)( + [RequiredParameterNode(12...13)(:c)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (11...12), + (13...14) + ), + nil, + (8...10), + (30...33) + ), + 0, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/do_lambda.txt b/test/yarp/snapshots/seattlerb/do_lambda.txt new file mode 100644 index 0000000000..86b3548eb4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/do_lambda.txt @@ -0,0 +1,11 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [LambdaNode(0...11)( + [], + (0...2), + BlockParametersNode(2...4)(nil, [], (2...3), (3...4)), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dot2_nil__26.txt b/test/yarp/snapshots/seattlerb/dot2_nil__26.txt new file mode 100644 index 0000000000..2db1072701 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dot2_nil__26.txt @@ -0,0 +1,11 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)( + [RangeNode(0...3)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + nil, + (1...3), + 0 + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dot3_nil__26.txt b/test/yarp/snapshots/seattlerb/dot3_nil__26.txt new file mode 100644 index 0000000000..fce5824c9d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dot3_nil__26.txt @@ -0,0 +1,11 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [RangeNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + nil, + (1...4), + 1 + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dstr_evstr.txt b/test/yarp/snapshots/seattlerb/dstr_evstr.txt new file mode 100644 index 0000000000..c744aeee37 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dstr_evstr.txt @@ -0,0 +1,23 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [InterpolatedStringNode(0...12)( + (0...1), + [EmbeddedStatementsNode(1...7)( + (1...3), + StatementsNode(3...6)( + [StringNode(3...6)((3...4), (4...5), (5...6), "a")] + ), + (6...7) + ), + EmbeddedStatementsNode(7...11)( + (7...9), + StatementsNode(9...10)( + [CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "b")] + ), + (10...11) + )], + (11...12) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dstr_evstr_empty_end.txt b/test/yarp/snapshots/seattlerb/dstr_evstr_empty_end.txt new file mode 100644 index 0000000000..113270b9c0 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dstr_evstr_empty_end.txt @@ -0,0 +1,26 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [InterpolatedSymbolNode(0...11)( + (0...2), + [EmbeddedStatementsNode(2...10)( + (2...4), + StatementsNode(4...9)( + [CallNode(4...9)( + nil, + nil, + (4...9), + nil, + nil, + nil, + nil, + 0, + "field" + )] + ), + (9...10) + )], + (10...11) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dstr_lex_state.txt b/test/yarp/snapshots/seattlerb/dstr_lex_state.txt new file mode 100644 index 0000000000..50e327ab9c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dstr_lex_state.txt @@ -0,0 +1,28 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [InterpolatedStringNode(0...8)( + (0...1), + [EmbeddedStatementsNode(1...7)( + (1...3), + StatementsNode(3...6)( + [CallNode(3...6)( + nil, + nil, + (3...4), + nil, + ArgumentsNode(4...6)( + [SymbolNode(4...6)((4...5), (5...6), nil, "a")] + ), + nil, + nil, + 0, + "p" + )] + ), + (6...7) + )], + (7...8) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dstr_str.txt b/test/yarp/snapshots/seattlerb/dstr_str.txt new file mode 100644 index 0000000000..e17b035d2f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dstr_str.txt @@ -0,0 +1,17 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [InterpolatedStringNode(0...10)( + (0...1), + [EmbeddedStatementsNode(1...7)( + (1...3), + StatementsNode(3...6)( + [StringNode(3...6)((3...4), (4...5), (5...6), "a")] + ), + (6...7) + ), + StringNode(7...9)(nil, (7...9), nil, " b")], + (9...10) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dsym_esc_to_sym.txt b/test/yarp/snapshots/seattlerb/dsym_esc_to_sym.txt new file mode 100644 index 0000000000..41a66c6143 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dsym_esc_to_sym.txt @@ -0,0 +1,10 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [InterpolatedSymbolNode(0...17)( + (0...2), + [StringNode(2...16)(nil, (2...16), nil, "Varietà")], + (16...17) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/dsym_to_sym.txt b/test/yarp/snapshots/seattlerb/dsym_to_sym.txt new file mode 100644 index 0000000000..67c71efb2d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/dsym_to_sym.txt @@ -0,0 +1,23 @@ +ProgramNode(0...32)( + [], + StatementsNode(0...32)( + [AliasNode(0...17)( + InterpolatedSymbolNode(6...11)( + (6...8), + [StringNode(8...10)(nil, (8...10), nil, "<<")], + (10...11) + ), + InterpolatedSymbolNode(12...17)( + (12...14), + [StringNode(14...16)(nil, (14...16), nil, ">>")], + (16...17) + ), + (0...5) + ), + AliasNode(19...32)( + SymbolNode(25...28)((25...26), (26...28), nil, "<<"), + SymbolNode(29...32)((29...30), (30...32), nil, ">>"), + (19...24) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/eq_begin_line_numbers.txt b/test/yarp/snapshots/seattlerb/eq_begin_line_numbers.txt new file mode 100644 index 0000000000..46a167a8de --- /dev/null +++ b/test/yarp/snapshots/seattlerb/eq_begin_line_numbers.txt @@ -0,0 +1,4 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)([IntegerNode(0...1)(), IntegerNode(30...31)()]) +) diff --git a/test/yarp/snapshots/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt b/test/yarp/snapshots/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt new file mode 100644 index 0000000000..805f6f9bd0 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt @@ -0,0 +1,26 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [CallNode(0...29)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "h"), + nil, + (1...4), + (1...2), + ArgumentsNode(2...29)( + [CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "k"), + BeginNode(5...29)( + (5...10), + StatementsNode(18...20)([IntegerNode(18...20)()]), + nil, + nil, + nil, + (26...29) + )] + ), + (3...4), + nil, + 0, + "[]=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/evstr_evstr.txt b/test/yarp/snapshots/seattlerb/evstr_evstr.txt new file mode 100644 index 0000000000..e4b49cb84d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/evstr_evstr.txt @@ -0,0 +1,23 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [InterpolatedStringNode(0...10)( + (0...1), + [EmbeddedStatementsNode(1...5)( + (1...3), + StatementsNode(3...4)( + [CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 0, "a")] + ), + (4...5) + ), + EmbeddedStatementsNode(5...9)( + (5...7), + StatementsNode(7...8)( + [CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "b")] + ), + (8...9) + )], + (9...10) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/evstr_str.txt b/test/yarp/snapshots/seattlerb/evstr_str.txt new file mode 100644 index 0000000000..4571199189 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/evstr_str.txt @@ -0,0 +1,17 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [InterpolatedStringNode(0...8)( + (0...1), + [EmbeddedStatementsNode(1...5)( + (1...3), + StatementsNode(3...4)( + [CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 0, "a")] + ), + (4...5) + ), + StringNode(5...7)(nil, (5...7), nil, " b")], + (7...8) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/expr_not_bang.txt b/test/yarp/snapshots/seattlerb/expr_not_bang.txt new file mode 100644 index 0000000000..ed1649eff8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/expr_not_bang.txt @@ -0,0 +1,28 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + CallNode(2...5)( + nil, + nil, + (2...3), + nil, + ArgumentsNode(4...5)( + [CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "b")] + ), + nil, + nil, + 0, + "a" + ), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/f_kw.txt b/test/yarp/snapshots/seattlerb/f_kw.txt new file mode 100644 index 0000000000..ace0997f9e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/f_kw.txt @@ -0,0 +1,26 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [DefNode(0...15)( + (4...5), + nil, + ParametersNode(6...10)( + [], + [], + [], + nil, + [KeywordParameterNode(6...10)((6...8), IntegerNode(8...10)())], + nil, + nil + ), + nil, + [:k], + (0...3), + nil, + nil, + nil, + nil, + (12...15) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/f_kw__required.txt b/test/yarp/snapshots/seattlerb/f_kw__required.txt new file mode 100644 index 0000000000..38d564599f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/f_kw__required.txt @@ -0,0 +1,26 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [DefNode(0...13)( + (4...5), + nil, + ParametersNode(6...8)( + [], + [], + [], + nil, + [KeywordParameterNode(6...8)((6...8), nil)], + nil, + nil + ), + nil, + [:k], + (0...3), + nil, + nil, + nil, + nil, + (10...13) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/flip2_env_lvar.txt b/test/yarp/snapshots/seattlerb/flip2_env_lvar.txt new file mode 100644 index 0000000000..623be4987e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/flip2_env_lvar.txt @@ -0,0 +1,17 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [IfNode(0...16)( + (0...2), + RangeNode(3...7)( + CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 0, "a"), + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "b"), + (4...6), + 0 + ), + nil, + nil, + (13...16) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/float_with_if_modifier.txt b/test/yarp/snapshots/seattlerb/float_with_if_modifier.txt new file mode 100644 index 0000000000..c27a5bfe3b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/float_with_if_modifier.txt @@ -0,0 +1,12 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [IfNode(0...10)( + (3...5), + TrueNode(6...10)(), + StatementsNode(0...3)([FloatNode(0...3)()]), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc__backslash_dos_format.txt b/test/yarp/snapshots/seattlerb/heredoc__backslash_dos_format.txt new file mode 100644 index 0000000000..36bb254c51 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc__backslash_dos_format.txt @@ -0,0 +1,21 @@ +ProgramNode(0...35)( + [:str], + StatementsNode(0...35)( + [LocalVariableWriteNode(0...35)( + :str, + 0, + InterpolatedStringNode(6...35)( + (6...12), + [StringNode(14...30)( + nil, + (14...30), + nil, + "before\u0000\u0000after\r\n" + )], + (30...35) + ), + (0...3), + (4...5) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_backslash_nl.txt b/test/yarp/snapshots/seattlerb/heredoc_backslash_nl.txt new file mode 100644 index 0000000000..36a074222b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_backslash_nl.txt @@ -0,0 +1,21 @@ +ProgramNode(0...93)( + [], + StatementsNode(0...93)( + [StringNode(0...40)( + (0...1), + (1...39), + (39...40), + " why would someone do this? \n" + " blah\n" + ), + InterpolatedStringNode(42...93)( + (42...49), + [StringNode(50...88)( + nil, + (50...88), + nil, + " why would someone do this? \n" + " blah\n" + )], + (88...93) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_bad_hex_escape.txt b/test/yarp/snapshots/seattlerb/heredoc_bad_hex_escape.txt new file mode 100644 index 0000000000..1917020fbd --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_bad_hex_escape.txt @@ -0,0 +1,16 @@ +ProgramNode(0...21)( + [:s], + StatementsNode(0...21)( + [LocalVariableWriteNode(0...21)( + :s, + 0, + InterpolatedStringNode(4...21)( + (4...9), + [StringNode(10...17)(nil, (10...17), nil, "a\xE9b\n")], + (17...21) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_bad_oct_escape.txt b/test/yarp/snapshots/seattlerb/heredoc_bad_oct_escape.txt new file mode 100644 index 0000000000..69776e0145 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_bad_oct_escape.txt @@ -0,0 +1,16 @@ +ProgramNode(0...27)( + [:s], + StatementsNode(0...27)( + [LocalVariableWriteNode(0...27)( + :s, + 0, + InterpolatedStringNode(4...27)( + (4...10), + [StringNode(11...23)(nil, (11...23), nil, "a\xA7b\n" + "cöd\n")], + (23...27) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_comma_arg.txt b/test/yarp/snapshots/seattlerb/heredoc_comma_arg.txt new file mode 100644 index 0000000000..98cc3184e1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_comma_arg.txt @@ -0,0 +1,19 @@ +ProgramNode(0...47)( + [], + StatementsNode(0...47)( + [ArrayNode(0...17)( + [StringNode(1...15)((1...2), (2...14), (14...15), " some text\n")], + (0...1), + (16...17) + ), + ArrayNode(19...47)( + [InterpolatedStringNode(20...46)( + (20...27), + [StringNode(29...41)(nil, (29...41), nil, " some text\n")], + (41...46) + )], + (19...20), + (46...47) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_lineno.txt b/test/yarp/snapshots/seattlerb/heredoc_lineno.txt new file mode 100644 index 0000000000..e0a8f91a13 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_lineno.txt @@ -0,0 +1,28 @@ +ProgramNode(0...41)( + [:c, :d], + StatementsNode(0...41)( + [LocalVariableWriteNode(0...34)( + :c, + 0, + InterpolatedStringNode(4...34)( + (4...11), + [StringNode(12...30)( + nil, + (12...30), + nil, + "line2\n" + "line3\n" + "line4\n" + )], + (30...34) + ), + (0...1), + (2...3) + ), + LocalVariableWriteNode(35...41)( + :d, + 0, + IntegerNode(39...41)(), + (35...36), + (37...38) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly.txt new file mode 100644 index 0000000000..75c1d49310 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly.txt @@ -0,0 +1,16 @@ +ProgramNode(0...31)( + [:a], + StatementsNode(0...31)( + [LocalVariableWriteNode(0...31)( + :a, + 0, + InterpolatedStringNode(4...31)( + (4...12), + [StringNode(13...25)(nil, (13...25), nil, "x\n" + "y\n" + "z\n")], + (25...31) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt new file mode 100644 index 0000000000..92628b3471 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt @@ -0,0 +1,56 @@ +ProgramNode(0...20)( + [:a], + StatementsNode(0...20)( + [LocalVariableWriteNode(0...20)( + :a, + 0, + CallNode(4...20)( + nil, + nil, + (4...7), + (7...8), + ArgumentsNode(8...19)( + [CallNode(8...19)( + InterpolatedStringNode(8...42)( + (8...14), + [StringNode(21...26)(nil, (21...26), nil, "\n"), + EmbeddedStatementsNode(26...32)( + (26...28), + StatementsNode(28...31)( + [CallNode(28...31)( + nil, + nil, + (28...31), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (31...32) + ), + StringNode(32...36)(nil, (32...36), nil, "baz\n")], + (36...42) + ), + (14...15), + (15...19), + nil, + nil, + nil, + nil, + 0, + "chop" + )] + ), + (19...20), + nil, + 0, + "foo" + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt new file mode 100644 index 0000000000..895a03d219 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt @@ -0,0 +1,16 @@ +ProgramNode(0...24)( + [:a], + StatementsNode(0...24)( + [LocalVariableWriteNode(0...24)( + :a, + 0, + InterpolatedStringNode(4...24)( + (4...10), + [StringNode(11...20)(nil, (11...20), nil, "x\n" + "\n" + "z\n")], + (20...24) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_empty.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_empty.txt new file mode 100644 index 0000000000..8de32879f3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_empty.txt @@ -0,0 +1,4 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)([InterpolatedStringNode(0...7)((0...4), [], (5...7))]) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_interp.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_interp.txt new file mode 100644 index 0000000000..6d99151e70 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_interp.txt @@ -0,0 +1,22 @@ +ProgramNode(0...42)( + [:a], + StatementsNode(0...42)( + [LocalVariableWriteNode(0...42)( + :a, + 0, + InterpolatedStringNode(4...42)( + (4...10), + [StringNode(11...22)(nil, (11...22), nil, " w\n" + "x"), + EmbeddedStatementsNode(22...27)( + (22...24), + StatementsNode(24...26)([IntegerNode(24...26)()]), + (26...27) + ), + StringNode(27...36)(nil, (27...36), nil, " y\n" + " z\n")], + (36...42) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_no_indent.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_no_indent.txt new file mode 100644 index 0000000000..38fd30f6e2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_no_indent.txt @@ -0,0 +1,10 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [InterpolatedStringNode(0...9)( + (0...4), + [StringNode(5...7)(nil, (5...7), nil, "a\n")], + (7...9) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs.txt new file mode 100644 index 0000000000..0e18753a1c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs.txt @@ -0,0 +1,21 @@ +ProgramNode(0...49)( + [:a], + StatementsNode(0...49)( + [LocalVariableWriteNode(0...49)( + :a, + 0, + InterpolatedStringNode(4...49)( + (4...12), + [StringNode(13...43)( + nil, + (13...43), + nil, + "blah blah\n" + " blah blah\n" + )], + (43...49) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt new file mode 100644 index 0000000000..2199b41826 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt @@ -0,0 +1,21 @@ +ProgramNode(0...43)( + [:a], + StatementsNode(0...43)( + [LocalVariableWriteNode(0...43)( + :a, + 0, + InterpolatedStringNode(4...43)( + (4...12), + [StringNode(13...37)( + nil, + (13...37), + nil, + "blah blah\n" + "\tblah blah\n" + )], + (37...43) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt new file mode 100644 index 0000000000..895a03d219 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt @@ -0,0 +1,16 @@ +ProgramNode(0...24)( + [:a], + StatementsNode(0...24)( + [LocalVariableWriteNode(0...24)( + :a, + 0, + InterpolatedStringNode(4...24)( + (4...10), + [StringNode(11...20)(nil, (11...20), nil, "x\n" + "\n" + "z\n")], + (20...24) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt b/test/yarp/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt new file mode 100644 index 0000000000..2ec330b49e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt @@ -0,0 +1,20 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [CallNode(0...22)( + InterpolatedStringNode(0...16)( + (0...5), + [StringNode(7...12)(nil, (7...12), nil, "blah\n")], + (12...16) + ), + (16...17), + (17...22), + nil, + nil, + nil, + nil, + 0, + "strip" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_unicode.txt b/test/yarp/snapshots/seattlerb/heredoc_unicode.txt new file mode 100644 index 0000000000..3f0b096d94 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_unicode.txt @@ -0,0 +1,10 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [InterpolatedStringNode(0...20)( + (0...9), + [StringNode(10...12)(nil, (10...12), nil, ".\n")], + (12...20) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt b/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt new file mode 100644 index 0000000000..24d7f88cff --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt @@ -0,0 +1,10 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [InterpolatedStringNode(0...25)( + (0...5), + [StringNode(6...21)(nil, (6...21), nil, "foo\rbar\n" + "baz\r\n")], + (21...25) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt b/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt new file mode 100644 index 0000000000..6ac06a3730 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt @@ -0,0 +1,10 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [InterpolatedStringNode(0...29)( + (0...5), + [StringNode(7...24)(nil, (7...24), nil, "foo\rbar\r\n" + "baz\r\r\n")], + (24...29) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt new file mode 100644 index 0000000000..fcf6267807 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt @@ -0,0 +1,10 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [InterpolatedStringNode(0...19)( + (0...7), + [StringNode(9...15)(nil, (9...15), nil, "body\r\n")], + (15...19) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt new file mode 100644 index 0000000000..3c538e92d1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt @@ -0,0 +1,10 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [InterpolatedStringNode(0...23)( + (0...5), + [StringNode(6...19)(nil, (6...19), nil, "foo\rbar\r\n" + "baz\n")], + (19...23) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt new file mode 100644 index 0000000000..5ef9682601 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt @@ -0,0 +1,10 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [InterpolatedStringNode(0...27)( + (0...5), + [StringNode(7...22)(nil, (7...22), nil, "foo\rbar\r\r\n" + "baz\r\n")], + (22...27) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt b/test/yarp/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt new file mode 100644 index 0000000000..57cd5f75df --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt @@ -0,0 +1,15 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [InterpolatedStringNode(0...21)( + (0...5), + [StringNode(6...11)(nil, (6...11), nil, "foo\r"), + EmbeddedVariableNode(11...16)( + (11...12), + InstanceVariableReadNode(12...16)() + ), + StringNode(16...17)(nil, (16...17), nil, "\n")], + (17...21) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt b/test/yarp/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt new file mode 100644 index 0000000000..6cc4d8ad45 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt @@ -0,0 +1,15 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [InterpolatedStringNode(0...24)( + (0...5), + [StringNode(7...12)(nil, (7...12), nil, "foo\r"), + EmbeddedVariableNode(12...17)( + (12...13), + InstanceVariableReadNode(13...17)() + ), + StringNode(17...19)(nil, (17...19), nil, "\r\n")], + (19...24) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt b/test/yarp/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt new file mode 100644 index 0000000000..3ea8c05892 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt @@ -0,0 +1,10 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [InterpolatedStringNode(0...23)( + (0...10), + [StringNode(11...15)(nil, (11...15), nil, "\#${\n")], + (15...23) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt b/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt new file mode 100644 index 0000000000..d3c5c52655 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt @@ -0,0 +1,10 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [InterpolatedStringNode(0...18)( + (0...5), + [StringNode(6...14)(nil, (6...14), nil, "\r\n" + "\r\r\n" + "\r\n")], + (14...18) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt b/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt new file mode 100644 index 0000000000..c38bebfd07 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt @@ -0,0 +1,15 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [InterpolatedStringNode(0...23)( + (0...5), + [StringNode(7...18)( + nil, + (7...18), + nil, + "\r\r\n" + "\r\r\r\n" + "\r\r\n" + )], + (18...23) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/heredoc_wtf_I_hate_you.txt b/test/yarp/snapshots/seattlerb/heredoc_wtf_I_hate_you.txt new file mode 100644 index 0000000000..9547fe7657 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/heredoc_wtf_I_hate_you.txt @@ -0,0 +1,51 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [CallNode(0...30)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...30)( + [CallNode(2...30)( + CallNode(2...26)( + InterpolatedStringNode(2...22)( + (2...8), + [StringNode(12...16)(nil, (12...16), nil, " a\n")], + (16...22) + ), + nil, + (8...9), + nil, + ArgumentsNode(9...26)( + [InterpolatedStringNode(9...26)( + (9...10), + [StringNode(10...12)(nil, (10...12), nil, "b\n"), + StringNode(22...25)(nil, (22...25), nil, " c")], + (25...26) + )] + ), + nil, + nil, + 0, + "+" + ), + nil, + (26...27), + nil, + ArgumentsNode(27...30)( + [StringNode(27...30)((27...28), (28...29), (29...30), "d")] + ), + nil, + nil, + 0, + "+" + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/i_fucking_hate_line_numbers.txt b/test/yarp/snapshots/seattlerb/i_fucking_hate_line_numbers.txt new file mode 100644 index 0000000000..100e56df89 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/i_fucking_hate_line_numbers.txt @@ -0,0 +1,131 @@ +ProgramNode(0...104)( + [], + StatementsNode(0...104)( + [IfNode(0...104)( + (0...2), + TrueNode(3...7)(), + StatementsNode(10...100)( + [CallNode(10...13)( + nil, + nil, + (10...11), + nil, + ArgumentsNode(12...13)([IntegerNode(12...13)()]), + nil, + nil, + 0, + "p" + ), + CallNode(16...21)( + CallNode(16...17)(nil, nil, (16...17), nil, nil, nil, nil, 0, "a"), + (17...18), + (18...19), + nil, + ArgumentsNode(20...21)([IntegerNode(20...21)()]), + nil, + nil, + 0, + "b" + ), + CallNode(24...32)( + CallNode(24...25)(nil, nil, (24...25), nil, nil, nil, nil, 0, "c"), + (25...26), + (26...27), + nil, + ArgumentsNode(28...32)( + [IntegerNode(28...29)(), IntegerNode(31...32)()] + ), + nil, + nil, + 0, + "d" + ), + CallNode(35...40)( + CallNode(35...36)(nil, nil, (35...36), nil, nil, nil, nil, 0, "e"), + (36...37), + (37...38), + nil, + ArgumentsNode(39...40)([IntegerNode(39...40)()]), + nil, + nil, + 0, + "f" + ), + CallNode(43...51)( + CallNode(43...44)(nil, nil, (43...44), nil, nil, nil, nil, 0, "g"), + (44...45), + (45...46), + nil, + ArgumentsNode(47...51)( + [IntegerNode(47...48)(), IntegerNode(50...51)()] + ), + nil, + nil, + 0, + "h" + ), + CallNode(54...58)( + nil, + nil, + (54...55), + (55...56), + ArgumentsNode(56...57)([IntegerNode(56...57)()]), + (57...58), + nil, + 0, + "p" + ), + CallNode(61...67)( + CallNode(61...62)(nil, nil, (61...62), nil, nil, nil, nil, 0, "a"), + (62...63), + (63...64), + (64...65), + ArgumentsNode(65...66)([IntegerNode(65...66)()]), + (66...67), + nil, + 0, + "b" + ), + CallNode(70...79)( + CallNode(70...71)(nil, nil, (70...71), nil, nil, nil, nil, 0, "c"), + (71...72), + (72...73), + (73...74), + ArgumentsNode(74...78)( + [IntegerNode(74...75)(), IntegerNode(77...78)()] + ), + (78...79), + nil, + 0, + "d" + ), + CallNode(82...88)( + CallNode(82...83)(nil, nil, (82...83), nil, nil, nil, nil, 0, "e"), + (83...84), + (84...85), + (85...86), + ArgumentsNode(86...87)([IntegerNode(86...87)()]), + (87...88), + nil, + 0, + "f" + ), + CallNode(91...100)( + CallNode(91...92)(nil, nil, (91...92), nil, nil, nil, nil, 0, "g"), + (92...93), + (93...94), + (94...95), + ArgumentsNode(95...99)( + [IntegerNode(95...96)(), IntegerNode(98...99)()] + ), + (99...100), + nil, + 0, + "h" + )] + ), + nil, + (101...104) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/i_fucking_hate_line_numbers2.txt b/test/yarp/snapshots/seattlerb/i_fucking_hate_line_numbers2.txt new file mode 100644 index 0000000000..49bb711232 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/i_fucking_hate_line_numbers2.txt @@ -0,0 +1,52 @@ +ProgramNode(0...48)( + [:b, :c], + StatementsNode(0...48)( + [IfNode(0...46)( + (0...2), + TrueNode(3...7)(), + StatementsNode(15...42)( + [CallNode(15...21)( + nil, + nil, + (15...16), + (16...17), + ArgumentsNode(17...20)( + [StringNode(17...20)((17...18), (18...19), (19...20), "a")] + ), + (20...21), + nil, + 0, + "p" + ), + LocalVariableWriteNode(24...29)( + :b, + 0, + IntegerNode(28...29)(), + (24...25), + (26...27) + ), + CallNode(32...35)( + nil, + nil, + (32...33), + nil, + ArgumentsNode(34...35)([LocalVariableReadNode(34...35)(:b, 0)]), + nil, + nil, + 0, + "p" + ), + LocalVariableWriteNode(38...42)( + :c, + 0, + IntegerNode(41...42)(), + (38...39), + (40...41) + )] + ), + nil, + (43...46) + ), + CallNode(47...48)(nil, nil, (47...48), nil, nil, nil, nil, 0, "a")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/i_have_no_freakin_clue.txt b/test/yarp/snapshots/seattlerb/i_have_no_freakin_clue.txt new file mode 100644 index 0000000000..78772ca20d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/i_have_no_freakin_clue.txt @@ -0,0 +1,49 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [IfNode(0...13)( + nil, + IntegerNode(0...1)(), + StatementsNode(4...9)( + [CallNode(4...9)( + nil, + nil, + (4...5), + (5...6), + ArgumentsNode(6...8)( + [StringNode(6...8)((6...7), (7...7), (7...8), "")] + ), + (8...9), + nil, + 0, + "b" + )] + ), + ElseNode(10...13)( + (10...11), + StatementsNode(12...13)([IntegerNode(12...13)()]), + nil + ), + nil + ), + CallNode(14...20)( + nil, + nil, + (14...15), + nil, + ArgumentsNode(16...20)( + [KeywordHashNode(16...20)( + [AssocNode(16...20)( + SymbolNode(16...18)(nil, (16...17), (17...18), "d"), + IntegerNode(19...20)(), + nil + )] + )] + ), + nil, + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/if_elsif.txt b/test/yarp/snapshots/seattlerb/if_elsif.txt new file mode 100644 index 0000000000..6f1edfb62e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/if_elsif.txt @@ -0,0 +1,12 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [IfNode(0...18)( + (0...2), + IntegerNode(3...4)(), + nil, + IfNode(6...13)((6...11), IntegerNode(12...13)(), nil, nil, nil), + (15...18) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/if_symbol.txt b/test/yarp/snapshots/seattlerb/if_symbol.txt new file mode 100644 index 0000000000..4e4fdcefce --- /dev/null +++ b/test/yarp/snapshots/seattlerb/if_symbol.txt @@ -0,0 +1,22 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [IfNode(0...12)( + (0...2), + CallNode(3...7)( + nil, + nil, + (3...4), + nil, + ArgumentsNode(5...7)([SymbolNode(5...7)((5...6), (6...7), nil, "x")]), + nil, + nil, + 0, + "f" + ), + nil, + nil, + (9...12) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/in_expr_no_case.txt b/test/yarp/snapshots/seattlerb/in_expr_no_case.txt new file mode 100644 index 0000000000..093b2a65f8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/in_expr_no_case.txt @@ -0,0 +1,10 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [MatchPredicateNode(0...16)( + StringNode(0...6)((0...1), (1...5), (5...6), "woot"), + ConstantReadNode(10...16)(), + (7...9) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/index_0.txt b/test/yarp/snapshots/seattlerb/index_0.txt new file mode 100644 index 0000000000..7e2d6f980f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/index_0.txt @@ -0,0 +1,18 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + nil, + (1...3), + (1...2), + ArgumentsNode(6...7)( + [CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "b")] + ), + (2...3), + nil, + 0, + "[]=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/index_0_opasgn.txt b/test/yarp/snapshots/seattlerb/index_0_opasgn.txt new file mode 100644 index 0000000000..3271bfa598 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/index_0_opasgn.txt @@ -0,0 +1,21 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallOperatorWriteNode(0...8)( + CallNode(0...3)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + nil, + (1...3), + (1...2), + nil, + (2...3), + nil, + 0, + "[]=" + ), + (4...6), + CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "b"), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/integer_with_if_modifier.txt b/test/yarp/snapshots/seattlerb/integer_with_if_modifier.txt new file mode 100644 index 0000000000..f57ed6c422 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/integer_with_if_modifier.txt @@ -0,0 +1,12 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [IfNode(0...12)( + (5...7), + TrueNode(8...12)(), + StatementsNode(0...5)([IntegerNode(0...5)()]), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt b/test/yarp/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt new file mode 100644 index 0000000000..0a779610a6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt @@ -0,0 +1,12 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [ArrayNode(0...9)( + [SymbolNode(4...5)(nil, (4...5), nil, "a"), + SymbolNode(6...7)(nil, (6...7), nil, "b")], + (0...3), + (8...9) + ), + IntegerNode(10...11)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/interpolated_word_array_line_breaks.txt b/test/yarp/snapshots/seattlerb/interpolated_word_array_line_breaks.txt new file mode 100644 index 0000000000..901575f9a8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/interpolated_word_array_line_breaks.txt @@ -0,0 +1,12 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [ArrayNode(0...9)( + [StringNode(4...5)(nil, (4...5), nil, "a"), + StringNode(6...7)(nil, (6...7), nil, "b")], + (0...3), + (8...9) + ), + IntegerNode(10...11)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_1.txt b/test/yarp/snapshots/seattlerb/iter_args_1.txt new file mode 100644 index 0000000000..9fdbf68818 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_1.txt @@ -0,0 +1,36 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...11)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...11)( + [:a, :b], + BlockParametersNode(4...9)( + ParametersNode(5...8)( + [RequiredParameterNode(5...6)(:a), + RequiredParameterNode(7...8)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (8...9) + ), + nil, + (2...3), + (10...11) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_10_1.txt b/test/yarp/snapshots/seattlerb/iter_args_10_1.txt new file mode 100644 index 0000000000..5da1b5260a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_10_1.txt @@ -0,0 +1,40 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [CallNode(0...21)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...21)( + [:a, :b, :c], + BlockParametersNode(4...19)( + ParametersNode(5...18)( + [RequiredParameterNode(5...6)(:a)], + [OptionalParameterNode(8...14)( + :b, + (8...9), + (10...11), + IntegerNode(12...14)() + )], + [], + RestParameterNode(16...18)((16...17), (17...18)), + [], + nil, + nil + ), + [], + (4...5), + (18...19) + ), + nil, + (2...3), + (20...21) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_10_2.txt b/test/yarp/snapshots/seattlerb/iter_args_10_2.txt new file mode 100644 index 0000000000..5059820edc --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_10_2.txt @@ -0,0 +1,40 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [CallNode(0...25)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...25)( + [:a, :b, :c, :d], + BlockParametersNode(4...23)( + ParametersNode(5...22)( + [RequiredParameterNode(5...6)(:a)], + [OptionalParameterNode(8...14)( + :b, + (8...9), + (10...11), + IntegerNode(12...14)() + )], + [], + RestParameterNode(16...18)((16...17), (17...18)), + [], + nil, + BlockParameterNode(20...22)((21...22), (20...21)) + ), + [], + (4...5), + (22...23) + ), + nil, + (2...3), + (24...25) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_11_1.txt b/test/yarp/snapshots/seattlerb/iter_args_11_1.txt new file mode 100644 index 0000000000..83f48569dc --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_11_1.txt @@ -0,0 +1,40 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [CallNode(0...24)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...24)( + [:a, :b, :c, :d], + BlockParametersNode(4...22)( + ParametersNode(5...21)( + [RequiredParameterNode(5...6)(:a)], + [OptionalParameterNode(8...14)( + :b, + (8...9), + (10...11), + IntegerNode(12...14)() + )], + [RequiredParameterNode(20...21)(:d)], + RestParameterNode(16...18)((16...17), (17...18)), + [], + nil, + nil + ), + [], + (4...5), + (21...22) + ), + nil, + (2...3), + (23...24) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_11_2.txt b/test/yarp/snapshots/seattlerb/iter_args_11_2.txt new file mode 100644 index 0000000000..b14ca29440 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_11_2.txt @@ -0,0 +1,40 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CallNode(0...28)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...28)( + [:a, :b, :c, :d, :e], + BlockParametersNode(4...26)( + ParametersNode(5...25)( + [RequiredParameterNode(5...6)(:a)], + [OptionalParameterNode(8...14)( + :b, + (8...9), + (10...11), + IntegerNode(12...14)() + )], + [RequiredParameterNode(20...21)(:d)], + RestParameterNode(16...18)((16...17), (17...18)), + [], + nil, + BlockParameterNode(23...25)((24...25), (23...24)) + ), + [], + (4...5), + (25...26) + ), + nil, + (2...3), + (27...28) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_2__19.txt b/test/yarp/snapshots/seattlerb/iter_args_2__19.txt new file mode 100644 index 0000000000..e9e94d3d6e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_2__19.txt @@ -0,0 +1,40 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...14)( + [:a, :b], + BlockParametersNode(4...12)( + ParametersNode(5...11)( + [RequiredDestructuredParameterNode(5...11)( + [RequiredParameterNode(6...7)(:a), + RequiredParameterNode(9...10)(:b)], + (5...6), + (10...11) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (11...12) + ), + nil, + (2...3), + (13...14) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_3.txt b/test/yarp/snapshots/seattlerb/iter_args_3.txt new file mode 100644 index 0000000000..8d191cc2e5 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_3.txt @@ -0,0 +1,42 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [CallNode(0...20)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...20)( + [:a, :b, :c, :d], + BlockParametersNode(4...18)( + ParametersNode(5...17)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...14)( + [RequiredParameterNode(9...10)(:b), + RequiredParameterNode(12...13)(:c)], + (8...9), + (13...14) + ), + RequiredParameterNode(16...17)(:d)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (17...18) + ), + nil, + (2...3), + (19...20) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_4.txt b/test/yarp/snapshots/seattlerb/iter_args_4.txt new file mode 100644 index 0000000000..eaa140a522 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_4.txt @@ -0,0 +1,35 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...16)( + [:a, :b, :c], + BlockParametersNode(4...14)( + ParametersNode(5...13)( + [RequiredParameterNode(5...6)(:a)], + [], + [RequiredParameterNode(12...13)(:c)], + RestParameterNode(8...10)((8...9), (9...10)), + [], + nil, + nil + ), + [], + (4...5), + (13...14) + ), + nil, + (2...3), + (15...16) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_5.txt b/test/yarp/snapshots/seattlerb/iter_args_5.txt new file mode 100644 index 0000000000..826ec62097 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_5.txt @@ -0,0 +1,35 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...13)( + [:a, :b], + BlockParametersNode(4...11)( + ParametersNode(5...10)( + [RequiredParameterNode(5...6)(:a)], + [], + [], + nil, + [], + nil, + BlockParameterNode(8...10)((9...10), (8...9)) + ), + [], + (4...5), + (10...11) + ), + nil, + (2...3), + (12...13) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_6.txt b/test/yarp/snapshots/seattlerb/iter_args_6.txt new file mode 100644 index 0000000000..8a69456b62 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_6.txt @@ -0,0 +1,40 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...18)( + [:a, :b, :c], + BlockParametersNode(4...16)( + ParametersNode(5...15)( + [RequiredParameterNode(5...6)(:a)], + [OptionalParameterNode(8...12)( + :b, + (8...9), + (9...10), + IntegerNode(10...12)() + )], + [RequiredParameterNode(14...15)(:c)], + nil, + [], + nil, + nil + ), + [], + (4...5), + (15...16) + ), + nil, + (2...3), + (17...18) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_7_1.txt b/test/yarp/snapshots/seattlerb/iter_args_7_1.txt new file mode 100644 index 0000000000..ad285d8cad --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_7_1.txt @@ -0,0 +1,40 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...18)( + [:a, :b], + BlockParametersNode(4...16)( + ParametersNode(5...15)( + [], + [OptionalParameterNode(5...11)( + :a, + (5...6), + (7...8), + IntegerNode(9...11)() + )], + [], + RestParameterNode(13...15)((13...14), (14...15)), + [], + nil, + nil + ), + [], + (4...5), + (15...16) + ), + nil, + (2...3), + (17...18) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_7_2.txt b/test/yarp/snapshots/seattlerb/iter_args_7_2.txt new file mode 100644 index 0000000000..c151325c93 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_7_2.txt @@ -0,0 +1,40 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [CallNode(0...22)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...22)( + [:a, :b, :c], + BlockParametersNode(4...20)( + ParametersNode(5...19)( + [], + [OptionalParameterNode(5...11)( + :a, + (5...6), + (7...8), + IntegerNode(9...11)() + )], + [], + RestParameterNode(13...15)((13...14), (14...15)), + [], + nil, + BlockParameterNode(17...19)((18...19), (17...18)) + ), + [], + (4...5), + (19...20) + ), + nil, + (2...3), + (21...22) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_8_1.txt b/test/yarp/snapshots/seattlerb/iter_args_8_1.txt new file mode 100644 index 0000000000..1a4ed0f599 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_8_1.txt @@ -0,0 +1,40 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [CallNode(0...21)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...21)( + [:a, :b, :c], + BlockParametersNode(4...19)( + ParametersNode(5...18)( + [], + [OptionalParameterNode(5...11)( + :a, + (5...6), + (7...8), + IntegerNode(9...11)() + )], + [RequiredParameterNode(17...18)(:c)], + RestParameterNode(13...15)((13...14), (14...15)), + [], + nil, + nil + ), + [], + (4...5), + (18...19) + ), + nil, + (2...3), + (20...21) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_8_2.txt b/test/yarp/snapshots/seattlerb/iter_args_8_2.txt new file mode 100644 index 0000000000..84b0ae8e65 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_8_2.txt @@ -0,0 +1,40 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [CallNode(0...25)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...25)( + [:a, :b, :c, :d], + BlockParametersNode(4...23)( + ParametersNode(5...22)( + [], + [OptionalParameterNode(5...11)( + :a, + (5...6), + (7...8), + IntegerNode(9...11)() + )], + [RequiredParameterNode(17...18)(:c)], + RestParameterNode(13...15)((13...14), (14...15)), + [], + nil, + BlockParameterNode(20...22)((21...22), (20...21)) + ), + [], + (4...5), + (22...23) + ), + nil, + (2...3), + (24...25) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_9_1.txt b/test/yarp/snapshots/seattlerb/iter_args_9_1.txt new file mode 100644 index 0000000000..68d1fe9338 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_9_1.txt @@ -0,0 +1,40 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:a, :b], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [], + [OptionalParameterNode(5...11)( + :a, + (5...6), + (7...8), + IntegerNode(9...11)() + )], + [RequiredParameterNode(13...14)(:b)], + nil, + [], + nil, + nil + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_args_9_2.txt b/test/yarp/snapshots/seattlerb/iter_args_9_2.txt new file mode 100644 index 0000000000..b85e5a84bb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_args_9_2.txt @@ -0,0 +1,40 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [CallNode(0...21)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...21)( + [:a, :b, :c], + BlockParametersNode(4...19)( + ParametersNode(5...18)( + [], + [OptionalParameterNode(5...11)( + :a, + (5...6), + (7...8), + IntegerNode(9...11)() + )], + [RequiredParameterNode(13...14)(:b)], + nil, + [], + nil, + BlockParameterNode(16...18)((17...18), (16...17)) + ), + [], + (4...5), + (18...19) + ), + nil, + (2...3), + (20...21) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_kwarg.txt b/test/yarp/snapshots/seattlerb/iter_kwarg.txt new file mode 100644 index 0000000000..a3984ee42f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_kwarg.txt @@ -0,0 +1,35 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...12)( + [:b], + BlockParametersNode(4...10)( + ParametersNode(5...9)( + [], + [], + [], + nil, + [KeywordParameterNode(5...9)((5...7), IntegerNode(8...9)())], + nil, + nil + ), + [], + (4...5), + (9...10) + ), + nil, + (2...3), + (11...12) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/iter_kwarg_kwsplat.txt b/test/yarp/snapshots/seattlerb/iter_kwarg_kwsplat.txt new file mode 100644 index 0000000000..39dce0cca3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/iter_kwarg_kwsplat.txt @@ -0,0 +1,35 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:b, :c], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [], + [], + [], + nil, + [KeywordParameterNode(5...9)((5...7), IntegerNode(8...9)())], + KeywordRestParameterNode(11...14)((11...13), (13...14)), + nil + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me.txt b/test/yarp/snapshots/seattlerb/kill_me.txt new file mode 100644 index 0000000000..ba5d6c3aed --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me.txt @@ -0,0 +1,44 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...18)( + [:a, :b, :c], + BlockParametersNode(4...16)( + ParametersNode(5...15)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...15)( + [RequiredParameterNode(9...10)(:b), + SplatNode(12...14)( + (12...13), + RequiredParameterNode(13...14)(:c) + )], + (8...9), + (14...15) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (15...16) + ), + nil, + (2...3), + (17...18) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me2.txt b/test/yarp/snapshots/seattlerb/kill_me2.txt new file mode 100644 index 0000000000..3981937066 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me2.txt @@ -0,0 +1,35 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...13)( + [:a, :b], + BlockParametersNode(4...11)( + ParametersNode(5...10)( + [], + [], + [RequiredParameterNode(9...10)(:b)], + RestParameterNode(5...7)((5...6), (6...7)), + [], + nil, + nil + ), + [], + (4...5), + (10...11) + ), + nil, + (2...3), + (12...13) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me3.txt b/test/yarp/snapshots/seattlerb/kill_me3.txt new file mode 100644 index 0000000000..7a25bc9c8b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me3.txt @@ -0,0 +1,35 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:a, :b, :c], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [], + [], + [RequiredParameterNode(9...10)(:b)], + RestParameterNode(5...7)((5...6), (6...7)), + [], + nil, + BlockParameterNode(12...14)((13...14), (12...13)) + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me4.txt b/test/yarp/snapshots/seattlerb/kill_me4.txt new file mode 100644 index 0000000000..80211017a6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me4.txt @@ -0,0 +1,22 @@ +ProgramNode(0...17)( + [:a], + StatementsNode(0...17)( + [LocalVariableWriteNode(0...17)( + :a, + 0, + IfNode(2...17)( + nil, + CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "b"), + StatementsNode(6...10)([TrueNode(6...10)()]), + ElseNode(10...17)( + (10...11), + StatementsNode(12...17)([FalseNode(12...17)()]), + nil + ), + nil + ), + (0...1), + (1...2) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me5.txt b/test/yarp/snapshots/seattlerb/kill_me5.txt new file mode 100644 index 0000000000..e7aaafc87a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me5.txt @@ -0,0 +1,35 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [CallNode(0...19)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...19)( + [LambdaNode(2...19)( + [], + (2...4), + BlockParametersNode(4...6)(nil, [], (4...5), (5...6)), + StatementsNode(9...17)( + [CallNode(9...17)( + nil, + nil, + (9...10), + nil, + nil, + nil, + BlockNode(11...17)([], nil, nil, (11...13), (14...17)), + 0, + "g" + )] + ) + )] + ), + nil, + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me_10.txt b/test/yarp/snapshots/seattlerb/kill_me_10.txt new file mode 100644 index 0000000000..7b7dc6f41b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me_10.txt @@ -0,0 +1,44 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...18)( + [:a, :b, :c], + BlockParametersNode(4...16)( + ParametersNode(5...15)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...15)( + [SplatNode(9...11)( + (9...10), + RequiredParameterNode(10...11)(:b) + ), + RequiredParameterNode(13...14)(:c)], + (8...9), + (14...15) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (15...16) + ), + nil, + (2...3), + (17...18) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me_11.txt b/test/yarp/snapshots/seattlerb/kill_me_11.txt new file mode 100644 index 0000000000..c5b8b81b18 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me_11.txt @@ -0,0 +1,40 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...14)( + [:a], + BlockParametersNode(4...12)( + ParametersNode(5...11)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...11)( + [SplatNode(9...10)((9...10), nil)], + (8...9), + (10...11) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (11...12) + ), + nil, + (2...3), + (13...14) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me_12.txt b/test/yarp/snapshots/seattlerb/kill_me_12.txt new file mode 100644 index 0000000000..87dd280a9e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me_12.txt @@ -0,0 +1,41 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:a, :b], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...14)( + [SplatNode(9...10)((9...10), nil), + RequiredParameterNode(12...13)(:b)], + (8...9), + (13...14) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me_6.txt b/test/yarp/snapshots/seattlerb/kill_me_6.txt new file mode 100644 index 0000000000..578a22e843 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me_6.txt @@ -0,0 +1,45 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [CallNode(0...21)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...21)( + [:a, :b, :c, :d], + BlockParametersNode(4...19)( + ParametersNode(5...18)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...18)( + [RequiredParameterNode(9...10)(:b), + SplatNode(12...14)( + (12...13), + RequiredParameterNode(13...14)(:c) + ), + RequiredParameterNode(16...17)(:d)], + (8...9), + (17...18) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (18...19) + ), + nil, + (2...3), + (20...21) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me_7.txt b/test/yarp/snapshots/seattlerb/kill_me_7.txt new file mode 100644 index 0000000000..a306b1f895 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me_7.txt @@ -0,0 +1,41 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...17)( + [:a, :b], + BlockParametersNode(4...15)( + ParametersNode(5...14)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...14)( + [RequiredParameterNode(9...10)(:b), + SplatNode(12...13)((12...13), nil)], + (8...9), + (13...14) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (14...15) + ), + nil, + (2...3), + (16...17) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me_8.txt b/test/yarp/snapshots/seattlerb/kill_me_8.txt new file mode 100644 index 0000000000..9d0eb81357 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me_8.txt @@ -0,0 +1,42 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [CallNode(0...20)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...20)( + [:a, :b, :c], + BlockParametersNode(4...18)( + ParametersNode(5...17)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...17)( + [RequiredParameterNode(9...10)(:b), + SplatNode(12...13)((12...13), nil), + RequiredParameterNode(15...16)(:c)], + (8...9), + (16...17) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (17...18) + ), + nil, + (2...3), + (19...20) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/kill_me_9.txt b/test/yarp/snapshots/seattlerb/kill_me_9.txt new file mode 100644 index 0000000000..a3a5ccd89d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/kill_me_9.txt @@ -0,0 +1,43 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...15)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...15)( + [:a, :b], + BlockParametersNode(4...13)( + ParametersNode(5...12)( + [RequiredParameterNode(5...6)(:a), + RequiredDestructuredParameterNode(8...12)( + [SplatNode(9...11)( + (9...10), + RequiredParameterNode(10...11)(:b) + )], + (8...9), + (11...12) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (12...13) + ), + nil, + (2...3), + (14...15) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/label_vs_string.txt b/test/yarp/snapshots/seattlerb/label_vs_string.txt new file mode 100644 index 0000000000..bc2718a208 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/label_vs_string.txt @@ -0,0 +1,18 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + CallNode(0...4)(nil, nil, (0...4), nil, nil, nil, nil, 0, "_buf"), + nil, + (5...7), + nil, + ArgumentsNode(8...12)( + [StringNode(8...12)((8...9), (9...11), (11...12), ":\n")] + ), + nil, + nil, + 0, + "<<" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lambda_do_vs_brace.txt b/test/yarp/snapshots/seattlerb/lambda_do_vs_brace.txt new file mode 100644 index 0000000000..1c9e2efc33 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lambda_do_vs_brace.txt @@ -0,0 +1,63 @@ +ProgramNode(0...46)( + [], + StatementsNode(0...46)( + [CallNode(0...11)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...11)([LambdaNode(2...11)([], (2...4), nil, nil)]), + nil, + nil, + 0, + "f" + ), + CallNode(13...20)( + nil, + nil, + (13...14), + nil, + ArgumentsNode(15...20)([LambdaNode(15...20)([], (15...17), nil, nil)]), + nil, + nil, + 0, + "f" + ), + CallNode(22...35)( + nil, + nil, + (22...23), + nil, + ArgumentsNode(24...35)( + [LambdaNode(24...35)( + [], + (24...26), + BlockParametersNode(26...28)(nil, [], (26...27), (27...28)), + nil + )] + ), + nil, + nil, + 0, + "f" + ), + CallNode(37...46)( + nil, + nil, + (37...38), + nil, + ArgumentsNode(39...46)( + [LambdaNode(39...46)( + [], + (39...41), + BlockParametersNode(41...43)(nil, [], (41...42), (42...43)), + nil + )] + ), + nil, + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lasgn_arg_rescue_arg.txt b/test/yarp/snapshots/seattlerb/lasgn_arg_rescue_arg.txt new file mode 100644 index 0000000000..03ec05d3a3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lasgn_arg_rescue_arg.txt @@ -0,0 +1,16 @@ +ProgramNode(0...14)( + [:a], + StatementsNode(0...14)( + [LocalVariableWriteNode(0...14)( + :a, + 0, + RescueModifierNode(4...14)( + IntegerNode(4...5)(), + (6...12), + IntegerNode(13...14)() + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lasgn_call_bracket_rescue_arg.txt b/test/yarp/snapshots/seattlerb/lasgn_call_bracket_rescue_arg.txt new file mode 100644 index 0000000000..c28b8c2178 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lasgn_call_bracket_rescue_arg.txt @@ -0,0 +1,26 @@ +ProgramNode(0...17)( + [:a], + StatementsNode(0...17)( + [LocalVariableWriteNode(0...17)( + :a, + 0, + RescueModifierNode(4...17)( + CallNode(4...8)( + nil, + nil, + (4...5), + (5...6), + ArgumentsNode(6...7)([IntegerNode(6...7)()]), + (7...8), + nil, + 0, + "b" + ), + (9...15), + IntegerNode(16...17)() + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lasgn_call_nobracket_rescue_arg.txt b/test/yarp/snapshots/seattlerb/lasgn_call_nobracket_rescue_arg.txt new file mode 100644 index 0000000000..bfb7c9b678 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lasgn_call_nobracket_rescue_arg.txt @@ -0,0 +1,28 @@ +ProgramNode(0...16)( + [:a], + StatementsNode(0...16)( + [LocalVariableWriteNode(0...16)( + :a, + 0, + CallNode(4...16)( + nil, + nil, + (4...5), + nil, + ArgumentsNode(6...16)( + [RescueModifierNode(6...16)( + IntegerNode(6...7)(), + (8...14), + IntegerNode(15...16)() + )] + ), + nil, + nil, + 0, + "b" + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lasgn_command.txt b/test/yarp/snapshots/seattlerb/lasgn_command.txt new file mode 100644 index 0000000000..3f27e4f78c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lasgn_command.txt @@ -0,0 +1,22 @@ +ProgramNode(0...9)( + [:a], + StatementsNode(0...9)( + [LocalVariableWriteNode(0...9)( + :a, + 0, + CallNode(4...9)( + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "b"), + (5...6), + (6...7), + nil, + ArgumentsNode(8...9)([IntegerNode(8...9)()]), + nil, + nil, + 0, + "c" + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lasgn_env.txt b/test/yarp/snapshots/seattlerb/lasgn_env.txt new file mode 100644 index 0000000000..33f2f4701c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lasgn_env.txt @@ -0,0 +1,12 @@ +ProgramNode(0...6)( + [:a], + StatementsNode(0...6)( + [LocalVariableWriteNode(0...6)( + :a, + 0, + IntegerNode(4...6)(), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lasgn_ivar_env.txt b/test/yarp/snapshots/seattlerb/lasgn_ivar_env.txt new file mode 100644 index 0000000000..b71eeaf2a7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lasgn_ivar_env.txt @@ -0,0 +1,6 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [InstanceVariableWriteNode(0...7)((0...2), IntegerNode(5...7)(), (3...4))] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lasgn_lasgn_command_call.txt b/test/yarp/snapshots/seattlerb/lasgn_lasgn_command_call.txt new file mode 100644 index 0000000000..4c272c1680 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lasgn_lasgn_command_call.txt @@ -0,0 +1,28 @@ +ProgramNode(0...11)( + [:a, :b], + StatementsNode(0...11)( + [LocalVariableWriteNode(0...11)( + :a, + 0, + LocalVariableWriteNode(4...11)( + :b, + 0, + CallNode(8...11)( + nil, + nil, + (8...9), + nil, + ArgumentsNode(10...11)([IntegerNode(10...11)()]), + nil, + nil, + 0, + "c" + ), + (4...5), + (6...7) + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/lasgn_middle_splat.txt b/test/yarp/snapshots/seattlerb/lasgn_middle_splat.txt new file mode 100644 index 0000000000..b9cb8e9f9b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/lasgn_middle_splat.txt @@ -0,0 +1,21 @@ +ProgramNode(0...12)( + [:a], + StatementsNode(0...12)( + [LocalVariableWriteNode(0...12)( + :a, + 0, + ArrayNode(4...12)( + [CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "b"), + SplatNode(7...9)( + (7...8), + CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "c") + ), + CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 0, "d")], + nil, + nil + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/magic_encoding_comment.txt b/test/yarp/snapshots/seattlerb/magic_encoding_comment.txt new file mode 100644 index 0000000000..2ab320eda8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/magic_encoding_comment.txt @@ -0,0 +1,36 @@ +ProgramNode(18...90)( + [], + StatementsNode(18...90)( + [ClassNode(18...90)( + [], + (18...23), + ConstantReadNode(24...52)(), + nil, + nil, + StatementsNode(54...86)( + [DefNode(54...86)( + (63...65), + SelfNode(58...62)(), + nil, + StatementsNode(67...81)( + [LocalVariableWriteNode(67...81)( + :così, + 0, + SymbolNode(75...81)((75...76), (76...81), nil, "però"), + (67...72), + (73...74) + )] + ), + [:così], + (54...57), + (62...63), + nil, + nil, + nil, + (83...86) + )] + ), + (87...90) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_anon_splat_arg.txt b/test/yarp/snapshots/seattlerb/masgn_anon_splat_arg.txt new file mode 100644 index 0000000000..eb18d7615b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_anon_splat_arg.txt @@ -0,0 +1,19 @@ +ProgramNode(0...8)( + [:a], + StatementsNode(0...8)( + [MultiWriteNode(0...8)( + [MultiWriteNode(0...1)( + [SplatNode(0...1)((0...1), nil)], + nil, + nil, + nil, + nil + ), + LocalVariableWriteNode(3...4)(:a, 0, nil, (3...4), nil)], + (5...6), + CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "b"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_arg_colon_arg.txt b/test/yarp/snapshots/seattlerb/masgn_arg_colon_arg.txt new file mode 100644 index 0000000000..4b90bf3ddc --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_arg_colon_arg.txt @@ -0,0 +1,23 @@ +ProgramNode(0...11)( + [:a], + StatementsNode(0...11)( + [MultiWriteNode(0...11)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + CallNode(3...7)( + CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 0, "b"), + (4...6), + (6...7), + nil, + nil, + nil, + nil, + 0, + "c=" + )], + (8...9), + CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 0, "d"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_arg_ident.txt b/test/yarp/snapshots/seattlerb/masgn_arg_ident.txt new file mode 100644 index 0000000000..7ca20a45ad --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_arg_ident.txt @@ -0,0 +1,23 @@ +ProgramNode(0...10)( + [:a], + StatementsNode(0...10)( + [MultiWriteNode(0...10)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + CallNode(3...6)( + CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 0, "b"), + (4...5), + (5...6), + nil, + nil, + nil, + nil, + 0, + "C=" + )], + (7...8), + CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "d"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_arg_splat_arg.txt b/test/yarp/snapshots/seattlerb/masgn_arg_splat_arg.txt new file mode 100644 index 0000000000..cdabe61852 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_arg_splat_arg.txt @@ -0,0 +1,17 @@ +ProgramNode(0...12)( + [:a, :b, :c], + StatementsNode(0...12)( + [MultiWriteNode(0...12)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + SplatNode(3...5)( + (3...4), + LocalVariableWriteNode(4...5)(:b, 0, nil, (4...5), nil) + ), + LocalVariableWriteNode(7...8)(:c, 0, nil, (7...8), nil)], + (9...10), + CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 0, "d"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_colon2.txt b/test/yarp/snapshots/seattlerb/masgn_colon2.txt new file mode 100644 index 0000000000..32d035afa3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_colon2.txt @@ -0,0 +1,25 @@ +ProgramNode(0...14)( + [:a], + StatementsNode(0...14)( + [MultiWriteNode(0...14)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + ConstantPathWriteNode(3...7)( + ConstantPathNode(3...7)( + CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 0, "b"), + ConstantReadNode(6...7)(), + (4...6) + ), + nil, + nil + )], + (8...9), + ArrayNode(10...14)( + [IntegerNode(10...11)(), IntegerNode(13...14)()], + nil, + nil + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_colon3.txt b/test/yarp/snapshots/seattlerb/masgn_colon3.txt new file mode 100644 index 0000000000..f02dcc1f50 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_colon3.txt @@ -0,0 +1,25 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [MultiWriteNode(0...15)( + [ConstantPathWriteNode(0...3)( + ConstantPathNode(0...3)(nil, ConstantReadNode(2...3)(), (0...2)), + nil, + nil + ), + ConstantPathWriteNode(5...8)( + ConstantPathNode(5...8)(nil, ConstantReadNode(7...8)(), (5...7)), + nil, + nil + )], + (9...10), + ArrayNode(11...15)( + [IntegerNode(11...12)(), IntegerNode(14...15)()], + nil, + nil + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_command_call.txt b/test/yarp/snapshots/seattlerb/masgn_command_call.txt new file mode 100644 index 0000000000..8ffc56de6f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_command_call.txt @@ -0,0 +1,23 @@ +ProgramNode(0...10)( + [:a], + StatementsNode(0...10)( + [MultiWriteNode(0...10)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + SplatNode(1...2)((1...2), nil)], + (3...4), + CallNode(5...10)( + CallNode(5...6)(nil, nil, (5...6), nil, nil, nil, nil, 0, "b"), + (6...7), + (7...8), + nil, + ArgumentsNode(9...10)([IntegerNode(9...10)()]), + nil, + nil, + 0, + "c" + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_double_paren.txt b/test/yarp/snapshots/seattlerb/masgn_double_paren.txt new file mode 100644 index 0000000000..85b4f05f31 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_double_paren.txt @@ -0,0 +1,19 @@ +ProgramNode(2...9)( + [:a, :b], + StatementsNode(2...9)( + [MultiWriteNode(2...9)( + [MultiWriteNode(2...5)( + [LocalVariableWriteNode(2...3)(:a, 0, nil, (2...3), nil), + LocalVariableWriteNode(4...5)(:b, 0, nil, (4...5), nil)], + nil, + nil, + (1...2), + (5...6) + )], + (7...8), + CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "c"), + (0...1), + (6...7) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_lhs_splat.txt b/test/yarp/snapshots/seattlerb/masgn_lhs_splat.txt new file mode 100644 index 0000000000..e8606e7152 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_lhs_splat.txt @@ -0,0 +1,19 @@ +ProgramNode(0...12)( + [:a], + StatementsNode(0...12)( + [MultiWriteNode(0...12)( + [SplatNode(0...2)( + (0...1), + LocalVariableWriteNode(1...2)(:a, 0, nil, (1...2), nil) + )], + (3...4), + ArrayNode(5...12)( + [IntegerNode(5...6)(), IntegerNode(8...9)(), IntegerNode(11...12)()], + nil, + nil + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_paren.txt b/test/yarp/snapshots/seattlerb/masgn_paren.txt new file mode 100644 index 0000000000..cdf4678bc4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_paren.txt @@ -0,0 +1,23 @@ +ProgramNode(1...12)( + [:a, :b], + StatementsNode(1...12)( + [MultiWriteNode(1...12)( + [LocalVariableWriteNode(1...2)(:a, 0, nil, (1...2), nil), + LocalVariableWriteNode(4...5)(:b, 0, nil, (4...5), nil)], + (7...8), + CallNode(9...12)( + CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "c"), + (10...11), + (11...12), + nil, + nil, + nil, + nil, + 0, + "d" + ), + (0...1), + (5...6) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_splat_arg.txt b/test/yarp/snapshots/seattlerb/masgn_splat_arg.txt new file mode 100644 index 0000000000..783ddde19a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_splat_arg.txt @@ -0,0 +1,22 @@ +ProgramNode(0...9)( + [:a, :b], + StatementsNode(0...9)( + [MultiWriteNode(0...9)( + [MultiWriteNode(0...2)( + [SplatNode(0...2)( + (0...1), + LocalVariableWriteNode(1...2)(:a, 0, nil, (1...2), nil) + )], + nil, + nil, + nil, + nil + ), + LocalVariableWriteNode(4...5)(:b, 0, nil, (4...5), nil)], + (6...7), + CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "c"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_splat_arg_arg.txt b/test/yarp/snapshots/seattlerb/masgn_splat_arg_arg.txt new file mode 100644 index 0000000000..be516e972b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_splat_arg_arg.txt @@ -0,0 +1,23 @@ +ProgramNode(0...12)( + [:a, :b, :c], + StatementsNode(0...12)( + [MultiWriteNode(0...12)( + [MultiWriteNode(0...2)( + [SplatNode(0...2)( + (0...1), + LocalVariableWriteNode(1...2)(:a, 0, nil, (1...2), nil) + )], + nil, + nil, + nil, + nil + ), + LocalVariableWriteNode(4...5)(:b, 0, nil, (4...5), nil), + LocalVariableWriteNode(7...8)(:c, 0, nil, (7...8), nil)], + (9...10), + CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 0, "d"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_star.txt b/test/yarp/snapshots/seattlerb/masgn_star.txt new file mode 100644 index 0000000000..8b7cb8e266 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_star.txt @@ -0,0 +1,12 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [MultiWriteNode(0...5)( + [SplatNode(0...1)((0...1), nil)], + (2...3), + IntegerNode(4...5)(), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/masgn_var_star_var.txt b/test/yarp/snapshots/seattlerb/masgn_var_star_var.txt new file mode 100644 index 0000000000..b172d0bb86 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/masgn_var_star_var.txt @@ -0,0 +1,14 @@ +ProgramNode(0...11)( + [:a, :b], + StatementsNode(0...11)( + [MultiWriteNode(0...11)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + SplatNode(3...4)((3...4), nil), + LocalVariableWriteNode(6...7)(:b, 0, nil, (6...7), nil)], + (8...9), + CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 0, "c"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/messy_op_asgn_lineno.txt b/test/yarp/snapshots/seattlerb/messy_op_asgn_lineno.txt new file mode 100644 index 0000000000..146ce2d61a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/messy_op_asgn_lineno.txt @@ -0,0 +1,55 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...15)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...15)( + [ParenthesesNode(2...15)( + StatementsNode(3...14)( + [ConstantPathOperatorWriteNode(3...14)( + ConstantPathNode(3...7)( + ConstantReadNode(3...4)(), + ConstantReadNode(6...7)(), + (4...6) + ), + (8...10), + CallNode(11...14)( + nil, + nil, + (11...12), + nil, + ArgumentsNode(13...14)( + [CallNode(13...14)( + nil, + nil, + (13...14), + nil, + nil, + nil, + nil, + 0, + "e" + )] + ), + nil, + nil, + 0, + "d" + ), + :* + )] + ), + (2...3), + (14...15) + )] + ), + nil, + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/method_call_assoc_trailing_comma.txt b/test/yarp/snapshots/seattlerb/method_call_assoc_trailing_comma.txt new file mode 100644 index 0000000000..9b8bec66d2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/method_call_assoc_trailing_comma.txt @@ -0,0 +1,24 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallNode(0...10)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + (3...4), + ArgumentsNode(4...8)( + [KeywordHashNode(4...8)( + [AssocNode(4...8)( + IntegerNode(4...5)(), + IntegerNode(7...8)(), + (5...7) + )] + )] + ), + (9...10), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/method_call_trailing_comma.txt b/test/yarp/snapshots/seattlerb/method_call_trailing_comma.txt new file mode 100644 index 0000000000..93a93d6a15 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/method_call_trailing_comma.txt @@ -0,0 +1,16 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + (3...4), + ArgumentsNode(4...5)([IntegerNode(4...5)()]), + (6...7), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/mlhs_back_anonsplat.txt b/test/yarp/snapshots/seattlerb/mlhs_back_anonsplat.txt new file mode 100644 index 0000000000..410cfc8f14 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/mlhs_back_anonsplat.txt @@ -0,0 +1,15 @@ +ProgramNode(0...14)( + [:a, :b, :c], + StatementsNode(0...14)( + [MultiWriteNode(0...14)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + LocalVariableWriteNode(3...4)(:b, 0, nil, (3...4), nil), + LocalVariableWriteNode(6...7)(:c, 0, nil, (6...7), nil), + SplatNode(9...10)((9...10), nil)], + (11...12), + CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 0, "f"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/mlhs_back_splat.txt b/test/yarp/snapshots/seattlerb/mlhs_back_splat.txt new file mode 100644 index 0000000000..8086347e13 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/mlhs_back_splat.txt @@ -0,0 +1,18 @@ +ProgramNode(0...15)( + [:a, :b, :c, :s], + StatementsNode(0...15)( + [MultiWriteNode(0...15)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + LocalVariableWriteNode(3...4)(:b, 0, nil, (3...4), nil), + LocalVariableWriteNode(6...7)(:c, 0, nil, (6...7), nil), + SplatNode(9...11)( + (9...10), + LocalVariableWriteNode(10...11)(:s, 0, nil, (10...11), nil) + )], + (12...13), + CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 0, "f"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/mlhs_front_anonsplat.txt b/test/yarp/snapshots/seattlerb/mlhs_front_anonsplat.txt new file mode 100644 index 0000000000..beaadf1892 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/mlhs_front_anonsplat.txt @@ -0,0 +1,21 @@ +ProgramNode(0...14)( + [:x, :y, :z], + StatementsNode(0...14)( + [MultiWriteNode(0...14)( + [MultiWriteNode(0...1)( + [SplatNode(0...1)((0...1), nil)], + nil, + nil, + nil, + nil + ), + LocalVariableWriteNode(3...4)(:x, 0, nil, (3...4), nil), + LocalVariableWriteNode(6...7)(:y, 0, nil, (6...7), nil), + LocalVariableWriteNode(9...10)(:z, 0, nil, (9...10), nil)], + (11...12), + CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 0, "f"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/mlhs_front_splat.txt b/test/yarp/snapshots/seattlerb/mlhs_front_splat.txt new file mode 100644 index 0000000000..0c786546d3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/mlhs_front_splat.txt @@ -0,0 +1,24 @@ +ProgramNode(0...15)( + [:s, :x, :y, :z], + StatementsNode(0...15)( + [MultiWriteNode(0...15)( + [MultiWriteNode(0...2)( + [SplatNode(0...2)( + (0...1), + LocalVariableWriteNode(1...2)(:s, 0, nil, (1...2), nil) + )], + nil, + nil, + nil, + nil + ), + LocalVariableWriteNode(4...5)(:x, 0, nil, (4...5), nil), + LocalVariableWriteNode(7...8)(:y, 0, nil, (7...8), nil), + LocalVariableWriteNode(10...11)(:z, 0, nil, (10...11), nil)], + (12...13), + CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 0, "f"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/mlhs_keyword.txt b/test/yarp/snapshots/seattlerb/mlhs_keyword.txt new file mode 100644 index 0000000000..2b5fc37ee0 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/mlhs_keyword.txt @@ -0,0 +1,16 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...4), + (4...5), + ArgumentsNode(5...15)([TrueNode(5...9)(), TrueNode(11...15)()]), + (15...16), + nil, + 0, + "!=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/mlhs_mid_anonsplat.txt b/test/yarp/snapshots/seattlerb/mlhs_mid_anonsplat.txt new file mode 100644 index 0000000000..54cab7d7f8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/mlhs_mid_anonsplat.txt @@ -0,0 +1,18 @@ +ProgramNode(0...23)( + [:a, :b, :c, :x, :y, :z], + StatementsNode(0...23)( + [MultiWriteNode(0...23)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + LocalVariableWriteNode(3...4)(:b, 0, nil, (3...4), nil), + LocalVariableWriteNode(6...7)(:c, 0, nil, (6...7), nil), + SplatNode(9...10)((9...10), nil), + LocalVariableWriteNode(12...13)(:x, 0, nil, (12...13), nil), + LocalVariableWriteNode(15...16)(:y, 0, nil, (15...16), nil), + LocalVariableWriteNode(18...19)(:z, 0, nil, (18...19), nil)], + (20...21), + CallNode(22...23)(nil, nil, (22...23), nil, nil, nil, nil, 0, "f"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/mlhs_mid_splat.txt b/test/yarp/snapshots/seattlerb/mlhs_mid_splat.txt new file mode 100644 index 0000000000..e8dd882dd2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/mlhs_mid_splat.txt @@ -0,0 +1,21 @@ +ProgramNode(0...24)( + [:a, :b, :c, :s, :x, :y, :z], + StatementsNode(0...24)( + [MultiWriteNode(0...24)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + LocalVariableWriteNode(3...4)(:b, 0, nil, (3...4), nil), + LocalVariableWriteNode(6...7)(:c, 0, nil, (6...7), nil), + SplatNode(9...11)( + (9...10), + LocalVariableWriteNode(10...11)(:s, 0, nil, (10...11), nil) + ), + LocalVariableWriteNode(13...14)(:x, 0, nil, (13...14), nil), + LocalVariableWriteNode(16...17)(:y, 0, nil, (16...17), nil), + LocalVariableWriteNode(19...20)(:z, 0, nil, (19...20), nil)], + (21...22), + CallNode(23...24)(nil, nil, (23...24), nil, nil, nil, nil, 0, "f"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/mlhs_rescue.txt b/test/yarp/snapshots/seattlerb/mlhs_rescue.txt new file mode 100644 index 0000000000..cd6276e76e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/mlhs_rescue.txt @@ -0,0 +1,17 @@ +ProgramNode(0...18)( + [:a, :b], + StatementsNode(0...18)( + [MultiWriteNode(0...18)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + LocalVariableWriteNode(3...4)(:b, 0, nil, (3...4), nil)], + (5...6), + RescueModifierNode(7...18)( + CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "f"), + (9...15), + IntegerNode(16...18)() + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/module_comments.txt b/test/yarp/snapshots/seattlerb/module_comments.txt new file mode 100644 index 0000000000..5d11f23a4d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/module_comments.txt @@ -0,0 +1,26 @@ +ProgramNode(22...75)( + [], + StatementsNode(22...75)( + [ModuleNode(22...75)( + [], + (22...28), + ConstantReadNode(29...30)(), + StatementsNode(44...71)( + [DefNode(44...71)( + (48...52), + nil, + nil, + nil, + [], + (44...47), + nil, + nil, + nil, + nil, + (68...71) + )] + ), + (72...75) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/motherfuckin_leading_dots.txt b/test/yarp/snapshots/seattlerb/motherfuckin_leading_dots.txt new file mode 100644 index 0000000000..352bcbab60 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/motherfuckin_leading_dots.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (2...3), + (3...4), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/motherfuckin_leading_dots2.txt b/test/yarp/snapshots/seattlerb/motherfuckin_leading_dots2.txt new file mode 100644 index 0000000000..8a246f5827 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/motherfuckin_leading_dots2.txt @@ -0,0 +1,7 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [IntegerNode(0...1)(), + RangeNode(2...5)(nil, IntegerNode(4...5)(), (2...4), 0)] + ) +) diff --git a/test/yarp/snapshots/seattlerb/multiline_hash_declaration.txt b/test/yarp/snapshots/seattlerb/multiline_hash_declaration.txt new file mode 100644 index 0000000000..e6e341fc7c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/multiline_hash_declaration.txt @@ -0,0 +1,62 @@ +ProgramNode(0...43)( + [], + StatementsNode(0...43)( + [CallNode(0...14)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...13)( + [KeywordHashNode(2...13)( + [AssocNode(2...13)( + SymbolNode(2...8)(nil, (2...7), (7...8), "state"), + HashNode(10...13)((10...11), [], (12...13)), + nil + )] + )] + ), + (13...14), + nil, + 0, + "f" + ), + CallNode(16...29)( + nil, + nil, + (16...17), + (17...18), + ArgumentsNode(18...28)( + [KeywordHashNode(18...28)( + [AssocNode(18...28)( + SymbolNode(18...24)(nil, (18...23), (23...24), "state"), + HashNode(25...28)((25...26), [], (27...28)), + nil + )] + )] + ), + (28...29), + nil, + 0, + "f" + ), + CallNode(31...43)( + nil, + nil, + (31...32), + (32...33), + ArgumentsNode(33...42)( + [KeywordHashNode(33...42)( + [AssocNode(33...42)( + SymbolNode(33...39)(nil, (33...38), (38...39), "state"), + HashNode(40...42)((40...41), [], (41...42)), + nil + )] + )] + ), + (42...43), + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt b/test/yarp/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt new file mode 100644 index 0000000000..0a779610a6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt @@ -0,0 +1,12 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [ArrayNode(0...9)( + [SymbolNode(4...5)(nil, (4...5), nil, "a"), + SymbolNode(6...7)(nil, (6...7), nil, "b")], + (0...3), + (8...9) + ), + IntegerNode(10...11)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/non_interpolated_word_array_line_breaks.txt b/test/yarp/snapshots/seattlerb/non_interpolated_word_array_line_breaks.txt new file mode 100644 index 0000000000..901575f9a8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/non_interpolated_word_array_line_breaks.txt @@ -0,0 +1,12 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [ArrayNode(0...9)( + [StringNode(4...5)(nil, (4...5), nil, "a"), + StringNode(6...7)(nil, (6...7), nil, "b")], + (0...3), + (8...9) + ), + IntegerNode(10...11)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/op_asgn_command_call.txt b/test/yarp/snapshots/seattlerb/op_asgn_command_call.txt new file mode 100644 index 0000000000..256a063f40 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/op_asgn_command_call.txt @@ -0,0 +1,21 @@ +ProgramNode(0...11)( + [:a], + StatementsNode(0...11)( + [LocalVariableOperatorOrWriteNode(0...11)( + (0...1), + (2...5), + CallNode(6...11)( + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "b"), + (7...8), + (8...9), + nil, + ArgumentsNode(10...11)([IntegerNode(10...11)()]), + nil, + nil, + 0, + "c" + ), + :a + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/op_asgn_dot_ident_command_call.txt b/test/yarp/snapshots/seattlerb/op_asgn_dot_ident_command_call.txt new file mode 100644 index 0000000000..0bb9c07eba --- /dev/null +++ b/test/yarp/snapshots/seattlerb/op_asgn_dot_ident_command_call.txt @@ -0,0 +1,30 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallOperatorOrWriteNode(0...11)( + CallNode(0...3)( + ConstantReadNode(0...1)(), + (1...2), + (2...3), + nil, + nil, + nil, + nil, + 0, + "B=" + ), + CallNode(8...11)( + nil, + nil, + (8...9), + nil, + ArgumentsNode(10...11)([IntegerNode(10...11)()]), + nil, + nil, + 0, + "c" + ), + (4...7) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/op_asgn_index_command_call.txt b/test/yarp/snapshots/seattlerb/op_asgn_index_command_call.txt new file mode 100644 index 0000000000..9b7b6f93da --- /dev/null +++ b/test/yarp/snapshots/seattlerb/op_asgn_index_command_call.txt @@ -0,0 +1,32 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallOperatorOrWriteNode(0...16)( + CallNode(0...5)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + nil, + (1...5), + (1...2), + ArgumentsNode(2...4)([SymbolNode(2...4)((2...3), (3...4), nil, "b")]), + (4...5), + nil, + 0, + "[]=" + ), + CallNode(10...16)( + nil, + nil, + (10...11), + nil, + ArgumentsNode(12...16)( + [IntegerNode(12...13)(), IntegerNode(15...16)()] + ), + nil, + nil, + 0, + "c" + ), + (6...9) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_const_command_call.txt b/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_const_command_call.txt new file mode 100644 index 0000000000..051acb85b5 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_const_command_call.txt @@ -0,0 +1,27 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [ConstantPathOperatorWriteNode(0...11)( + ConstantPathNode(0...4)( + ConstantReadNode(0...1)(), + ConstantReadNode(3...4)(), + (1...3) + ), + (5...7), + CallNode(8...11)( + nil, + nil, + (8...9), + nil, + ArgumentsNode(10...11)( + [CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 0, "d")] + ), + nil, + nil, + 0, + "c" + ), + :* + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_identifier1.txt b/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_identifier1.txt new file mode 100644 index 0000000000..88847480ee --- /dev/null +++ b/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_identifier1.txt @@ -0,0 +1,21 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallOperatorWriteNode(0...9)( + CallNode(0...4)( + ConstantReadNode(0...1)(), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + (5...7), + IntegerNode(8...9)(), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_identifier_command_call.txt b/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_identifier_command_call.txt new file mode 100644 index 0000000000..5ca0e3ce5c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/op_asgn_primary_colon_identifier_command_call.txt @@ -0,0 +1,33 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallOperatorWriteNode(0...11)( + CallNode(0...4)( + ConstantReadNode(0...1)(), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + (5...7), + CallNode(8...11)( + nil, + nil, + (8...9), + nil, + ArgumentsNode(10...11)( + [CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 0, "d")] + ), + nil, + nil, + 0, + "c" + ), + :* + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/op_asgn_val_dot_ident_command_call.txt b/test/yarp/snapshots/seattlerb/op_asgn_val_dot_ident_command_call.txt new file mode 100644 index 0000000000..363660cf20 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/op_asgn_val_dot_ident_command_call.txt @@ -0,0 +1,30 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallOperatorOrWriteNode(0...11)( + CallNode(0...3)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + CallNode(8...11)( + nil, + nil, + (8...9), + nil, + ArgumentsNode(10...11)([IntegerNode(10...11)()]), + nil, + nil, + 0, + "c" + ), + (4...7) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_def_special_name.txt b/test/yarp/snapshots/seattlerb/parse_def_special_name.txt new file mode 100644 index 0000000000..a266ddf094 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_def_special_name.txt @@ -0,0 +1,18 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [DefNode(0...13)( + (4...8), + nil, + nil, + nil, + [], + (0...3), + nil, + nil, + nil, + nil, + (10...13) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_if_not_canonical.txt b/test/yarp/snapshots/seattlerb/parse_if_not_canonical.txt new file mode 100644 index 0000000000..3d90e11f4c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_if_not_canonical.txt @@ -0,0 +1,40 @@ +ProgramNode(0...41)( + [], + StatementsNode(0...41)( + [IfNode(0...41)( + (0...2), + CallNode(3...15)( + CallNode(7...15)( + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "var"), + (10...11), + (11...15), + nil, + nil, + nil, + nil, + 0, + "nil?" + ), + nil, + (3...6), + nil, + nil, + nil, + nil, + 0, + "!" + ), + StatementsNode(21...26)( + [StringNode(21...26)((21...22), (22...25), (25...26), "foo")] + ), + ElseNode(27...41)( + (27...31), + StatementsNode(32...37)( + [StringNode(32...37)((32...33), (33...36), (36...37), "bar")] + ), + (38...41) + ), + (38...41) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_if_not_noncanonical.txt b/test/yarp/snapshots/seattlerb/parse_if_not_noncanonical.txt new file mode 100644 index 0000000000..3d90e11f4c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_if_not_noncanonical.txt @@ -0,0 +1,40 @@ +ProgramNode(0...41)( + [], + StatementsNode(0...41)( + [IfNode(0...41)( + (0...2), + CallNode(3...15)( + CallNode(7...15)( + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "var"), + (10...11), + (11...15), + nil, + nil, + nil, + nil, + 0, + "nil?" + ), + nil, + (3...6), + nil, + nil, + nil, + nil, + 0, + "!" + ), + StatementsNode(21...26)( + [StringNode(21...26)((21...22), (22...25), (25...26), "foo")] + ), + ElseNode(27...41)( + (27...31), + StatementsNode(32...37)( + [StringNode(32...37)((32...33), (33...36), (36...37), "bar")] + ), + (38...41) + ), + (38...41) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_block.txt b/test/yarp/snapshots/seattlerb/parse_line_block.txt new file mode 100644 index 0000000000..51282de977 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_block.txt @@ -0,0 +1,23 @@ +ProgramNode(0...10)( + [:a], + StatementsNode(0...10)( + [LocalVariableWriteNode(0...6)( + :a, + 0, + IntegerNode(4...6)(), + (0...1), + (2...3) + ), + CallNode(7...10)( + nil, + nil, + (7...8), + nil, + ArgumentsNode(9...10)([LocalVariableReadNode(9...10)(:a, 0)]), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_block_inline_comment.txt b/test/yarp/snapshots/seattlerb/parse_line_block_inline_comment.txt new file mode 100644 index 0000000000..76b2ec33fa --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_block_inline_comment.txt @@ -0,0 +1,8 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "b"), + CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_block_inline_comment_leading_newlines.txt b/test/yarp/snapshots/seattlerb/parse_line_block_inline_comment_leading_newlines.txt new file mode 100644 index 0000000000..0345dae43e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_block_inline_comment_leading_newlines.txt @@ -0,0 +1,8 @@ +ProgramNode(3...36)( + [], + StatementsNode(3...36)( + [CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 0, "a"), + CallNode(5...6)(nil, nil, (5...6), nil, nil, nil, nil, 0, "b"), + CallNode(35...36)(nil, nil, (35...36), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_block_inline_multiline_comment.txt b/test/yarp/snapshots/seattlerb/parse_line_block_inline_multiline_comment.txt new file mode 100644 index 0000000000..d8486cb823 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_block_inline_multiline_comment.txt @@ -0,0 +1,8 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "b"), + CallNode(32...33)(nil, nil, (32...33), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt b/test/yarp/snapshots/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt new file mode 100644 index 0000000000..b7cca1732b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...4)([InstanceVariableReadNode(2...4)()]), + nil, + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_call_ivar_line_break_paren.txt b/test/yarp/snapshots/seattlerb/parse_line_call_ivar_line_break_paren.txt new file mode 100644 index 0000000000..ae67416e67 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_call_ivar_line_break_paren.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...4)([InstanceVariableReadNode(2...4)()]), + (5...6), + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_call_no_args.txt b/test/yarp/snapshots/seattlerb/parse_line_call_no_args.txt new file mode 100644 index 0000000000..229bfdaa9f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_call_no_args.txt @@ -0,0 +1,48 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [CallNode(0...23)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...23)( + [:x, :y], + BlockParametersNode(5...11)( + ParametersNode(6...10)( + [RequiredParameterNode(6...7)(:x), + RequiredParameterNode(9...10)(:y)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (5...6), + (10...11) + ), + StatementsNode(14...19)( + [CallNode(14...19)( + LocalVariableReadNode(14...15)(:x, 0), + nil, + (16...17), + nil, + ArgumentsNode(18...19)([LocalVariableReadNode(18...19)(:y, 0)]), + nil, + nil, + 0, + "+" + )] + ), + (2...4), + (20...23) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_defn_complex.txt b/test/yarp/snapshots/seattlerb/parse_line_defn_complex.txt new file mode 100644 index 0000000000..adf81b25d1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_defn_complex.txt @@ -0,0 +1,49 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [DefNode(0...40)( + (4...5), + nil, + ParametersNode(6...7)( + [RequiredParameterNode(6...7)(:y)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(11...35)( + [CallNode(11...15)( + nil, + nil, + (11...12), + (12...13), + ArgumentsNode(13...14)([LocalVariableReadNode(13...14)(:y, 0)]), + (14...15), + nil, + 0, + "p" + ), + LocalVariableOperatorWriteNode(18...24)( + (18...19), + (20...22), + IntegerNode(23...24)(), + :y, + :* + ), + ReturnNode(27...35)( + (27...33), + ArgumentsNode(34...35)([LocalVariableReadNode(34...35)(:y, 0)]) + )] + ), + [:y], + (0...3), + nil, + (5...6), + (7...8), + nil, + (37...40) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens.txt b/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens.txt new file mode 100644 index 0000000000..ff61047cbb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens.txt @@ -0,0 +1,31 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [DefNode(0...10)( + (4...5), + nil, + nil, + nil, + [], + (0...3), + nil, + nil, + nil, + nil, + (7...10) + ), + DefNode(12...21)( + (16...17), + nil, + nil, + nil, + [], + (12...15), + nil, + nil, + nil, + nil, + (18...21) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens_args.txt b/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens_args.txt new file mode 100644 index 0000000000..eec5acfcd7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens_args.txt @@ -0,0 +1,26 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [DefNode(0...11)( + (4...5), + nil, + ParametersNode(6...7)( + [RequiredParameterNode(6...7)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (0...3), + nil, + nil, + nil, + nil, + (8...11) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_dot2.txt b/test/yarp/snapshots/seattlerb/parse_line_dot2.txt new file mode 100644 index 0000000000..b535ac7c1c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_dot2.txt @@ -0,0 +1,13 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [RangeNode(0...5)(IntegerNode(0...1)(), IntegerNode(4...5)(), (1...3), 0), + RangeNode(6...11)( + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "a"), + CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 0, "b"), + (7...9), + 0 + ), + CallNode(12...13)(nil, nil, (12...13), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_dot2_open.txt b/test/yarp/snapshots/seattlerb/parse_line_dot2_open.txt new file mode 100644 index 0000000000..757e052c08 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_dot2_open.txt @@ -0,0 +1,13 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [RangeNode(0...3)(IntegerNode(0...1)(), nil, (1...3), 0), + RangeNode(6...9)( + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "a"), + nil, + (7...9), + 0 + ), + CallNode(12...13)(nil, nil, (12...13), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_dot3.txt b/test/yarp/snapshots/seattlerb/parse_line_dot3.txt new file mode 100644 index 0000000000..d50e6dc275 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_dot3.txt @@ -0,0 +1,13 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [RangeNode(0...6)(IntegerNode(0...1)(), IntegerNode(5...6)(), (1...4), 1), + RangeNode(7...13)( + CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "a"), + CallNode(12...13)(nil, nil, (12...13), nil, nil, nil, nil, 0, "b"), + (8...11), + 1 + ), + CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_dot3_open.txt b/test/yarp/snapshots/seattlerb/parse_line_dot3_open.txt new file mode 100644 index 0000000000..16cdc0cce8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_dot3_open.txt @@ -0,0 +1,13 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [RangeNode(0...4)(IntegerNode(0...1)(), nil, (1...4), 1), + RangeNode(7...11)( + CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "a"), + nil, + (8...11), + 1 + ), + CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 0, "c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_dstr_escaped_newline.txt b/test/yarp/snapshots/seattlerb/parse_line_dstr_escaped_newline.txt new file mode 100644 index 0000000000..b6f92191b6 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_dstr_escaped_newline.txt @@ -0,0 +1,12 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [InterpolatedStringNode(0...9)( + (0...1), + [StringNode(1...4)(nil, (1...4), nil, "a\n"), + EmbeddedStatementsNode(4...8)((4...6), nil, (7...8))], + (8...9) + ), + TrueNode(10...14)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_dstr_soft_newline.txt b/test/yarp/snapshots/seattlerb/parse_line_dstr_soft_newline.txt new file mode 100644 index 0000000000..a22199b3ac --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_dstr_soft_newline.txt @@ -0,0 +1,12 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [InterpolatedStringNode(0...8)( + (0...1), + [StringNode(1...3)(nil, (1...3), nil, "a\n"), + EmbeddedStatementsNode(3...7)((3...5), nil, (6...7))], + (7...8) + ), + TrueNode(9...13)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_evstr_after_break.txt b/test/yarp/snapshots/seattlerb/parse_line_evstr_after_break.txt new file mode 100644 index 0000000000..3807c61b20 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_evstr_after_break.txt @@ -0,0 +1,19 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [StringConcatNode(0...11)( + StringNode(0...3)((0...1), (1...2), (2...3), "a"), + InterpolatedStringNode(5...11)( + (5...6), + [EmbeddedStatementsNode(6...10)( + (6...8), + StatementsNode(8...9)( + [CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "b")] + ), + (9...10) + )], + (10...11) + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_hash_lit.txt b/test/yarp/snapshots/seattlerb/parse_line_hash_lit.txt new file mode 100644 index 0000000000..a7dd5a1f7b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_hash_lit.txt @@ -0,0 +1,14 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [HashNode(0...13)( + (0...1), + [AssocNode(2...10)( + SymbolNode(2...5)((2...3), (3...5), nil, "s1"), + IntegerNode(9...10)(), + (6...8) + )], + (12...13) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_heredoc.txt b/test/yarp/snapshots/seattlerb/parse_line_heredoc.txt new file mode 100644 index 0000000000..e2a8c1c665 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_heredoc.txt @@ -0,0 +1,42 @@ +ProgramNode(6...88)( + [:string], + StatementsNode(6...88)( + [LocalVariableWriteNode(6...31)( + :string, + 0, + CallNode(15...31)( + InterpolatedStringNode(15...71)( + (15...25), + [StringNode(32...57)( + nil, + (32...57), + nil, + " very long string\n" + )], + (57...71) + ), + (25...26), + (26...31), + nil, + nil, + nil, + nil, + 0, + "strip" + ), + (6...12), + (13...14) + ), + CallNode(77...88)( + nil, + nil, + (77...81), + nil, + ArgumentsNode(82...88)([LocalVariableReadNode(82...88)(:string, 0)]), + nil, + nil, + 0, + "puts" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_heredoc_evstr.txt b/test/yarp/snapshots/seattlerb/parse_line_heredoc_evstr.txt new file mode 100644 index 0000000000..e24231dcf9 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_heredoc_evstr.txt @@ -0,0 +1,18 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [InterpolatedStringNode(0...14)( + (0...4), + [StringNode(5...7)(nil, (5...7), nil, "a\n"), + EmbeddedStatementsNode(7...11)( + (7...9), + StatementsNode(9...10)( + [CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "b")] + ), + (10...11) + ), + StringNode(11...12)(nil, (11...12), nil, "\n")], + (12...14) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt b/test/yarp/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt new file mode 100644 index 0000000000..573a260958 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt @@ -0,0 +1,24 @@ +ProgramNode(0...48)( + [], + StatementsNode(0...48)( + [InterpolatedStringNode(0...34)( + (0...8), + [StringNode(9...28)( + nil, + (9...28), + nil, + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + )], + (28...34) + ), + ClassNode(35...48)( + [], + (35...40), + ConstantReadNode(41...44)(), + nil, + nil, + nil, + (45...48) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt b/test/yarp/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt new file mode 100644 index 0000000000..c252ec45dc --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt @@ -0,0 +1,32 @@ +ProgramNode(6...74)( + [:string], + StatementsNode(6...74)( + [LocalVariableWriteNode(6...57)( + :string, + 0, + InterpolatedStringNode(15...57)( + (15...22), + [StringNode(23...48)( + nil, + (23...48), + nil, + " very long string\n" + )], + (48...57) + ), + (6...12), + (13...14) + ), + CallNode(63...74)( + nil, + nil, + (63...67), + nil, + ArgumentsNode(68...74)([LocalVariableReadNode(68...74)(:string, 0)]), + nil, + nil, + 0, + "puts" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_iter_call_no_parens.txt b/test/yarp/snapshots/seattlerb/parse_line_iter_call_no_parens.txt new file mode 100644 index 0000000000..53c7b38660 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_iter_call_no_parens.txt @@ -0,0 +1,50 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [CallNode(0...25)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...3)( + [CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "a")] + ), + nil, + BlockNode(4...25)( + [:x, :y], + BlockParametersNode(7...13)( + ParametersNode(8...12)( + [RequiredParameterNode(8...9)(:x), + RequiredParameterNode(11...12)(:y)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (7...8), + (12...13) + ), + StatementsNode(16...21)( + [CallNode(16...21)( + LocalVariableReadNode(16...17)(:x, 0), + nil, + (18...19), + nil, + ArgumentsNode(20...21)([LocalVariableReadNode(20...21)(:y, 0)]), + nil, + nil, + 0, + "+" + )] + ), + (4...6), + (22...25) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_iter_call_parens.txt b/test/yarp/snapshots/seattlerb/parse_line_iter_call_parens.txt new file mode 100644 index 0000000000..229243ea66 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_iter_call_parens.txt @@ -0,0 +1,50 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [CallNode(0...26)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...3)( + [CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "a")] + ), + (3...4), + BlockNode(5...26)( + [:x, :y], + BlockParametersNode(8...14)( + ParametersNode(9...13)( + [RequiredParameterNode(9...10)(:x), + RequiredParameterNode(12...13)(:y)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (8...9), + (13...14) + ), + StatementsNode(17...22)( + [CallNode(17...22)( + LocalVariableReadNode(17...18)(:x, 0), + nil, + (19...20), + nil, + ArgumentsNode(21...22)([LocalVariableReadNode(21...22)(:y, 0)]), + nil, + nil, + 0, + "+" + )] + ), + (5...7), + (23...26) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_multiline_str.txt b/test/yarp/snapshots/seattlerb/parse_line_multiline_str.txt new file mode 100644 index 0000000000..e12f68cfb2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_multiline_str.txt @@ -0,0 +1,7 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [StringNode(0...5)((0...1), (1...4), (4...5), "a\n" + "b"), + IntegerNode(6...7)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_multiline_str_literal_n.txt b/test/yarp/snapshots/seattlerb/parse_line_multiline_str_literal_n.txt new file mode 100644 index 0000000000..92a7b9fed1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_multiline_str_literal_n.txt @@ -0,0 +1,7 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [StringNode(0...6)((0...1), (1...5), (5...6), "a\n" + "b"), + IntegerNode(7...8)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_newlines.txt b/test/yarp/snapshots/seattlerb/parse_line_newlines.txt new file mode 100644 index 0000000000..14b0c8cecc --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_newlines.txt @@ -0,0 +1 @@ +ProgramNode(0...4)([], StatementsNode(0...4)([TrueNode(0...4)()])) diff --git a/test/yarp/snapshots/seattlerb/parse_line_op_asgn.txt b/test/yarp/snapshots/seattlerb/parse_line_op_asgn.txt new file mode 100644 index 0000000000..e65af5c08d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_op_asgn.txt @@ -0,0 +1,13 @@ +ProgramNode(6...34)( + [:foo], + StatementsNode(6...34)( + [LocalVariableOperatorWriteNode(6...24)( + (6...9), + (10...12), + CallNode(21...24)(nil, nil, (21...24), nil, nil, nil, nil, 0, "bar"), + :foo, + :+ + ), + CallNode(31...34)(nil, nil, (31...34), nil, nil, nil, nil, 0, "baz")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_postexe.txt b/test/yarp/snapshots/seattlerb/parse_line_postexe.txt new file mode 100644 index 0000000000..775d209272 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_postexe.txt @@ -0,0 +1,13 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [PostExecutionNode(0...11)( + StatementsNode(6...9)( + [CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "foo")] + ), + (0...3), + (4...5), + (10...11) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_preexe.txt b/test/yarp/snapshots/seattlerb/parse_line_preexe.txt new file mode 100644 index 0000000000..59ede98b60 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_preexe.txt @@ -0,0 +1,13 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [PreExecutionNode(0...13)( + StatementsNode(8...11)( + [CallNode(8...11)(nil, nil, (8...11), nil, nil, nil, nil, 0, "foo")] + ), + (0...5), + (6...7), + (12...13) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_rescue.txt b/test/yarp/snapshots/seattlerb/parse_line_rescue.txt new file mode 100644 index 0000000000..1a1fc6b01d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_rescue.txt @@ -0,0 +1,43 @@ +ProgramNode(0...35)( + [], + StatementsNode(0...35)( + [BeginNode(0...35)( + (0...5), + StatementsNode(8...9)( + [CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "a")] + ), + RescueNode(10...31)( + (10...16), + [], + nil, + nil, + StatementsNode(19...20)( + [CallNode(19...20)(nil, nil, (19...20), nil, nil, nil, nil, 0, "b")] + ), + RescueNode(21...31)( + (21...27), + [], + nil, + nil, + StatementsNode(30...31)( + [CallNode(30...31)( + nil, + nil, + (30...31), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + nil + ) + ), + nil, + nil, + (32...35) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_return.txt b/test/yarp/snapshots/seattlerb/parse_line_return.txt new file mode 100644 index 0000000000..17ba7af0a5 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_return.txt @@ -0,0 +1,31 @@ +ProgramNode(6...77)( + [], + StatementsNode(6...77)( + [DefNode(6...77)( + (10...14), + nil, + nil, + StatementsNode(23...67)( + [IfNode(23...67)( + (23...25), + TrueNode(26...30)(), + StatementsNode(46...55)( + [ReturnNode(46...55)( + (46...52), + ArgumentsNode(53...55)([IntegerNode(53...55)()]) + )] + ), + nil, + (64...67) + )] + ), + [], + (6...9), + nil, + nil, + nil, + nil, + (74...77) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_str_with_newline_escape.txt b/test/yarp/snapshots/seattlerb/parse_line_str_with_newline_escape.txt new file mode 100644 index 0000000000..e75463a0e3 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_str_with_newline_escape.txt @@ -0,0 +1,19 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...12)( + [StringNode(2...6)((2...3), (3...5), (5...6), "\n"), + TrueNode(8...12)()] + ), + (12...13), + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_to_ary.txt b/test/yarp/snapshots/seattlerb/parse_line_to_ary.txt new file mode 100644 index 0000000000..da2c3f5b23 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_to_ary.txt @@ -0,0 +1,14 @@ +ProgramNode(0...10)( + [:a, :b], + StatementsNode(0...10)( + [MultiWriteNode(0...8)( + [LocalVariableWriteNode(0...1)(:a, 0, nil, (0...1), nil), + LocalVariableWriteNode(3...4)(:b, 0, nil, (3...4), nil)], + (5...6), + CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "c"), + nil, + nil + ), + CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "d")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_line_trailing_newlines.txt b/test/yarp/snapshots/seattlerb/parse_line_trailing_newlines.txt new file mode 100644 index 0000000000..c28a53ddc8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_line_trailing_newlines.txt @@ -0,0 +1,7 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)( + [CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "b")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_opt_call_args_assocs_comma.txt b/test/yarp/snapshots/seattlerb/parse_opt_call_args_assocs_comma.txt new file mode 100644 index 0000000000..9a84d358bc --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_opt_call_args_assocs_comma.txt @@ -0,0 +1,24 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...8)( + IntegerNode(0...1)(), + nil, + (1...8), + (1...2), + ArgumentsNode(2...6)( + [KeywordHashNode(2...6)( + [AssocNode(2...6)( + IntegerNode(2...3)(), + IntegerNode(5...6)(), + (3...5) + )] + )] + ), + (7...8), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_opt_call_args_lit_comma.txt b/test/yarp/snapshots/seattlerb/parse_opt_call_args_lit_comma.txt new file mode 100644 index 0000000000..a058d01284 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_opt_call_args_lit_comma.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + IntegerNode(0...1)(), + nil, + (1...5), + (1...2), + ArgumentsNode(2...3)([IntegerNode(2...3)()]), + (4...5), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_pattern_019.txt b/test/yarp/snapshots/seattlerb/parse_pattern_019.txt new file mode 100644 index 0000000000..0b31742498 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_pattern_019.txt @@ -0,0 +1,32 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [CaseNode(0...26)( + IntegerNode(5...6)(), + [InNode(7...22)( + RangeNode(10...15)( + CallNode(10...12)( + IntegerNode(11...12)(), + nil, + (10...11), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + IntegerNode(14...15)(), + (12...14), + 0 + ), + StatementsNode(18...22)([TrueNode(18...22)()]), + (7...9), + nil + )], + nil, + (0...4), + (23...26) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_pattern_044.txt b/test/yarp/snapshots/seattlerb/parse_pattern_044.txt new file mode 100644 index 0000000000..572197b776 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_pattern_044.txt @@ -0,0 +1,24 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [CaseNode(0...31)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "obj"), + [InNode(9...27)( + ArrayPatternNode(12...20)( + ConstantReadNode(12...18)(), + [], + nil, + [], + (18...19), + (19...20) + ), + StatementsNode(23...27)([TrueNode(23...27)()]), + (9...11), + nil + )], + nil, + (0...4), + (28...31) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_pattern_051.txt b/test/yarp/snapshots/seattlerb/parse_pattern_051.txt new file mode 100644 index 0000000000..7f2410212d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_pattern_051.txt @@ -0,0 +1,28 @@ +ProgramNode(0...36)( + [], + StatementsNode(0...36)( + [CaseNode(0...36)( + ArrayNode(5...14)( + [IntegerNode(6...7)(), IntegerNode(9...10)(), IntegerNode(12...13)()], + (5...6), + (13...14) + ), + [InNode(15...32)( + ArrayPatternNode(18...25)( + nil, + [IntegerNode(19...20)(), IntegerNode(22...23)()], + nil, + [], + (18...19), + (24...25) + ), + StatementsNode(28...32)([TrueNode(28...32)()]), + (15...17), + nil + )], + nil, + (0...4), + (33...36) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_pattern_058.txt b/test/yarp/snapshots/seattlerb/parse_pattern_058.txt new file mode 100644 index 0000000000..23b0ba5d10 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_pattern_058.txt @@ -0,0 +1,46 @@ +ProgramNode(0...43)( + [:a, :rest], + StatementsNode(0...43)( + [CaseNode(0...43)( + HashNode(5...11)( + (5...6), + [AssocNode(6...10)( + SymbolNode(6...8)(nil, (6...7), (7...8), "a"), + IntegerNode(9...10)(), + nil + )], + (10...11) + ), + [InNode(12...39)( + HashPatternNode(15...27)( + nil, + [AssocNode(16...18)( + SymbolNode(16...18)(nil, (16...17), (17...18), "a"), + nil, + nil + ), + AssocSplatNode(20...26)( + LocalVariableWriteNode(22...26)(:rest, 0, nil, (22...26), nil), + (20...22) + )], + nil, + (15...16), + (26...27) + ), + StatementsNode(30...39)( + [ArrayNode(30...39)( + [LocalVariableReadNode(31...32)(:a, 0), + LocalVariableReadNode(34...38)(:rest, 0)], + (30...31), + (38...39) + )] + ), + (12...14), + nil + )], + nil, + (0...4), + (40...43) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_pattern_058_2.txt b/test/yarp/snapshots/seattlerb/parse_pattern_058_2.txt new file mode 100644 index 0000000000..c1ba037a62 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_pattern_058_2.txt @@ -0,0 +1,42 @@ +ProgramNode(0...33)( + [:a], + StatementsNode(0...33)( + [CaseNode(0...33)( + HashNode(5...11)( + (5...6), + [AssocNode(6...10)( + SymbolNode(6...8)(nil, (6...7), (7...8), "a"), + IntegerNode(9...10)(), + nil + )], + (10...11) + ), + [InNode(12...29)( + HashPatternNode(15...23)( + nil, + [AssocNode(16...18)( + SymbolNode(16...18)(nil, (16...17), (17...18), "a"), + nil, + nil + ), + AssocSplatNode(20...22)(nil, (20...22))], + nil, + (15...16), + (22...23) + ), + StatementsNode(26...29)( + [ArrayNode(26...29)( + [LocalVariableReadNode(27...28)(:a, 0)], + (26...27), + (28...29) + )] + ), + (12...14), + nil + )], + nil, + (0...4), + (30...33) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_pattern_069.txt b/test/yarp/snapshots/seattlerb/parse_pattern_069.txt new file mode 100644 index 0000000000..1d3772e93f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_pattern_069.txt @@ -0,0 +1,27 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [CaseNode(0...31)( + SymbolNode(5...7)((5...6), (6...7), nil, "a"), + [InNode(8...27)( + HashPatternNode(11...23)( + ConstantReadNode(11...17)(), + [AssocNode(18...22)( + SymbolNode(18...20)(nil, (18...19), (19...20), "b"), + IntegerNode(21...22)(), + nil + )], + nil, + (17...18), + (22...23) + ), + StatementsNode(26...27)([IntegerNode(26...27)()]), + (8...10), + nil + )], + nil, + (0...4), + (28...31) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_pattern_076.txt b/test/yarp/snapshots/seattlerb/parse_pattern_076.txt new file mode 100644 index 0000000000..493223169b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_pattern_076.txt @@ -0,0 +1,36 @@ +ProgramNode(0...39)( + [], + StatementsNode(0...39)( + [CaseNode(0...39)( + HashNode(5...11)( + (5...6), + [AssocNode(6...10)( + SymbolNode(6...8)(nil, (6...7), (7...8), "a"), + IntegerNode(9...10)(), + nil + )], + (10...11) + ), + [InNode(12...35)( + HashPatternNode(15...28)( + nil, + [AssocNode(16...20)( + SymbolNode(16...18)(nil, (16...17), (17...18), "a"), + IntegerNode(19...20)(), + nil + ), + NoKeywordsParameterNode(22...27)((22...24), (24...27))], + nil, + (15...16), + (27...28) + ), + StatementsNode(31...35)([TrueNode(31...35)()]), + (12...14), + nil + )], + nil, + (0...4), + (36...39) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_until_not_canonical.txt b/test/yarp/snapshots/seattlerb/parse_until_not_canonical.txt new file mode 100644 index 0000000000..6ac4c6f042 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_until_not_canonical.txt @@ -0,0 +1,42 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [UntilNode(0...30)( + (0...5), + CallNode(6...18)( + CallNode(10...18)( + CallNode(10...13)( + nil, + nil, + (10...13), + nil, + nil, + nil, + nil, + 0, + "var" + ), + (13...14), + (14...18), + nil, + nil, + nil, + nil, + 0, + "nil?" + ), + nil, + (6...9), + nil, + nil, + nil, + nil, + 0, + "!" + ), + StatementsNode(21...26)( + [StringNode(21...26)((21...22), (22...25), (25...26), "foo")] + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_until_not_noncanonical.txt b/test/yarp/snapshots/seattlerb/parse_until_not_noncanonical.txt new file mode 100644 index 0000000000..6ac4c6f042 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_until_not_noncanonical.txt @@ -0,0 +1,42 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [UntilNode(0...30)( + (0...5), + CallNode(6...18)( + CallNode(10...18)( + CallNode(10...13)( + nil, + nil, + (10...13), + nil, + nil, + nil, + nil, + 0, + "var" + ), + (13...14), + (14...18), + nil, + nil, + nil, + nil, + 0, + "nil?" + ), + nil, + (6...9), + nil, + nil, + nil, + nil, + 0, + "!" + ), + StatementsNode(21...26)( + [StringNode(21...26)((21...22), (22...25), (25...26), "foo")] + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_while_not_canonical.txt b/test/yarp/snapshots/seattlerb/parse_while_not_canonical.txt new file mode 100644 index 0000000000..754694cefe --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_while_not_canonical.txt @@ -0,0 +1,42 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [WhileNode(0...30)( + (0...5), + CallNode(6...18)( + CallNode(10...18)( + CallNode(10...13)( + nil, + nil, + (10...13), + nil, + nil, + nil, + nil, + 0, + "var" + ), + (13...14), + (14...18), + nil, + nil, + nil, + nil, + 0, + "nil?" + ), + nil, + (6...9), + nil, + nil, + nil, + nil, + 0, + "!" + ), + StatementsNode(21...26)( + [StringNode(21...26)((21...22), (22...25), (25...26), "foo")] + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/parse_while_not_noncanonical.txt b/test/yarp/snapshots/seattlerb/parse_while_not_noncanonical.txt new file mode 100644 index 0000000000..754694cefe --- /dev/null +++ b/test/yarp/snapshots/seattlerb/parse_while_not_noncanonical.txt @@ -0,0 +1,42 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [WhileNode(0...30)( + (0...5), + CallNode(6...18)( + CallNode(10...18)( + CallNode(10...13)( + nil, + nil, + (10...13), + nil, + nil, + nil, + nil, + 0, + "var" + ), + (13...14), + (14...18), + nil, + nil, + nil, + nil, + 0, + "nil?" + ), + nil, + (6...9), + nil, + nil, + nil, + nil, + 0, + "!" + ), + StatementsNode(21...26)( + [StringNode(21...26)((21...22), (22...25), (25...26), "foo")] + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/pctW_lineno.txt b/test/yarp/snapshots/seattlerb/pctW_lineno.txt new file mode 100644 index 0000000000..c9ed993026 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/pctW_lineno.txt @@ -0,0 +1,16 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [ArrayNode(0...28)( + [StringNode(3...7)(nil, (3...7), nil, "a\n" + "b"), + StringNode(8...9)(nil, (8...9), nil, "c"), + StringNode(10...11)(nil, (10...11), nil, "d"), + StringNode(12...16)(nil, (12...16), nil, "e\n" + "f"), + StringNode(17...19)(nil, (17...19), nil, "gy"), + StringNode(20...23)(nil, (20...23), nil, "hy"), + StringNode(24...27)(nil, (24...27), nil, "iy")], + (0...3), + (27...28) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/pct_Q_backslash_nl.txt b/test/yarp/snapshots/seattlerb/pct_Q_backslash_nl.txt new file mode 100644 index 0000000000..f8e3421ee4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/pct_Q_backslash_nl.txt @@ -0,0 +1,4 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)([StringNode(0...7)((0...3), (3...6), (6...7), " \n")]) +) diff --git a/test/yarp/snapshots/seattlerb/pct_nl.txt b/test/yarp/snapshots/seattlerb/pct_nl.txt new file mode 100644 index 0000000000..8435c33e6a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/pct_nl.txt @@ -0,0 +1,12 @@ +ProgramNode(0...7)( + [:x], + StatementsNode(0...7)( + [LocalVariableWriteNode(0...7)( + :x, + 0, + StringNode(4...7)((4...6), (6...6), (6...7), ""), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/pipe_semicolon.txt b/test/yarp/snapshots/seattlerb/pipe_semicolon.txt new file mode 100644 index 0000000000..912eef6176 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/pipe_semicolon.txt @@ -0,0 +1,22 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallNode(0...18)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + nil, + nil, + BlockNode(4...18)( + [:c], + BlockParametersNode(7...14)(nil, [(11...12)], (7...8), (13...14)), + nil, + (4...6), + (15...18) + ), + 0, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/pipe_space.txt b/test/yarp/snapshots/seattlerb/pipe_space.txt new file mode 100644 index 0000000000..dc569222e1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/pipe_space.txt @@ -0,0 +1,22 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + nil, + nil, + BlockNode(4...14)( + [], + BlockParametersNode(7...10)(nil, [], (7...8), (9...10)), + nil, + (4...6), + (11...14) + ), + 0, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/qWords_space.txt b/test/yarp/snapshots/seattlerb/qWords_space.txt new file mode 100644 index 0000000000..6713c4ba71 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/qWords_space.txt @@ -0,0 +1,4 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)([ArrayNode(0...5)([], (0...3), (4...5))]) +) diff --git a/test/yarp/snapshots/seattlerb/qsymbols.txt b/test/yarp/snapshots/seattlerb/qsymbols.txt new file mode 100644 index 0000000000..7cf54611c2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/qsymbols.txt @@ -0,0 +1,12 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [ArrayNode(0...9)( + [SymbolNode(3...4)(nil, (3...4), nil, "a"), + SymbolNode(5...6)(nil, (5...6), nil, "b"), + SymbolNode(7...8)(nil, (7...8), nil, "c")], + (0...3), + (8...9) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/qsymbols_empty.txt b/test/yarp/snapshots/seattlerb/qsymbols_empty.txt new file mode 100644 index 0000000000..cad298895b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/qsymbols_empty.txt @@ -0,0 +1,4 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)([ArrayNode(0...4)([], (0...3), (3...4))]) +) diff --git a/test/yarp/snapshots/seattlerb/qsymbols_empty_space.txt b/test/yarp/snapshots/seattlerb/qsymbols_empty_space.txt new file mode 100644 index 0000000000..6713c4ba71 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/qsymbols_empty_space.txt @@ -0,0 +1,4 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)([ArrayNode(0...5)([], (0...3), (4...5))]) +) diff --git a/test/yarp/snapshots/seattlerb/qsymbols_interp.txt b/test/yarp/snapshots/seattlerb/qsymbols_interp.txt new file mode 100644 index 0000000000..2f4a44fc23 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/qsymbols_interp.txt @@ -0,0 +1,33 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [ArrayNode(0...15)( + [SymbolNode(3...4)(nil, (3...4), nil, "a"), + InterpolatedSymbolNode(5...12)( + nil, + [StringNode(5...6)(nil, (5...6), nil, "b"), + EmbeddedStatementsNode(6...12)( + (6...8), + StatementsNode(8...11)( + [CallNode(8...11)( + IntegerNode(8...9)(), + nil, + (9...10), + nil, + ArgumentsNode(10...11)([IntegerNode(10...11)()]), + nil, + nil, + 0, + "+" + )] + ), + (11...12) + )], + nil + ), + SymbolNode(13...14)(nil, (13...14), nil, "c")], + (0...3), + (14...15) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/quoted_symbol_hash_arg.txt b/test/yarp/snapshots/seattlerb/quoted_symbol_hash_arg.txt new file mode 100644 index 0000000000..861fcaa6a2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/quoted_symbol_hash_arg.txt @@ -0,0 +1,24 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + nil, + nil, + (0...4), + nil, + ArgumentsNode(5...12)( + [KeywordHashNode(5...12)( + [AssocNode(5...12)( + SymbolNode(5...9)((5...6), (6...7), (7...9), "a"), + HashNode(10...12)((10...11), [], (11...12)), + nil + )] + )] + ), + nil, + nil, + 0, + "puts" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/quoted_symbol_keys.txt b/test/yarp/snapshots/seattlerb/quoted_symbol_keys.txt new file mode 100644 index 0000000000..59b2b5d62d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/quoted_symbol_keys.txt @@ -0,0 +1,14 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [HashNode(0...11)( + (0...1), + [AssocNode(2...9)( + SymbolNode(2...6)((2...3), (3...4), (4...6), "a"), + SymbolNode(7...9)((7...8), (8...9), nil, "b"), + nil + )], + (10...11) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/qw_escape.txt b/test/yarp/snapshots/seattlerb/qw_escape.txt new file mode 100644 index 0000000000..0bf3fd8d8b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/qw_escape.txt @@ -0,0 +1,6 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [StringNode(0...7)((0...3), (3...6), (6...7), "\u0001'")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/qw_escape_term.txt b/test/yarp/snapshots/seattlerb/qw_escape_term.txt new file mode 100644 index 0000000000..2c9eb48c3d --- /dev/null +++ b/test/yarp/snapshots/seattlerb/qw_escape_term.txt @@ -0,0 +1,11 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [StringNode(0...26)( + (0...3), + (3...25), + (25...26), + "blah blah \\| blah blah" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/qwords_empty.txt b/test/yarp/snapshots/seattlerb/qwords_empty.txt new file mode 100644 index 0000000000..cad298895b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/qwords_empty.txt @@ -0,0 +1,4 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)([ArrayNode(0...4)([], (0...3), (3...4))]) +) diff --git a/test/yarp/snapshots/seattlerb/read_escape_unicode_curlies.txt b/test/yarp/snapshots/seattlerb/read_escape_unicode_curlies.txt new file mode 100644 index 0000000000..26583c05a1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/read_escape_unicode_curlies.txt @@ -0,0 +1,4 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)([StringNode(0...9)((0...1), (1...9), nil, " ")]) +) diff --git a/test/yarp/snapshots/seattlerb/read_escape_unicode_h4.txt b/test/yarp/snapshots/seattlerb/read_escape_unicode_h4.txt new file mode 100644 index 0000000000..b17128c620 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/read_escape_unicode_h4.txt @@ -0,0 +1,4 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)([StringNode(0...7)((0...1), (1...7), nil, " ")]) +) diff --git a/test/yarp/snapshots/seattlerb/regexp.txt b/test/yarp/snapshots/seattlerb/regexp.txt new file mode 100644 index 0000000000..122d26a249 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/regexp.txt @@ -0,0 +1,28 @@ +ProgramNode(0...45)( + [], + StatementsNode(0...45)( + [RegularExpressionNode(0...5)((0...1), (1...4), (4...5), "wtf", 0), + RegularExpressionNode(7...13)((7...8), (8...11), (11...13), "wtf", 2), + RegularExpressionNode(15...21)( + (15...16), + (16...19), + (19...21), + "wtf", + 16 + ), + RegularExpressionNode(23...30)( + (23...24), + (24...27), + (27...30), + "wtf", + 18 + ), + RegularExpressionNode(32...45)( + (32...33), + (33...36), + (36...45), + "wtf", + 18 + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/regexp_esc_C_slash.txt b/test/yarp/snapshots/seattlerb/regexp_esc_C_slash.txt new file mode 100644 index 0000000000..2605080304 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/regexp_esc_C_slash.txt @@ -0,0 +1,6 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [RegularExpressionNode(0...7)((0...1), (1...6), (6...7), "\u0003d", 0)] + ) +) diff --git a/test/yarp/snapshots/seattlerb/regexp_esc_u.txt b/test/yarp/snapshots/seattlerb/regexp_esc_u.txt new file mode 100644 index 0000000000..8b13368704 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/regexp_esc_u.txt @@ -0,0 +1,6 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [RegularExpressionNode(0...17)((0...1), (1...16), (16...17), "[!-']", 0)] + ) +) diff --git a/test/yarp/snapshots/seattlerb/regexp_escape_extended.txt b/test/yarp/snapshots/seattlerb/regexp_escape_extended.txt new file mode 100644 index 0000000000..699de5a196 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/regexp_escape_extended.txt @@ -0,0 +1,6 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [RegularExpressionNode(0...6)((0...1), (1...5), (5...6), "“", 0)] + ) +) diff --git a/test/yarp/snapshots/seattlerb/regexp_unicode_curlies.txt b/test/yarp/snapshots/seattlerb/regexp_unicode_curlies.txt new file mode 100644 index 0000000000..e4502db3f7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/regexp_unicode_curlies.txt @@ -0,0 +1,7 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [RegularExpressionNode(0...15)((0...1), (1...14), (14...15), "샞몾", 0), + RegularExpressionNode(17...25)((17...18), (18...24), (24...25), "ß", 0)] + ) +) diff --git a/test/yarp/snapshots/seattlerb/required_kwarg_no_value.txt b/test/yarp/snapshots/seattlerb/required_kwarg_no_value.txt new file mode 100644 index 0000000000..95cf0e279a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/required_kwarg_no_value.txt @@ -0,0 +1,27 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [DefNode(0...16)( + (4...5), + nil, + ParametersNode(6...12)( + [], + [], + [], + nil, + [KeywordParameterNode(6...8)((6...8), nil), + KeywordParameterNode(10...12)((10...12), nil)], + nil, + nil + ), + nil, + [:a, :b], + (0...3), + nil, + nil, + nil, + nil, + (13...16) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/rescue_do_end_ensure_result.txt b/test/yarp/snapshots/seattlerb/rescue_do_end_ensure_result.txt new file mode 100644 index 0000000000..52721053a8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/rescue_do_end_ensure_result.txt @@ -0,0 +1,47 @@ +ProgramNode(0...42)( + [], + StatementsNode(0...42)( + [CallNode(0...42)( + CallNode(0...37)( + nil, + nil, + (0...4), + nil, + nil, + nil, + BlockNode(5...37)( + [], + nil, + BeginNode(10...37)( + nil, + StatementsNode(10...16)( + [SymbolNode(10...16)((10...11), (11...16), nil, "begin")] + ), + nil, + nil, + EnsureNode(17...37)( + (17...23), + StatementsNode(26...33)( + [SymbolNode(26...33)((26...27), (27...33), nil, "ensure")] + ), + (34...37) + ), + (34...37) + ), + (5...7), + (34...37) + ), + 0, + "proc" + ), + (37...38), + (38...42), + nil, + nil, + nil, + nil, + 0, + "call" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/rescue_do_end_no_raise.txt b/test/yarp/snapshots/seattlerb/rescue_do_end_no_raise.txt new file mode 100644 index 0000000000..c4d46c2f7a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/rescue_do_end_no_raise.txt @@ -0,0 +1,52 @@ +ProgramNode(0...66)( + [], + StatementsNode(0...66)( + [CallNode(0...66)( + nil, + nil, + (0...3), + nil, + nil, + nil, + BlockNode(4...66)( + [], + nil, + BeginNode(9...66)( + nil, + StatementsNode(9...15)( + [SymbolNode(9...15)((9...10), (10...15), nil, "begin")] + ), + RescueNode(16...32)( + (16...22), + [], + nil, + nil, + StatementsNode(25...32)( + [SymbolNode(25...32)((25...26), (26...32), nil, "rescue")] + ), + nil + ), + ElseNode(33...52)( + (33...37), + StatementsNode(40...45)( + [SymbolNode(40...45)((40...41), (41...45), nil, "else")] + ), + (46...52) + ), + EnsureNode(46...66)( + (46...52), + StatementsNode(55...62)( + [SymbolNode(55...62)((55...56), (56...62), nil, "ensure")] + ), + (63...66) + ), + (63...66) + ), + (4...6), + (63...66) + ), + 0, + "tap" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/rescue_do_end_raised.txt b/test/yarp/snapshots/seattlerb/rescue_do_end_raised.txt new file mode 100644 index 0000000000..7209e7eb47 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/rescue_do_end_raised.txt @@ -0,0 +1,47 @@ +ProgramNode(0...35)( + [], + StatementsNode(0...35)( + [CallNode(0...35)( + nil, + nil, + (0...3), + nil, + nil, + nil, + BlockNode(4...35)( + [], + nil, + BeginNode(9...35)( + nil, + StatementsNode(9...14)( + [CallNode(9...14)( + nil, + nil, + (9...14), + nil, + nil, + nil, + nil, + 0, + "raise" + )] + ), + nil, + nil, + EnsureNode(15...35)( + (15...21), + StatementsNode(24...31)( + [SymbolNode(24...31)((24...25), (25...31), nil, "ensure")] + ), + (32...35) + ), + (32...35) + ), + (4...6), + (32...35) + ), + 0, + "tap" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/rescue_do_end_rescued.txt b/test/yarp/snapshots/seattlerb/rescue_do_end_rescued.txt new file mode 100644 index 0000000000..07d7a0aa6a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/rescue_do_end_rescued.txt @@ -0,0 +1,62 @@ +ProgramNode(0...65)( + [], + StatementsNode(0...65)( + [CallNode(0...65)( + nil, + nil, + (0...3), + nil, + nil, + nil, + BlockNode(4...65)( + [], + nil, + BeginNode(9...65)( + nil, + StatementsNode(9...14)( + [CallNode(9...14)( + nil, + nil, + (9...14), + nil, + nil, + nil, + nil, + 0, + "raise" + )] + ), + RescueNode(15...31)( + (15...21), + [], + nil, + nil, + StatementsNode(24...31)( + [SymbolNode(24...31)((24...25), (25...31), nil, "rescue")] + ), + nil + ), + ElseNode(32...51)( + (32...36), + StatementsNode(39...44)( + [SymbolNode(39...44)((39...40), (40...44), nil, "else")] + ), + (45...51) + ), + EnsureNode(45...65)( + (45...51), + StatementsNode(54...61)( + [SymbolNode(54...61)((54...55), (55...61), nil, "ensure")] + ), + (62...65) + ), + (62...65) + ), + (4...6), + (62...65) + ), + 0, + "tap" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/rescue_in_block.txt b/test/yarp/snapshots/seattlerb/rescue_in_block.txt new file mode 100644 index 0000000000..0a9d040814 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/rescue_in_block.txt @@ -0,0 +1,48 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [CallNode(0...26)( + nil, + nil, + (0...4), + nil, + nil, + nil, + BlockNode(5...26)( + [], + nil, + BeginNode(8...26)( + nil, + nil, + RescueNode(8...22)( + (8...14), + [], + nil, + nil, + StatementsNode(17...22)( + [CallNode(17...22)( + nil, + nil, + (17...22), + nil, + nil, + nil, + nil, + 0, + "stuff" + )] + ), + nil + ), + nil, + nil, + (23...26) + ), + (5...7), + (23...26) + ), + 0, + "blah" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/rescue_parens.txt b/test/yarp/snapshots/seattlerb/rescue_parens.txt new file mode 100644 index 0000000000..f7f6a7783e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/rescue_parens.txt @@ -0,0 +1,48 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...14)( + [ParenthesesNode(2...14)( + StatementsNode(3...13)( + [RescueModifierNode(3...13)( + CallNode(3...4)( + nil, + nil, + (3...4), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (5...11), + CallNode(12...13)( + nil, + nil, + (12...13), + nil, + nil, + nil, + nil, + 0, + "c" + ) + )] + ), + (2...3), + (13...14) + )] + ), + nil, + nil, + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/return_call_assocs.txt b/test/yarp/snapshots/seattlerb/return_call_assocs.txt new file mode 100644 index 0000000000..72edbbbfa4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/return_call_assocs.txt @@ -0,0 +1,142 @@ +ProgramNode(0...106)( + [], + StatementsNode(0...106)( + [ReturnNode(0...17)( + (0...6), + ArgumentsNode(7...17)( + [IntegerNode(7...8)(), + KeywordHashNode(10...17)( + [AssocNode(10...17)( + SymbolNode(10...12)((10...11), (11...12), nil, "z"), + IntegerNode(16...17)(), + (13...15) + )] + )] + ) + ), + ReturnNode(19...45)( + (19...25), + ArgumentsNode(26...45)( + [IntegerNode(26...27)(), + KeywordHashNode(29...45)( + [AssocNode(29...36)( + SymbolNode(29...31)((29...30), (30...31), nil, "z"), + IntegerNode(35...36)(), + (32...34) + ), + AssocNode(38...45)( + SymbolNode(38...40)((38...39), (39...40), nil, "w"), + IntegerNode(44...45)(), + (41...43) + )] + )] + ) + ), + ReturnNode(47...61)( + (47...53), + ArgumentsNode(54...61)( + [CallNode(54...61)( + nil, + nil, + (54...55), + nil, + ArgumentsNode(56...61)( + [KeywordHashNode(56...61)( + [AssocNode(56...61)( + SymbolNode(56...58)((56...57), (57...58), nil, "z"), + IntegerNode(60...61)(), + (58...60) + )] + )] + ), + nil, + nil, + 0, + "y" + )] + ) + ), + ReturnNode(63...75)( + (63...69), + ArgumentsNode(70...75)( + [CallNode(70...75)( + nil, + nil, + (70...71), + nil, + ArgumentsNode(72...75)( + [KeywordHashNode(72...75)( + [AssocNode(72...75)( + SymbolNode(72...74)(nil, (72...73), (73...74), "z"), + IntegerNode(74...75)(), + nil + )] + )] + ), + nil, + nil, + 0, + "y" + )] + ) + ), + ReturnNode(77...90)( + (77...83), + ArgumentsNode(84...90)( + [CallNode(84...90)( + nil, + nil, + (84...85), + (85...86), + ArgumentsNode(86...89)( + [KeywordHashNode(86...89)( + [AssocNode(86...89)( + SymbolNode(86...88)(nil, (86...87), (87...88), "z"), + IntegerNode(88...89)(), + nil + )] + )] + ), + (89...90), + nil, + 0, + "y" + )] + ) + ), + ReturnNode(92...106)( + (92...98), + ArgumentsNode(99...106)( + [CallNode(99...106)( + nil, + nil, + (99...100), + (100...101), + ArgumentsNode(101...105)( + [KeywordHashNode(101...105)( + [AssocNode(101...105)( + CallNode(101...102)( + nil, + nil, + (101...102), + nil, + nil, + nil, + nil, + 0, + "z" + ), + IntegerNode(104...105)(), + (102...104) + )] + )] + ), + (105...106), + nil, + 0, + "y" + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/rhs_asgn.txt b/test/yarp/snapshots/seattlerb/rhs_asgn.txt new file mode 100644 index 0000000000..7ba161b170 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/rhs_asgn.txt @@ -0,0 +1,10 @@ +ProgramNode(0...7)( + [:n], + StatementsNode(0...7)( + [MatchRequiredNode(0...7)( + IntegerNode(0...2)(), + LocalVariableWriteNode(6...7)(:n, 0, nil, (6...7), nil), + (3...5) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/ruby21_numbers.txt b/test/yarp/snapshots/seattlerb/ruby21_numbers.txt new file mode 100644 index 0000000000..f250397d15 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/ruby21_numbers.txt @@ -0,0 +1,12 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [ArrayNode(0...13)( + [ImaginaryNode(1...3)(IntegerNode(1...2)()), + RationalNode(5...7)(IntegerNode(5...6)()), + ImaginaryNode(9...12)(RationalNode(9...11)(IntegerNode(9...10)()))], + (0...1), + (12...13) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_attrasgn.txt b/test/yarp/snapshots/seattlerb/safe_attrasgn.txt new file mode 100644 index 0000000000..fabbcb5ca7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_attrasgn.txt @@ -0,0 +1,16 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...8)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + ArgumentsNode(7...8)([IntegerNode(7...8)()]), + nil, + nil, + 1, + "b=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_attrasgn_constant.txt b/test/yarp/snapshots/seattlerb/safe_attrasgn_constant.txt new file mode 100644 index 0000000000..b821504034 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_attrasgn_constant.txt @@ -0,0 +1,16 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...8)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + ArgumentsNode(7...8)([IntegerNode(7...8)()]), + nil, + nil, + 1, + "B=" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_call.txt b/test/yarp/snapshots/seattlerb/safe_call.txt new file mode 100644 index 0000000000..1621715838 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_call.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 1, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_call_after_newline.txt b/test/yarp/snapshots/seattlerb/safe_call_after_newline.txt new file mode 100644 index 0000000000..d57c4b14f7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_call_after_newline.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (2...4), + (4...5), + nil, + nil, + nil, + nil, + 1, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_call_dot_parens.txt b/test/yarp/snapshots/seattlerb/safe_call_dot_parens.txt new file mode 100644 index 0000000000..3eee73711e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_call_dot_parens.txt @@ -0,0 +1,16 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [CallNode(0...5)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (0...0), + (3...4), + nil, + (4...5), + nil, + 1, + "call" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_call_newline.txt b/test/yarp/snapshots/seattlerb/safe_call_newline.txt new file mode 100644 index 0000000000..1621715838 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_call_newline.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 1, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_call_operator.txt b/test/yarp/snapshots/seattlerb/safe_call_operator.txt new file mode 100644 index 0000000000..797d9795c1 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_call_operator.txt @@ -0,0 +1,16 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + nil, + nil, + 1, + ">" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_call_rhs_newline.txt b/test/yarp/snapshots/seattlerb/safe_call_rhs_newline.txt new file mode 100644 index 0000000000..373fd18537 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_call_rhs_newline.txt @@ -0,0 +1,22 @@ +ProgramNode(0...8)( + [:c], + StatementsNode(0...8)( + [LocalVariableWriteNode(0...8)( + :c, + 0, + CallNode(4...8)( + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "a"), + (5...7), + (7...8), + nil, + nil, + nil, + nil, + 1, + "b" + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_calls.txt b/test/yarp/snapshots/seattlerb/safe_calls.txt new file mode 100644 index 0000000000..ef0fe5c7a8 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_calls.txt @@ -0,0 +1,26 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallNode(0...10)( + CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 1, + "b" + ), + (4...6), + (6...7), + (7...8), + ArgumentsNode(8...9)([IntegerNode(8...9)()]), + (9...10), + nil, + 1, + "c" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_op_asgn.txt b/test/yarp/snapshots/seattlerb/safe_op_asgn.txt new file mode 100644 index 0000000000..a90eecb8fd --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_op_asgn.txt @@ -0,0 +1,31 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallOperatorWriteNode(0...11)( + CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 1, + "b=" + ), + (5...7), + CallNode(8...11)( + nil, + nil, + (8...9), + nil, + ArgumentsNode(10...11)([IntegerNode(10...11)()]), + nil, + nil, + 0, + "x" + ), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/safe_op_asgn2.txt b/test/yarp/snapshots/seattlerb/safe_op_asgn2.txt new file mode 100644 index 0000000000..bf00e7947b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/safe_op_asgn2.txt @@ -0,0 +1,20 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallOperatorOrWriteNode(0...10)( + CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 1, + "b=" + ), + CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "x"), + (5...8) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/slashy_newlines_within_string.txt b/test/yarp/snapshots/seattlerb/slashy_newlines_within_string.txt new file mode 100644 index 0000000000..fed889aa90 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/slashy_newlines_within_string.txt @@ -0,0 +1,36 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [CallNode(0...33)( + nil, + nil, + (0...4), + nil, + ArgumentsNode(5...33)( + [StringNode(5...33)( + (5...6), + (6...32), + (32...33), + "hello\n" + " my\n" + " dear\n" + " friend" + )] + ), + nil, + nil, + 0, + "puts" + ), + CallNode(35...40)( + CallNode(35...36)(nil, nil, (35...36), nil, nil, nil, nil, 0, "a"), + nil, + (37...38), + nil, + ArgumentsNode(39...40)( + [CallNode(39...40)(nil, nil, (39...40), nil, nil, nil, nil, 0, "b")] + ), + nil, + nil, + 0, + "+" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/stabby_arg_no_paren.txt b/test/yarp/snapshots/seattlerb/stabby_arg_no_paren.txt new file mode 100644 index 0000000000..bbbd0a3fcf --- /dev/null +++ b/test/yarp/snapshots/seattlerb/stabby_arg_no_paren.txt @@ -0,0 +1,24 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [LambdaNode(0...5)( + [:a], + (0...2), + BlockParametersNode(2...3)( + ParametersNode(2...3)( + [RequiredParameterNode(2...3)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + nil, + nil + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt b/test/yarp/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt new file mode 100644 index 0000000000..9475ba9c3f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt @@ -0,0 +1,29 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [LambdaNode(0...23)( + [:b, :c, :d, :e, :f], + (0...2), + BlockParametersNode(2...21)( + ParametersNode(3...20)( + [RequiredParameterNode(3...4)(:b)], + [OptionalParameterNode(6...9)( + :c, + (6...7), + (7...8), + IntegerNode(8...9)() + )], + [RequiredParameterNode(15...16)(:e)], + RestParameterNode(11...13)((11...12), (12...13)), + [], + nil, + BlockParameterNode(18...20)((19...20), (18...19)) + ), + [], + (2...3), + (20...21) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/stabby_block_iter_call.txt b/test/yarp/snapshots/seattlerb/stabby_block_iter_call.txt new file mode 100644 index 0000000000..9d56711a76 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/stabby_block_iter_call.txt @@ -0,0 +1,45 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [CallNode(0...25)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...25)( + [LambdaNode(2...25)( + [], + (2...4), + BlockParametersNode(5...7)(nil, [], (5...6), (6...7)), + StatementsNode(11...21)( + [CallNode(11...21)( + CallNode(11...12)( + nil, + nil, + (11...12), + nil, + nil, + nil, + nil, + 0, + "a" + ), + (12...13), + (13...14), + nil, + nil, + nil, + BlockNode(15...21)([], nil, nil, (15...17), (18...21)), + 0, + "b" + )] + ) + )] + ), + nil, + nil, + 0, + "x" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/stabby_block_iter_call_no_target_with_arg.txt b/test/yarp/snapshots/seattlerb/stabby_block_iter_call_no_target_with_arg.txt new file mode 100644 index 0000000000..c24b3c63c7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/stabby_block_iter_call_no_target_with_arg.txt @@ -0,0 +1,35 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [CallNode(0...26)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...26)( + [LambdaNode(2...26)( + [], + (2...4), + BlockParametersNode(5...7)(nil, [], (5...6), (6...7)), + StatementsNode(11...22)( + [CallNode(11...22)( + nil, + nil, + (11...12), + (12...13), + ArgumentsNode(13...14)([IntegerNode(13...14)()]), + (14...15), + BlockNode(16...22)([], nil, nil, (16...18), (19...22)), + 0, + "a" + )] + ) + )] + ), + nil, + nil, + 0, + "x" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/stabby_block_kw.txt b/test/yarp/snapshots/seattlerb/stabby_block_kw.txt new file mode 100644 index 0000000000..9554c9d37a --- /dev/null +++ b/test/yarp/snapshots/seattlerb/stabby_block_kw.txt @@ -0,0 +1,24 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [LambdaNode(0...13)( + [:k], + (0...2), + BlockParametersNode(3...9)( + ParametersNode(4...8)( + [], + [], + [], + nil, + [KeywordParameterNode(4...8)((4...6), IntegerNode(6...8)())], + nil, + nil + ), + [], + (3...4), + (8...9) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/stabby_block_kw__required.txt b/test/yarp/snapshots/seattlerb/stabby_block_kw__required.txt new file mode 100644 index 0000000000..e2bdaf8124 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/stabby_block_kw__required.txt @@ -0,0 +1,24 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [LambdaNode(0...11)( + [:k], + (0...2), + BlockParametersNode(3...7)( + ParametersNode(4...6)( + [], + [], + [], + nil, + [KeywordParameterNode(4...6)((4...6), nil)], + nil, + nil + ), + [], + (3...4), + (6...7) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/stabby_proc_scope.txt b/test/yarp/snapshots/seattlerb/stabby_proc_scope.txt new file mode 100644 index 0000000000..d8aef65941 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/stabby_proc_scope.txt @@ -0,0 +1,24 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [LambdaNode(0...11)( + [:a, :b], + (0...2), + BlockParametersNode(2...8)( + ParametersNode(3...4)( + [RequiredParameterNode(3...4)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [(6...7)], + (2...3), + (7...8) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_backslashes.txt b/test/yarp/snapshots/seattlerb/str_backslashes.txt new file mode 100644 index 0000000000..8ad6906611 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_backslashes.txt @@ -0,0 +1,23 @@ +ProgramNode(0...204)( + [], + StatementsNode(0...204)( + [CallNode(0...204)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...204)( + [StringNode(2...204)( + (2...3), + (3...203), + (203...204), + "\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n" + )] + ), + nil, + nil, + 0, + "x" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_double_double_escaped_newline.txt b/test/yarp/snapshots/seattlerb/str_double_double_escaped_newline.txt new file mode 100644 index 0000000000..fa91f00d29 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_double_double_escaped_newline.txt @@ -0,0 +1,19 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...7)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...7)( + [StringNode(2...7)((2...3), (3...6), (6...7), "\\n")] + ), + nil, + nil, + 0, + "a" + ), + CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "b")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_double_escaped_newline.txt b/test/yarp/snapshots/seattlerb/str_double_escaped_newline.txt new file mode 100644 index 0000000000..2ff6d74fbb --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_double_escaped_newline.txt @@ -0,0 +1,19 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...6)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...6)( + [StringNode(2...6)((2...3), (3...5), (5...6), "\n")] + ), + nil, + nil, + 0, + "a" + ), + CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "b")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_double_newline.txt b/test/yarp/snapshots/seattlerb/str_double_newline.txt new file mode 100644 index 0000000000..a8e003e997 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_double_newline.txt @@ -0,0 +1,19 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...5)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...5)( + [StringNode(2...5)((2...3), (3...4), (4...5), "\n")] + ), + nil, + nil, + 0, + "a" + ), + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "b")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_evstr.txt b/test/yarp/snapshots/seattlerb/str_evstr.txt new file mode 100644 index 0000000000..54cd37035f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_evstr.txt @@ -0,0 +1,17 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [InterpolatedStringNode(0...8)( + (0...1), + [StringNode(1...3)(nil, (1...3), nil, "a "), + EmbeddedStatementsNode(3...7)( + (3...5), + StatementsNode(5...6)( + [CallNode(5...6)(nil, nil, (5...6), nil, nil, nil, nil, 0, "b")] + ), + (6...7) + )], + (7...8) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_evstr_escape.txt b/test/yarp/snapshots/seattlerb/str_evstr_escape.txt new file mode 100644 index 0000000000..41b2b9e294 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_evstr_escape.txt @@ -0,0 +1,18 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [InterpolatedStringNode(0...16)( + (0...1), + [StringNode(1...3)(nil, (1...3), nil, "a "), + EmbeddedStatementsNode(3...7)( + (3...5), + StatementsNode(5...6)( + [CallNode(5...6)(nil, nil, (5...6), nil, nil, nil, nil, 0, "b")] + ), + (6...7) + ), + StringNode(7...15)(nil, (7...15), nil, "½")], + (15...16) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_heredoc_interp.txt b/test/yarp/snapshots/seattlerb/str_heredoc_interp.txt new file mode 100644 index 0000000000..3564378399 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_heredoc_interp.txt @@ -0,0 +1,17 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [InterpolatedStringNode(0...17)( + (0...4), + [EmbeddedStatementsNode(5...9)( + (5...7), + StatementsNode(7...8)( + [CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "x")] + ), + (8...9) + ), + StringNode(9...16)(nil, (9...16), nil, "\n" + "blah2\n")], + (16...17) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_interp_ternary_or_label.txt b/test/yarp/snapshots/seattlerb/str_interp_ternary_or_label.txt new file mode 100644 index 0000000000..d712ca00a4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_interp_ternary_or_label.txt @@ -0,0 +1,89 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [InterpolatedStringNode(0...23)( + (0...1), + [EmbeddedStatementsNode(1...22)( + (1...3), + StatementsNode(3...21)( + [IfNode(3...21)( + nil, + CallNode(3...7)( + CallNode(3...4)( + nil, + nil, + (3...4), + nil, + nil, + nil, + nil, + 0, + "a" + ), + (4...5), + (5...7), + nil, + nil, + nil, + nil, + 0, + "b?" + ), + StatementsNode(10...17)( + [CallNode(10...17)( + CallNode(10...14)( + StringNode(10...12)((10...11), (11...11), (11...12), ""), + nil, + (12...13), + nil, + ArgumentsNode(13...14)( + [CallNode(13...14)( + nil, + nil, + (13...14), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + nil, + nil, + 0, + "+" + ), + nil, + (14...15), + nil, + ArgumentsNode(15...17)( + [StringNode(15...17)( + (15...16), + (16...16), + (16...17), + "" + )] + ), + nil, + nil, + 0, + "+" + )] + ), + ElseNode(17...21)( + (17...18), + StatementsNode(19...21)( + [StringNode(19...21)((19...20), (20...20), (20...21), "")] + ), + nil + ), + nil + )] + ), + (21...22) + )], + (22...23) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_lit_concat_bad_encodings.txt b/test/yarp/snapshots/seattlerb/str_lit_concat_bad_encodings.txt new file mode 100644 index 0000000000..350cc6b6b9 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_lit_concat_bad_encodings.txt @@ -0,0 +1,19 @@ +ProgramNode(0...131)( + [], + StatementsNode(0...131)( + [StringConcatNode(0...131)( + StringNode(0...62)( + (0...1), + (1...61), + (61...62), + "\xE3Ӌー\x83\xE3\x83コ\xA3\x82\x99" + ), + StringNode(73...131)( + (73...74), + (74...130), + (130...131), + "ンパý;foo@bar.com" + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_newline_hash_line_number.txt b/test/yarp/snapshots/seattlerb/str_newline_hash_line_number.txt new file mode 100644 index 0000000000..e56d74eed7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_newline_hash_line_number.txt @@ -0,0 +1,12 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [StringNode(0...11)( + (0...1), + (1...10), + (10...11), + "\n" + "\n" + "\n" + "\n" + "#" + ), + IntegerNode(12...13)()] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_pct_Q_nested.txt b/test/yarp/snapshots/seattlerb/str_pct_Q_nested.txt new file mode 100644 index 0000000000..57b00effb7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_pct_Q_nested.txt @@ -0,0 +1,28 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [InterpolatedStringNode(0...26)( + (0...3), + [StringNode(3...11)(nil, (3...11), nil, "before ["), + EmbeddedStatementsNode(11...18)( + (11...13), + StatementsNode(13...17)( + [CallNode(13...17)( + nil, + nil, + (13...17), + nil, + nil, + nil, + nil, + 0, + "nest" + )] + ), + (17...18) + ), + StringNode(18...25)(nil, (18...25), nil, "] after")], + (25...26) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_pct_nested_nested.txt b/test/yarp/snapshots/seattlerb/str_pct_nested_nested.txt new file mode 100644 index 0000000000..b615b691cc --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_pct_nested_nested.txt @@ -0,0 +1,26 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [InterpolatedStringNode(0...20)( + (0...2), + [StringNode(2...5)(nil, (2...5), nil, " { "), + EmbeddedStatementsNode(5...16)( + (5...7), + StatementsNode(8...14)( + [InterpolatedStringNode(8...14)( + (8...9), + [EmbeddedStatementsNode(9...13)( + (9...11), + StatementsNode(11...12)([IntegerNode(11...12)()]), + (12...13) + )], + (13...14) + )] + ), + (15...16) + ), + StringNode(16...19)(nil, (16...19), nil, " } ")], + (19...20) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_pct_q.txt b/test/yarp/snapshots/seattlerb/str_pct_q.txt new file mode 100644 index 0000000000..be3f92365c --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_pct_q.txt @@ -0,0 +1,6 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [StringNode(0...9)((0...3), (3...8), (8...9), "a b c")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_single_double_escaped_newline.txt b/test/yarp/snapshots/seattlerb/str_single_double_escaped_newline.txt new file mode 100644 index 0000000000..fa91f00d29 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_single_double_escaped_newline.txt @@ -0,0 +1,19 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...7)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...7)( + [StringNode(2...7)((2...3), (3...6), (6...7), "\\n")] + ), + nil, + nil, + 0, + "a" + ), + CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "b")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_single_escaped_newline.txt b/test/yarp/snapshots/seattlerb/str_single_escaped_newline.txt new file mode 100644 index 0000000000..1d2b327f6b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_single_escaped_newline.txt @@ -0,0 +1,19 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...6)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...6)( + [StringNode(2...6)((2...3), (3...5), (5...6), "\\n")] + ), + nil, + nil, + 0, + "a" + ), + CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 0, "b")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_single_newline.txt b/test/yarp/snapshots/seattlerb/str_single_newline.txt new file mode 100644 index 0000000000..a8e003e997 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_single_newline.txt @@ -0,0 +1,19 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...5)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...5)( + [StringNode(2...5)((2...3), (3...4), (4...5), "\n")] + ), + nil, + nil, + 0, + "a" + ), + CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "b")] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_str.txt b/test/yarp/snapshots/seattlerb/str_str.txt new file mode 100644 index 0000000000..964ac52f5f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_str.txt @@ -0,0 +1,17 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [InterpolatedStringNode(0...10)( + (0...1), + [StringNode(1...3)(nil, (1...3), nil, "a "), + EmbeddedStatementsNode(3...9)( + (3...5), + StatementsNode(5...8)( + [StringNode(5...8)((5...6), (6...7), (7...8), "b")] + ), + (8...9) + )], + (9...10) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/str_str_str.txt b/test/yarp/snapshots/seattlerb/str_str_str.txt new file mode 100644 index 0000000000..f7ca61b950 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/str_str_str.txt @@ -0,0 +1,18 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [InterpolatedStringNode(0...12)( + (0...1), + [StringNode(1...3)(nil, (1...3), nil, "a "), + EmbeddedStatementsNode(3...9)( + (3...5), + StatementsNode(5...8)( + [StringNode(5...8)((5...6), (6...7), (7...8), "b")] + ), + (8...9) + ), + StringNode(9...11)(nil, (9...11), nil, " c")], + (11...12) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/super_arg.txt b/test/yarp/snapshots/seattlerb/super_arg.txt new file mode 100644 index 0000000000..3885dbac14 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/super_arg.txt @@ -0,0 +1,12 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [SuperNode(0...8)( + (0...5), + nil, + ArgumentsNode(6...8)([IntegerNode(6...8)()]), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/symbol_empty.txt b/test/yarp/snapshots/seattlerb/symbol_empty.txt new file mode 100644 index 0000000000..f299d17642 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/symbol_empty.txt @@ -0,0 +1,4 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)([SymbolNode(0...3)((0...2), (2...2), (2...3), "")]) +) diff --git a/test/yarp/snapshots/seattlerb/symbol_list.txt b/test/yarp/snapshots/seattlerb/symbol_list.txt new file mode 100644 index 0000000000..cfd59c4e0e --- /dev/null +++ b/test/yarp/snapshots/seattlerb/symbol_list.txt @@ -0,0 +1,41 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [ArrayNode(0...13)( + [InterpolatedSymbolNode(3...7)( + nil, + [EmbeddedStatementsNode(3...7)( + (3...5), + StatementsNode(5...6)( + [CallNode(5...6)(nil, nil, (5...6), nil, nil, nil, nil, 0, "a")] + ), + (6...7) + )], + nil + ), + InterpolatedSymbolNode(8...12)( + nil, + [EmbeddedStatementsNode(8...12)( + (8...10), + StatementsNode(10...11)( + [CallNode(10...11)( + nil, + nil, + (10...11), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (11...12) + )], + nil + )], + (0...3), + (12...13) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/symbols.txt b/test/yarp/snapshots/seattlerb/symbols.txt new file mode 100644 index 0000000000..7cf54611c2 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/symbols.txt @@ -0,0 +1,12 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [ArrayNode(0...9)( + [SymbolNode(3...4)(nil, (3...4), nil, "a"), + SymbolNode(5...6)(nil, (5...6), nil, "b"), + SymbolNode(7...8)(nil, (7...8), nil, "c")], + (0...3), + (8...9) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/symbols_empty.txt b/test/yarp/snapshots/seattlerb/symbols_empty.txt new file mode 100644 index 0000000000..cad298895b --- /dev/null +++ b/test/yarp/snapshots/seattlerb/symbols_empty.txt @@ -0,0 +1,4 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)([ArrayNode(0...4)([], (0...3), (3...4))]) +) diff --git a/test/yarp/snapshots/seattlerb/symbols_empty_space.txt b/test/yarp/snapshots/seattlerb/symbols_empty_space.txt new file mode 100644 index 0000000000..6713c4ba71 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/symbols_empty_space.txt @@ -0,0 +1,4 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)([ArrayNode(0...5)([], (0...3), (4...5))]) +) diff --git a/test/yarp/snapshots/seattlerb/symbols_interp.txt b/test/yarp/snapshots/seattlerb/symbols_interp.txt new file mode 100644 index 0000000000..2aa2914312 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/symbols_interp.txt @@ -0,0 +1,12 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [ArrayNode(0...15)( + [SymbolNode(3...4)(nil, (3...4), nil, "a"), + SymbolNode(5...12)(nil, (5...12), nil, "b\#{1+1}"), + SymbolNode(13...14)(nil, (13...14), nil, "c")], + (0...3), + (14...15) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/thingy.txt b/test/yarp/snapshots/seattlerb/thingy.txt new file mode 100644 index 0000000000..1a1c467f47 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/thingy.txt @@ -0,0 +1,27 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...6)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "f"), + (1...2), + (0...0), + (2...3), + ArgumentsNode(3...5)([IntegerNode(3...5)()]), + (5...6), + nil, + 0, + "call" + ), + CallNode(8...15)( + CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "f"), + (9...11), + (0...0), + (11...12), + ArgumentsNode(12...14)([IntegerNode(12...14)()]), + (14...15), + nil, + 0, + "call" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/uminus_float.txt b/test/yarp/snapshots/seattlerb/uminus_float.txt new file mode 100644 index 0000000000..ba5db74284 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/uminus_float.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + FloatNode(1...4)(), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "-@" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/unary_minus.txt b/test/yarp/snapshots/seattlerb/unary_minus.txt new file mode 100644 index 0000000000..abe6695149 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/unary_minus.txt @@ -0,0 +1,16 @@ +ProgramNode(0...2)( + [], + StatementsNode(0...2)( + [CallNode(0...2)( + CallNode(1...2)(nil, nil, (1...2), nil, nil, nil, nil, 0, "a"), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "-@" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/unary_plus.txt b/test/yarp/snapshots/seattlerb/unary_plus.txt new file mode 100644 index 0000000000..635c033e94 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/unary_plus.txt @@ -0,0 +1,16 @@ +ProgramNode(0...2)( + [], + StatementsNode(0...2)( + [CallNode(0...2)( + CallNode(1...2)(nil, nil, (1...2), nil, nil, nil, nil, 0, "a"), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "+@" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/unary_plus_on_literal.txt b/test/yarp/snapshots/seattlerb/unary_plus_on_literal.txt new file mode 100644 index 0000000000..08370e47e9 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/unary_plus_on_literal.txt @@ -0,0 +1,16 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)( + [CallNode(0...3)( + SymbolNode(1...3)((1...2), (2...3), nil, "a"), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "+@" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/unary_tilde.txt b/test/yarp/snapshots/seattlerb/unary_tilde.txt new file mode 100644 index 0000000000..e73fdd577f --- /dev/null +++ b/test/yarp/snapshots/seattlerb/unary_tilde.txt @@ -0,0 +1,16 @@ +ProgramNode(0...2)( + [], + StatementsNode(0...2)( + [CallNode(0...2)( + CallNode(1...2)(nil, nil, (1...2), nil, nil, nil, nil, 0, "a"), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "~" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/utf8_bom.txt b/test/yarp/snapshots/seattlerb/utf8_bom.txt new file mode 100644 index 0000000000..81f1227688 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/utf8_bom.txt @@ -0,0 +1,16 @@ +ProgramNode(26...29)( + [], + StatementsNode(26...29)( + [CallNode(26...29)( + nil, + nil, + (26...27), + nil, + ArgumentsNode(28...29)([IntegerNode(28...29)()]), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/when_splat.txt b/test/yarp/snapshots/seattlerb/when_splat.txt new file mode 100644 index 0000000000..a4caedf301 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/when_splat.txt @@ -0,0 +1,19 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [CaseNode(0...25)( + CallNode(5...6)(nil, nil, (5...6), nil, nil, nil, nil, 0, "a"), + [WhenNode(8...15)( + (8...12), + [SplatNode(13...15)( + (13...14), + CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 0, "b") + )], + nil + )], + nil, + (0...4), + (22...25) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/words_interp.txt b/test/yarp/snapshots/seattlerb/words_interp.txt new file mode 100644 index 0000000000..658901cbda --- /dev/null +++ b/test/yarp/snapshots/seattlerb/words_interp.txt @@ -0,0 +1,19 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [ArrayNode(0...9)( + [InterpolatedStringNode(0...8)( + nil, + [EmbeddedStatementsNode(3...7)( + (3...5), + StatementsNode(5...6)([IntegerNode(5...6)()]), + (6...7) + ), + StringNode(7...8)(nil, (7...8), nil, "b")], + nil + )], + (0...3), + (8...9) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/wtf.txt b/test/yarp/snapshots/seattlerb/wtf.txt new file mode 100644 index 0000000000..20e419bbc4 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/wtf.txt @@ -0,0 +1,48 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [LambdaNode(0...25)( + [:a, :b], + (0...2), + BlockParametersNode(2...12)( + ParametersNode(3...11)( + [RequiredParameterNode(3...4)(:a)], + [OptionalParameterNode(6...11)( + :b, + (6...7), + (7...8), + NilNode(8...11)() + )], + [], + nil, + [], + nil, + nil + ), + [], + (2...3), + (11...12) + ), + StatementsNode(15...23)( + [CallNode(15...23)( + nil, + nil, + (15...16), + nil, + ArgumentsNode(17...23)( + [ArrayNode(17...23)( + [LocalVariableReadNode(18...19)(:a, 0), + LocalVariableReadNode(21...22)(:b, 0)], + (17...18), + (22...23) + )] + ), + nil, + nil, + 0, + "p" + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/wtf_7.txt b/test/yarp/snapshots/seattlerb/wtf_7.txt new file mode 100644 index 0000000000..e74a531178 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/wtf_7.txt @@ -0,0 +1,30 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...11)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...2), + (2...3), + nil, + ArgumentsNode(4...7)( + [ParenthesesNode(4...7)( + StatementsNode(5...6)([IntegerNode(5...6)()]), + (4...5), + (6...7) + )] + ), + nil, + BlockNode(8...11)( + [], + nil, + StatementsNode(9...10)( + [CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "c")] + ), + (8...9), + (10...11) + ), + 0, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/wtf_8.txt b/test/yarp/snapshots/seattlerb/wtf_8.txt new file mode 100644 index 0000000000..211cd9f048 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/wtf_8.txt @@ -0,0 +1,30 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (11...12), + nil, + ArgumentsNode(5...8)( + [ParenthesesNode(5...8)( + StatementsNode(6...7)([IntegerNode(6...7)()]), + (5...6), + (7...8) + )] + ), + nil, + BlockNode(9...12)( + [], + nil, + StatementsNode(10...11)( + [CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 0, "c")] + ), + (9...10), + (11...12) + ), + 0, + "}" + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/yield_arg.txt b/test/yarp/snapshots/seattlerb/yield_arg.txt new file mode 100644 index 0000000000..8fa3535617 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/yield_arg.txt @@ -0,0 +1,11 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [YieldNode(0...8)( + (0...5), + nil, + ArgumentsNode(6...8)([IntegerNode(6...8)()]), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/yield_call_assocs.txt b/test/yarp/snapshots/seattlerb/yield_call_assocs.txt new file mode 100644 index 0000000000..e6a56df147 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/yield_call_assocs.txt @@ -0,0 +1,154 @@ +ProgramNode(0...100)( + [], + StatementsNode(0...100)( + [YieldNode(0...16)( + (0...5), + nil, + ArgumentsNode(6...16)( + [IntegerNode(6...7)(), + KeywordHashNode(9...16)( + [AssocNode(9...16)( + SymbolNode(9...11)((9...10), (10...11), nil, "z"), + IntegerNode(15...16)(), + (12...14) + )] + )] + ), + nil + ), + YieldNode(18...43)( + (18...23), + nil, + ArgumentsNode(24...43)( + [IntegerNode(24...25)(), + KeywordHashNode(27...43)( + [AssocNode(27...34)( + SymbolNode(27...29)((27...28), (28...29), nil, "z"), + IntegerNode(33...34)(), + (30...32) + ), + AssocNode(36...43)( + SymbolNode(36...38)((36...37), (37...38), nil, "w"), + IntegerNode(42...43)(), + (39...41) + )] + )] + ), + nil + ), + YieldNode(45...58)( + (45...50), + nil, + ArgumentsNode(51...58)( + [CallNode(51...58)( + nil, + nil, + (51...52), + nil, + ArgumentsNode(53...58)( + [KeywordHashNode(53...58)( + [AssocNode(53...58)( + SymbolNode(53...55)((53...54), (54...55), nil, "z"), + IntegerNode(57...58)(), + (55...57) + )] + )] + ), + nil, + nil, + 0, + "y" + )] + ), + nil + ), + YieldNode(60...71)( + (60...65), + nil, + ArgumentsNode(66...71)( + [CallNode(66...71)( + nil, + nil, + (66...67), + nil, + ArgumentsNode(68...71)( + [KeywordHashNode(68...71)( + [AssocNode(68...71)( + SymbolNode(68...70)(nil, (68...69), (69...70), "z"), + IntegerNode(70...71)(), + nil + )] + )] + ), + nil, + nil, + 0, + "y" + )] + ), + nil + ), + YieldNode(73...85)( + (73...78), + nil, + ArgumentsNode(79...85)( + [CallNode(79...85)( + nil, + nil, + (79...80), + (80...81), + ArgumentsNode(81...84)( + [KeywordHashNode(81...84)( + [AssocNode(81...84)( + SymbolNode(81...83)(nil, (81...82), (82...83), "z"), + IntegerNode(83...84)(), + nil + )] + )] + ), + (84...85), + nil, + 0, + "y" + )] + ), + nil + ), + YieldNode(87...100)( + (87...92), + nil, + ArgumentsNode(93...100)( + [CallNode(93...100)( + nil, + nil, + (93...94), + (94...95), + ArgumentsNode(95...99)( + [KeywordHashNode(95...99)( + [AssocNode(95...99)( + CallNode(95...96)( + nil, + nil, + (95...96), + nil, + nil, + nil, + nil, + 0, + "z" + ), + IntegerNode(98...99)(), + (96...98) + )] + )] + ), + (99...100), + nil, + 0, + "y" + )] + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/seattlerb/yield_empty_parens.txt b/test/yarp/snapshots/seattlerb/yield_empty_parens.txt new file mode 100644 index 0000000000..14871f50e7 --- /dev/null +++ b/test/yarp/snapshots/seattlerb/yield_empty_parens.txt @@ -0,0 +1,4 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)([YieldNode(0...7)((0...5), (5...6), nil, (6...7))]) +) diff --git a/test/yarp/snapshots/seattlerb/zomg_sometimes_i_hate_this_project.txt b/test/yarp/snapshots/seattlerb/zomg_sometimes_i_hate_this_project.txt new file mode 100644 index 0000000000..ffc7e315da --- /dev/null +++ b/test/yarp/snapshots/seattlerb/zomg_sometimes_i_hate_this_project.txt @@ -0,0 +1,81 @@ +ProgramNode(6...66)( + [], + StatementsNode(6...66)( + [HashNode(6...66)( + (6...7), + [AssocNode(16...41)( + SymbolNode(16...18)(nil, (16...17), (17...18), "a"), + CallNode(19...41)( + nil, + nil, + (19...25), + nil, + nil, + nil, + BlockNode(26...41)( + [], + nil, + StatementsNode(28...39)( + [IfNode(28...39)( + nil, + CallNode(28...29)( + nil, + nil, + (28...29), + nil, + nil, + nil, + nil, + 0, + "b" + ), + StatementsNode(32...35)( + [CallNode(32...35)( + nil, + nil, + (32...33), + (33...34), + nil, + (34...35), + nil, + 0, + "c" + )] + ), + ElseNode(36...39)( + (36...37), + StatementsNode(38...39)( + [CallNode(38...39)( + nil, + nil, + (38...39), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil + ), + nil + )] + ), + (26...27), + (40...41) + ), + 0, + "lambda" + ), + nil + ), + AssocNode(51...57)( + SymbolNode(51...53)(nil, (51...52), (52...53), "e"), + NilNode(54...57)(), + nil + )], + (65...66) + )] + ) +) diff --git a/test/yarp/snapshots/single_quote_heredocs.txt b/test/yarp/snapshots/single_quote_heredocs.txt new file mode 100644 index 0000000000..3e53eb791b --- /dev/null +++ b/test/yarp/snapshots/single_quote_heredocs.txt @@ -0,0 +1,15 @@ +ProgramNode(0...48)( + [], + StatementsNode(0...48)( + [InterpolatedStringNode(0...48)( + (0...8), + [StringNode(9...44)( + nil, + (9...44), + nil, + " cd L:\\Work\\MG3710IQPro\\Develop\n" + )], + (44...48) + )] + ) +) diff --git a/test/yarp/snapshots/strings.txt b/test/yarp/snapshots/strings.txt new file mode 100644 index 0000000000..9b2821a0fd --- /dev/null +++ b/test/yarp/snapshots/strings.txt @@ -0,0 +1,201 @@ +ProgramNode(0...497)( + [], + StatementsNode(0...497)( + [StringNode(0...6)((0...2), (2...5), (5...6), "abc"), + StringNode(8...14)((8...10), (10...13), (13...14), "abc"), + StringNode(16...22)((16...18), (18...21), (21...22), "abc"), + StringNode(24...30)((24...26), (26...29), (29...30), "abc"), + StringNode(32...38)((32...34), (34...37), (37...38), "abc"), + StringNode(40...46)((40...42), (42...45), (45...46), "abc"), + StringNode(48...54)((48...50), (50...53), (53...54), "abc"), + StringNode(56...62)((56...58), (58...61), (61...62), "abc"), + StringNode(64...70)((64...66), (66...69), (69...70), "abc"), + StringNode(72...78)((72...74), (74...77), (77...78), "abc"), + StringNode(80...86)((80...82), (82...85), (85...86), "abc"), + StringNode(88...94)((88...90), (90...93), (93...94), "abc"), + ArrayNode(96...104)([], (96...99), (103...104)), + StringNode(106...112)((106...108), (108...111), (111...112), "abc"), + StringNode(114...120)((114...116), (116...119), (119...120), "abc"), + InterpolatedStringNode(122...130)( + (122...123), + [EmbeddedVariableNode(123...129)( + (123...124), + ClassVariableReadNode(124...129)() + )], + (129...130) + ), + StringNode(132...138)((132...134), (134...137), (137...138), "abc"), + InterpolatedStringNode(140...157)( + (140...142), + [StringNode(142...146)(nil, (142...146), nil, "aaa "), + EmbeddedStatementsNode(146...152)( + (146...148), + StatementsNode(148...151)( + [CallNode(148...151)( + nil, + nil, + (148...151), + nil, + nil, + nil, + nil, + 0, + "bbb" + )] + ), + (151...152) + ), + StringNode(152...156)(nil, (152...156), nil, " ccc")], + (156...157) + ), + StringNode(159...167)((159...161), (161...166), (166...167), "foo[]"), + CallNode(169...183)( + StringNode(169...174)((169...170), (170...173), (173...174), "foo"), + nil, + (175...176), + nil, + ArgumentsNode(178...183)( + [StringNode(178...183)((178...179), (179...182), (182...183), "bar")] + ), + nil, + nil, + 0, + "+" + ), + StringNode(185...192)((185...188), (188...191), (191...192), "abc"), + SymbolNode(194...201)((194...197), (197...200), (200...201), "abc"), + StringNode(203...209)((203...205), (205...208), (208...209), "abc"), + StringNode(211...213)((211...212), (212...212), (212...213), ""), + StringNode(215...220)((215...216), (216...219), (219...220), "abc"), + StringNode(222...229)((222...223), (223...228), (228...229), "\#@---"), + InterpolatedStringNode(231...247)( + (231...232), + [StringNode(232...236)(nil, (232...236), nil, "aaa "), + EmbeddedStatementsNode(236...242)( + (236...238), + StatementsNode(238...241)( + [CallNode(238...241)( + nil, + nil, + (238...241), + nil, + nil, + nil, + nil, + 0, + "bbb" + )] + ), + (241...242) + ), + StringNode(242...246)(nil, (242...246), nil, " ccc")], + (246...247) + ), + StringNode(249...254)((249...250), (250...253), (253...254), "abc"), + ArrayNode(256...265)( + [StringNode(259...260)(nil, (259...260), nil, "a"), + StringNode(261...262)(nil, (261...262), nil, "b"), + StringNode(263...264)(nil, (263...264), nil, "c")], + (256...259), + (264...265) + ), + ArrayNode(267...284)( + [StringNode(270...273)(nil, (270...273), nil, "a[]"), + StringNode(274...279)(nil, (274...279), nil, "b[[]]"), + StringNode(280...283)(nil, (280...283), nil, "c[]")], + (267...270), + (283...284) + ), + ArrayNode(286...304)( + [StringNode(289...297)(nil, (289...297), nil, "foo\\ bar"), + StringNode(298...303)(nil, (298...303), nil, "\\\#{1}")], + (286...289), + (303...304) + ), + ArrayNode(306...322)( + [StringNode(309...317)(nil, (309...317), nil, "foo\\ bar"), + StringNode(318...321)(nil, (318...321), nil, "baz")], + (306...309), + (321...322) + ), + ArrayNode(324...338)( + [StringNode(327...328)(nil, (327...328), nil, "a"), + InterpolatedStringNode(0...335)( + nil, + [StringNode(329...330)(nil, (329...330), nil, "b"), + EmbeddedStatementsNode(330...334)( + (330...332), + StatementsNode(332...333)( + [CallNode(332...333)( + nil, + nil, + (332...333), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + (333...334) + ), + StringNode(334...335)(nil, (334...335), nil, "d")], + nil + ), + StringNode(336...337)(nil, (336...337), nil, "e")], + (324...327), + (337...338) + ), + ArrayNode(340...349)( + [StringNode(343...344)(nil, (343...344), nil, "a"), + StringNode(345...346)(nil, (345...346), nil, "b"), + StringNode(347...348)(nil, (347...348), nil, "c")], + (340...343), + (348...349) + ), + ArrayNode(351...368)( + [StringNode(357...358)(nil, (357...358), nil, "a"), + StringNode(361...362)(nil, (361...362), nil, "b"), + StringNode(365...366)(nil, (365...366), nil, "c")], + (351...354), + (367...368) + ), + StringNode(370...385)( + (370...371), + (371...384), + (384...385), + "' foo ' bar" + ), + StringNode(387...402)( + (387...388), + (388...401), + (401...402), + "\\ foo \\ bar" + ), + InterpolatedStringNode(404...411)( + (404...405), + [EmbeddedVariableNode(405...410)( + (405...406), + GlobalVariableReadNode(406...410)() + )], + (410...411) + ), + InterpolatedStringNode(413...420)( + (413...414), + [EmbeddedVariableNode(414...419)( + (414...415), + InstanceVariableReadNode(415...419)() + )], + (419...420) + ), + StringNode(422...437)((422...423), (423...436), (436...437), "\a # a"), + StringNode(439...452)((439...440), (440...451), (451...452), "\a # a"), + StringNode(454...460)((454...456), (456...459), (459...460), "abc"), + StringNode(462...468)((462...464), (464...467), (467...468), "abc"), + StringNode(470...476)((470...472), (472...475), (475...476), "abc"), + StringNode(478...484)((478...480), (480...483), (483...484), "abc"), + StringNode(486...488)((486...487), (487...488), nil, "a"), + StringNode(490...497)((490...493), (493...496), (496...497), "abc")] + ) +) diff --git a/test/yarp/snapshots/super.txt b/test/yarp/snapshots/super.txt new file mode 100644 index 0000000000..e9d32d14bd --- /dev/null +++ b/test/yarp/snapshots/super.txt @@ -0,0 +1,25 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [ForwardingSuperNode(0...5)(nil), + SuperNode(7...14)((7...12), (12...13), nil, (13...14), nil), + SuperNode(16...24)( + (16...21), + (21...22), + ArgumentsNode(22...23)([IntegerNode(22...23)()]), + (23...24), + nil + ), + SuperNode(26...40)( + (26...31), + (31...32), + ArgumentsNode(32...39)( + [IntegerNode(32...33)(), + IntegerNode(35...36)(), + IntegerNode(38...39)()] + ), + (39...40), + nil + )] + ) +) diff --git a/test/yarp/snapshots/symbols.txt b/test/yarp/snapshots/symbols.txt new file mode 100644 index 0000000000..6e8e1c0bb7 --- /dev/null +++ b/test/yarp/snapshots/symbols.txt @@ -0,0 +1,147 @@ +ProgramNode(0...345)( + [], + StatementsNode(0...345)( + [SymbolNode(0...6)((0...2), (2...5), (5...6), "abc"), + InterpolatedSymbolNode(8...17)( + (8...10), + [EmbeddedStatementsNode(10...16)( + (10...12), + StatementsNode(12...15)( + [CallNode(12...15)( + nil, + nil, + (12...15), + nil, + nil, + nil, + nil, + 0, + "var" + )] + ), + (15...16) + )], + (16...17) + ), + InterpolatedSymbolNode(19...29)( + (19...21), + [StringNode(21...24)(nil, (21...24), nil, "abc"), + EmbeddedStatementsNode(24...28)( + (24...26), + StatementsNode(26...27)([IntegerNode(26...27)()]), + (27...28) + )], + (28...29) + ), + ArrayNode(31...51)( + [SymbolNode(32...35)((32...33), (33...35), nil, "Υ"), + SymbolNode(37...40)((37...38), (38...40), nil, "ά"), + SymbolNode(42...45)((42...43), (43...45), nil, "ŗ"), + SymbolNode(47...50)((47...48), (48...50), nil, "ρ")], + (31...32), + (50...51) + ), + SymbolNode(53...56)((53...54), (54...56), nil, "-@"), + SymbolNode(58...60)((58...59), (59...60), nil, "-"), + SymbolNode(62...64)((62...63), (63...64), nil, "%"), + SymbolNode(66...68)((66...67), (67...68), nil, "|"), + SymbolNode(70...73)((70...71), (71...73), nil, "+@"), + SymbolNode(75...77)((75...76), (76...77), nil, "+"), + SymbolNode(79...81)((79...80), (80...81), nil, "/"), + SymbolNode(83...86)((83...84), (84...86), nil, "**"), + SymbolNode(88...90)((88...89), (89...90), nil, "*"), + SymbolNode(92...95)((92...93), (93...95), nil, "~@"), + ArrayNode(97...113)( + [IntegerNode(98...99)(), + FloatNode(101...104)(), + RationalNode(106...108)(IntegerNode(106...107)()), + ImaginaryNode(110...112)(IntegerNode(110...111)())], + (97...98), + (112...113) + ), + SymbolNode(115...117)((115...116), (116...117), nil, "~"), + SymbolNode(119...121)((119...120), (120...121), nil, "a"), + ArrayNode(123...132)( + [SymbolNode(126...127)(nil, (126...127), nil, "a"), + SymbolNode(128...129)(nil, (128...129), nil, "b"), + SymbolNode(130...131)(nil, (130...131), nil, "c")], + (123...126), + (131...132) + ), + ArrayNode(134...158)( + [SymbolNode(137...138)(nil, (137...138), nil, "a"), + SymbolNode(139...144)(nil, (139...144), nil, "b\#{1}"), + SymbolNode(145...150)(nil, (145...150), nil, "\#{2}c"), + SymbolNode(151...157)(nil, (151...157), nil, "d\#{3}f")], + (134...137), + (157...158) + ), + ArrayNode(160...184)( + [SymbolNode(163...164)(nil, (163...164), nil, "a"), + InterpolatedSymbolNode(165...170)( + nil, + [StringNode(165...166)(nil, (165...166), nil, "b"), + EmbeddedStatementsNode(166...170)( + (166...168), + StatementsNode(168...169)([IntegerNode(168...169)()]), + (169...170) + )], + nil + ), + InterpolatedSymbolNode(171...176)( + nil, + [EmbeddedStatementsNode(171...175)( + (171...173), + StatementsNode(173...174)([IntegerNode(173...174)()]), + (174...175) + ), + StringNode(175...176)(nil, (175...176), nil, "c")], + nil + ), + InterpolatedSymbolNode(177...183)( + nil, + [StringNode(177...178)(nil, (177...178), nil, "d"), + EmbeddedStatementsNode(178...182)( + (178...180), + StatementsNode(180...181)([IntegerNode(180...181)()]), + (181...182) + ), + StringNode(182...183)(nil, (182...183), nil, "f")], + nil + )], + (160...163), + (183...184) + ), + SymbolNode(186...190)((186...187), (187...190), nil, "@@a"), + SymbolNode(192...197)((192...193), (193...197), nil, "👍"), + ArrayNode(199...206)( + [SymbolNode(202...205)(nil, (202...205), nil, "a\\b")], + (199...202), + (205...206) + ), + SymbolNode(208...211)((208...209), (209...211), nil, "$a"), + SymbolNode(213...216)((213...214), (214...216), nil, "@a"), + SymbolNode(218...221)((218...219), (219...221), nil, "do"), + SymbolNode(223...225)((223...224), (224...225), nil, "&"), + SymbolNode(227...229)((227...228), (228...229), nil, "`"), + SymbolNode(231...234)((231...232), (232...234), nil, "!@"), + SymbolNode(236...239)((236...237), (237...239), nil, "!~"), + SymbolNode(241...243)((241...242), (242...243), nil, "!"), + SymbolNode(245...248)((245...246), (246...248), nil, "[]"), + SymbolNode(250...254)((250...251), (251...254), nil, "[]="), + SymbolNode(256...258)((256...257), (257...258), nil, "^"), + SymbolNode(260...263)((260...261), (261...263), nil, "=="), + SymbolNode(265...269)((265...266), (266...269), nil, "==="), + SymbolNode(271...274)((271...272), (272...274), nil, "=~"), + SymbolNode(276...279)((276...277), (277...279), nil, ">="), + SymbolNode(281...284)((281...282), (282...284), nil, ">>"), + SymbolNode(286...288)((286...287), (287...288), nil, ">"), + SymbolNode(290...294)((290...291), (291...294), nil, "<=>"), + SymbolNode(296...299)((296...297), (297...299), nil, "<="), + SymbolNode(301...304)((301...302), (302...304), nil, "<<"), + SymbolNode(306...308)((306...307), (307...308), nil, "<"), + SymbolNode(310...319)((310...311), (311...319), nil, "__LINE__"), + SymbolNode(321...330)((321...322), (322...330), nil, "__FILE__"), + SymbolNode(332...345)((332...333), (333...345), nil, "__ENCODING__")] + ) +) diff --git a/test/yarp/snapshots/ternary_operator.txt b/test/yarp/snapshots/ternary_operator.txt new file mode 100644 index 0000000000..11d6495783 --- /dev/null +++ b/test/yarp/snapshots/ternary_operator.txt @@ -0,0 +1,134 @@ +ProgramNode(0...117)( + [], + StatementsNode(0...117)( + [IfNode(0...9)( + nil, + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + StatementsNode(4...5)( + [CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "b")] + ), + ElseNode(6...9)( + (6...7), + StatementsNode(8...9)( + [CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 0, "c")] + ), + nil + ), + nil + ), + IfNode(11...38)( + nil, + CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 0, "a"), + StatementsNode(15...25)( + [DefinedNode(15...25)( + nil, + CallNode(24...25)(nil, nil, (24...25), nil, nil, nil, nil, 0, "b"), + nil, + (15...23) + )] + ), + ElseNode(26...38)( + (26...27), + StatementsNode(28...38)( + [DefinedNode(28...38)( + nil, + CallNode(37...38)( + nil, + nil, + (37...38), + nil, + nil, + nil, + nil, + 0, + "c" + ), + nil, + (28...36) + )] + ), + nil + ), + nil + ), + IfNode(40...55)( + nil, + CallNode(40...46)(nil, nil, (40...46), nil, nil, nil, nil, 0, "empty?"), + StatementsNode(47...51)([TrueNode(47...51)()]), + ElseNode(51...55)( + (51...52), + StatementsNode(52...55)([NilNode(52...55)()]), + nil + ), + nil + ), + IfNode(57...73)( + nil, + CallNode(57...63)(nil, nil, (57...63), nil, nil, nil, nil, 0, "empty?"), + StatementsNode(64...69)([FalseNode(64...69)()]), + ElseNode(69...73)( + (69...70), + StatementsNode(70...73)([NilNode(70...73)()]), + nil + ), + nil + ), + IfNode(75...89)( + nil, + CallNode(75...81)(nil, nil, (75...81), nil, nil, nil, nil, 0, "empty?"), + StatementsNode(82...85)([NilNode(82...85)()]), + ElseNode(85...89)( + (85...86), + StatementsNode(86...89)([NilNode(86...89)()]), + nil + ), + nil + ), + IfNode(91...101)( + nil, + CallNode(91...93)(nil, nil, (91...93), nil, nil, nil, nil, 0, "a?"), + StatementsNode(94...97)([NilNode(94...97)()]), + ElseNode(97...101)( + (97...98), + StatementsNode(98...101)([NilNode(98...101)()]), + nil + ), + nil + ), + IfNode(103...117)( + nil, + CallNode(103...104)(nil, nil, (103...104), nil, nil, nil, nil, 0, "a"), + StatementsNode(106...110)( + [CallNode(106...110)( + nil, + nil, + (106...110), + nil, + nil, + nil, + nil, + 0, + "var1" + )] + ), + ElseNode(111...117)( + (111...112), + StatementsNode(113...117)( + [CallNode(113...117)( + nil, + nil, + (113...117), + nil, + nil, + nil, + nil, + 0, + "var2" + )] + ), + nil + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/tilde_heredocs.txt b/test/yarp/snapshots/tilde_heredocs.txt new file mode 100644 index 0000000000..fc51879e4f --- /dev/null +++ b/test/yarp/snapshots/tilde_heredocs.txt @@ -0,0 +1,136 @@ +ProgramNode(0...387)( + [], + StatementsNode(0...387)( + [InterpolatedStringNode(0...15)( + (0...6), + [StringNode(7...11)(nil, (7...11), nil, "a\n")], + (11...15) + ), + InterpolatedStringNode(16...38)( + (16...22), + [StringNode(23...34)(nil, (23...34), nil, "\ta\n" + "b\n" + "\t\tc\n")], + (34...38) + ), + InterpolatedStringNode(39...59)( + (39...45), + [StringNode(46...48)(nil, (46...48), nil, ""), + EmbeddedStatementsNode(48...52)( + (48...50), + StatementsNode(50...51)([IntegerNode(50...51)()]), + (51...52) + ), + StringNode(52...55)(nil, (52...55), nil, " a\n")], + (55...59) + ), + InterpolatedStringNode(60...80)( + (60...66), + [StringNode(67...71)(nil, (67...71), nil, "a "), + EmbeddedStatementsNode(71...75)( + (71...73), + StatementsNode(73...74)([IntegerNode(73...74)()]), + (74...75) + ), + StringNode(75...76)(nil, (75...76), nil, "\n")], + (76...80) + ), + InterpolatedStringNode(81...102)( + (81...87), + [StringNode(88...93)(nil, (88...93), nil, " a\n"), + EmbeddedStatementsNode(93...97)( + (93...95), + StatementsNode(95...96)([IntegerNode(95...96)()]), + (96...97) + ), + StringNode(97...98)(nil, (97...98), nil, "\n")], + (98...102) + ), + InterpolatedStringNode(103...125)( + (103...109), + [StringNode(110...116)(nil, (110...116), nil, "a\n"), + EmbeddedStatementsNode(116...120)( + (116...118), + StatementsNode(118...119)([IntegerNode(118...119)()]), + (119...120) + ), + StringNode(120...121)(nil, (120...121), nil, "\n")], + (121...125) + ), + InterpolatedStringNode(126...145)( + (126...132), + [StringNode(133...141)(nil, (133...141), nil, "a\n" + "b\n")], + (141...145) + ), + InterpolatedStringNode(146...166)( + (146...152), + [StringNode(153...162)(nil, (153...162), nil, "a\n" + " b\n")], + (162...166) + ), + InterpolatedStringNode(167...187)( + (167...173), + [StringNode(174...183)(nil, (174...183), nil, "\ta\n" + "b\n")], + (183...187) + ), + InterpolatedStringNode(188...210)( + (188...196), + [StringNode(197...206)(nil, (197...206), nil, "a \#{1}\n")], + (206...210) + ), + InterpolatedStringNode(211...229)( + (211...217), + [StringNode(218...225)(nil, (218...225), nil, "a\n" + " b\n")], + (225...229) + ), + InterpolatedStringNode(230...248)( + (230...236), + [StringNode(237...244)(nil, (237...244), nil, " a\n" + "b\n")], + (244...248) + ), + InterpolatedStringNode(249...275)( + (249...255), + [StringNode(256...271)(nil, (256...271), nil, "a\n" + "b\n")], + (271...275) + ), + InterpolatedStringNode(276...296)( + (276...282), + [StringNode(283...292)(nil, (283...292), nil, "a\n" + "\n" + "b\n")], + (292...296) + ), + InterpolatedStringNode(297...317)( + (297...303), + [StringNode(304...313)(nil, (304...313), nil, "a\n" + "\n" + "b\n")], + (313...317) + ), + InterpolatedStringNode(318...340)( + (318...324), + [StringNode(325...336)( + nil, + (325...336), + nil, + "a\n" + "\n" + "\n" + "\n" + "b\n" + )], + (336...340) + ), + InterpolatedStringNode(341...365)( + (341...347), + [StringNode(348...351)(nil, (348...351), nil, "\n"), + EmbeddedStatementsNode(351...355)( + (351...353), + StatementsNode(353...354)([IntegerNode(353...354)()]), + (354...355) + ), + StringNode(355...357)(nil, (355...357), nil, "a\n")], + (357...365) + ), + InterpolatedStringNode(366...387)( + (366...372), + [StringNode(373...375)(nil, (373...375), nil, ""), + EmbeddedStatementsNode(375...379)( + (375...377), + StatementsNode(377...378)([IntegerNode(377...378)()]), + (378...379) + ), + StringNode(379...383)(nil, (379...383), nil, "\n" + "\tb\n")], + (383...387) + )] + ) +) diff --git a/test/yarp/snapshots/undef.txt b/test/yarp/snapshots/undef.txt new file mode 100644 index 0000000000..d3173a3f1c --- /dev/null +++ b/test/yarp/snapshots/undef.txt @@ -0,0 +1,50 @@ +ProgramNode(0...116)( + [], + StatementsNode(0...116)( + [UndefNode(0...7)([SymbolNode(6...7)(nil, (6...7), nil, "a")], (0...5)), + UndefNode(9...19)( + [SymbolNode(15...16)(nil, (15...16), nil, "a"), + SymbolNode(18...19)(nil, (18...19), nil, "b")], + (9...14) + ), + UndefNode(21...29)( + [SymbolNode(27...29)(nil, (27...29), nil, "if")], + (21...26) + ), + UndefNode(31...40)( + [SymbolNode(37...40)(nil, (37...40), nil, "<=>")], + (31...36) + ), + UndefNode(42...50)( + [SymbolNode(48...50)((48...49), (49...50), nil, "a")], + (42...47) + ), + UndefNode(52...68)( + [SymbolNode(58...60)((58...59), (59...60), nil, "a"), + SymbolNode(62...64)((62...63), (63...64), nil, "b"), + SymbolNode(66...68)((66...67), (67...68), nil, "c")], + (52...57) + ), + UndefNode(70...82)( + [SymbolNode(76...82)((76...78), (78...81), (81...82), "abc")], + (70...75) + ), + UndefNode(84...100)( + [InterpolatedSymbolNode(90...100)( + (90...92), + [StringNode(92...95)(nil, (92...95), nil, "abc"), + EmbeddedStatementsNode(95...99)( + (95...97), + StatementsNode(97...98)([IntegerNode(97...98)()]), + (98...99) + )], + (99...100) + )], + (84...89) + ), + UndefNode(102...116)( + [SymbolNode(108...116)(nil, (108...116), nil, "Constant")], + (102...107) + )] + ) +) diff --git a/test/yarp/snapshots/unescaping.txt b/test/yarp/snapshots/unescaping.txt new file mode 100644 index 0000000000..e63e8eb072 --- /dev/null +++ b/test/yarp/snapshots/unescaping.txt @@ -0,0 +1,23 @@ +ProgramNode(0...55)( + [], + StatementsNode(0...55)( + [ArrayNode(0...10)( + [StringNode(1...9)((1...2), (2...8), (8...9), "\u0003{1}")], + (0...1), + (9...10) + ), + RegularExpressionNode(12...20)( + (12...13), + (13...19), + (19...20), + "\u0003{1}", + 0 + ), + StringNode(22...30)((22...23), (23...29), (29...30), "\u0003{1}"), + InterpolatedStringNode(32...55)( + (32...39), + [StringNode(40...50)(nil, (40...50), nil, "\u0003{1}\n")], + (50...55) + )] + ) +) diff --git a/test/yarp/snapshots/unless.txt b/test/yarp/snapshots/unless.txt new file mode 100644 index 0000000000..66d61a7307 --- /dev/null +++ b/test/yarp/snapshots/unless.txt @@ -0,0 +1,83 @@ +ProgramNode(0...141)( + [], + StatementsNode(0...141)( + [UnlessNode(0...19)( + (0...6), + TrueNode(7...11)(), + StatementsNode(13...14)([IntegerNode(13...14)()]), + nil, + (16...19) + ), + UnlessNode(21...45)( + (21...27), + TrueNode(28...32)(), + StatementsNode(33...34)([IntegerNode(33...34)()]), + ElseNode(35...45)( + (35...39), + StatementsNode(40...41)([IntegerNode(40...41)()]), + (42...45) + ), + (42...45) + ), + UnlessNode(47...60)( + (49...55), + TrueNode(56...60)(), + StatementsNode(47...48)([IntegerNode(47...48)()]), + nil, + nil + ), + UnlessNode(62...79)( + (68...74), + TrueNode(75...79)(), + StatementsNode(62...67)([BreakNode(62...67)(nil, (62...67))]), + nil, + nil + ), + UnlessNode(81...97)( + (86...92), + TrueNode(93...97)(), + StatementsNode(81...85)([NextNode(81...85)(nil, (81...85))]), + nil, + nil + ), + UnlessNode(99...117)( + (106...112), + TrueNode(113...117)(), + StatementsNode(99...105)([ReturnNode(99...105)((99...105), nil)]), + nil, + nil + ), + UnlessNode(119...141)( + (130...136), + CallNode(137...141)( + nil, + nil, + (137...141), + nil, + nil, + nil, + nil, + 0, + "bar?" + ), + StatementsNode(119...129)( + [CallNode(119...129)( + nil, + nil, + (119...122), + nil, + ArgumentsNode(123...129)( + [SymbolNode(123...125)((123...124), (124...125), nil, "a"), + SymbolNode(127...129)((127...128), (128...129), nil, "b")] + ), + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/alias.txt b/test/yarp/snapshots/unparser/corpus/literal/alias.txt new file mode 100644 index 0000000000..cf6c04cd2e --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/alias.txt @@ -0,0 +1,15 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [AliasNode(0...15)( + GlobalVariableReadNode(6...10)(), + GlobalVariableReadNode(11...15)(), + (0...5) + ), + AliasNode(16...31)( + SymbolNode(22...26)((22...23), (23...26), nil, "foo"), + SymbolNode(27...31)((27...28), (28...31), nil, "bar"), + (16...21) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/assignment.txt b/test/yarp/snapshots/unparser/corpus/literal/assignment.txt new file mode 100644 index 0000000000..1e06024e29 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/assignment.txt @@ -0,0 +1,718 @@ +ProgramNode(0...719)( + [:a, :b, :foo, :c, :x], + StatementsNode(0...719)( + [GlobalVariableWriteNode(0...6)((0...2), (3...4), IntegerNode(5...6)()), + MultiWriteNode(8...24)( + [GlobalVariableWriteNode(8...10)((8...10), nil, nil), + GlobalVariableWriteNode(12...14)((12...14), nil, nil)], + (16...17), + ArrayNode(18...24)( + [IntegerNode(19...20)(), IntegerNode(22...23)()], + (18...19), + (23...24) + ), + (7...8), + (14...15) + ), + MultiWriteNode(27...38)( + [MultiWriteNode(27...29)( + [LocalVariableWriteNode(27...28)(:a, 0, nil, (27...28), nil), + SplatNode(28...29)((28...29), nil)], + nil, + nil, + (26...27), + (29...30) + ), + LocalVariableWriteNode(32...33)(:b, 0, nil, (32...33), nil)], + (35...36), + IntegerNode(37...38)(), + (25...26), + (33...34) + ), + MultiWriteNode(40...48)( + [SplatNode(40...42)( + (40...41), + LocalVariableWriteNode(41...42)(:a, 0, nil, (41...42), nil) + )], + (44...45), + ArrayNode(46...48)([], (46...47), (47...48)), + (39...40), + (42...43) + ), + MultiWriteNode(50...64)( + [SplatNode(50...54)( + (50...51), + LocalVariableWriteNode(51...54)(:foo, 0, nil, (51...54), nil) + )], + (56...57), + ArrayNode(58...64)( + [IntegerNode(59...60)(), IntegerNode(62...63)()], + (58...59), + (63...64) + ), + (49...50), + (54...55) + ), + MultiWriteNode(66...84)( + [ClassVariableWriteNode(66...69)((66...69), nil, nil), + ClassVariableWriteNode(71...74)((71...74), nil, nil)], + (76...77), + ArrayNode(78...84)( + [IntegerNode(79...80)(), IntegerNode(82...83)()], + (78...79), + (83...84) + ), + (65...66), + (74...75) + ), + MultiWriteNode(86...102)( + [InstanceVariableWriteNode(86...88)((86...88), nil, nil), + InstanceVariableWriteNode(90...92)((90...92), nil, nil)], + (94...95), + ArrayNode(96...102)( + [IntegerNode(97...98)(), IntegerNode(100...101)()], + (96...97), + (101...102) + ), + (85...86), + (92...93) + ), + MultiWriteNode(104...128)( + [LocalVariableWriteNode(104...105)(:a, 0, nil, (104...105), nil), + MultiWriteNode(108...113)( + [LocalVariableWriteNode(108...109)(:b, 0, nil, (108...109), nil), + LocalVariableWriteNode(111...112)(:c, 0, nil, (111...112), nil)], + nil, + nil, + (107...108), + (112...113) + )], + (115...116), + ArrayNode(117...128)( + [IntegerNode(118...119)(), + ArrayNode(121...127)( + [IntegerNode(122...123)(), IntegerNode(125...126)()], + (121...122), + (126...127) + )], + (117...118), + (127...128) + ), + (103...104), + (113...114) + ), + MultiWriteNode(130...144)( + [LocalVariableWriteNode(130...131)(:a, 0, nil, (130...131), nil), + SplatNode(133...134)((133...134), nil)], + (136...137), + ArrayNode(138...144)( + [IntegerNode(139...140)(), IntegerNode(142...143)()], + (138...139), + (143...144) + ), + (129...130), + (134...135) + ), + MultiWriteNode(146...163)( + [LocalVariableWriteNode(146...147)(:a, 0, nil, (146...147), nil), + SplatNode(149...153)( + (149...150), + LocalVariableWriteNode(150...153)(:foo, 0, nil, (150...153), nil) + )], + (155...156), + ArrayNode(157...163)( + [IntegerNode(158...159)(), IntegerNode(161...162)()], + (157...158), + (162...163) + ), + (145...146), + (153...154) + ), + MultiWriteNode(165...179)( + [LocalVariableWriteNode(165...166)(:a, 0, nil, (165...166), nil), + LocalVariableWriteNode(168...169)(:b, 0, nil, (168...169), nil)], + (171...172), + ArrayNode(173...179)( + [IntegerNode(174...175)(), IntegerNode(177...178)()], + (173...174), + (178...179) + ), + (164...165), + (169...170) + ), + MultiWriteNode(181...192)( + [LocalVariableWriteNode(181...182)(:a, 0, nil, (181...182), nil), + LocalVariableWriteNode(184...185)(:b, 0, nil, (184...185), nil)], + (187...188), + LocalVariableReadNode(189...192)(:foo, 0), + (180...181), + (185...186) + ), + MultiWriteNode(194...203)( + [LocalVariableWriteNode(194...195)(:a, 0, nil, (194...195), nil), + SplatNode(195...196)((195...196), nil)], + (198...199), + LocalVariableReadNode(200...203)(:foo, 0), + (193...194), + (196...197) + ), + MultiWriteNode(205...227)( + [CallNode(205...210)( + LocalVariableReadNode(205...206)(:a, 0), + (206...207), + (207...210), + nil, + nil, + nil, + nil, + 0, + "foo=" + ), + CallNode(212...217)( + LocalVariableReadNode(212...213)(:a, 0), + (213...214), + (214...217), + nil, + nil, + nil, + nil, + 0, + "bar=" + )], + (219...220), + ArrayNode(221...227)( + [IntegerNode(222...223)(), IntegerNode(225...226)()], + (221...222), + (226...227) + ), + (204...205), + (217...218) + ), + MultiWriteNode(229...252)( + [CallNode(229...236)( + LocalVariableReadNode(229...230)(:a, 0), + nil, + (230...236), + (230...231), + ArgumentsNode(231...235)( + [SplatNode(231...235)( + (231...232), + LocalVariableReadNode(232...235)(:foo, 0) + )] + ), + (235...236), + nil, + 0, + "[]=" + ), + CallNode(238...242)( + LocalVariableReadNode(238...239)(:a, 0), + nil, + (239...242), + (239...240), + ArgumentsNode(240...241)([IntegerNode(240...241)()]), + (241...242), + nil, + 0, + "[]=" + )], + (244...245), + ArrayNode(246...252)( + [IntegerNode(247...248)(), IntegerNode(250...251)()], + (246...247), + (251...252) + ), + (228...229), + (242...243) + ), + MultiWriteNode(254...274)( + [CallNode(254...258)( + LocalVariableReadNode(254...255)(:a, 0), + nil, + (255...258), + (255...256), + ArgumentsNode(256...257)([IntegerNode(256...257)()]), + (257...258), + nil, + 0, + "[]=" + ), + CallNode(260...264)( + LocalVariableReadNode(260...261)(:a, 0), + nil, + (261...264), + (261...262), + ArgumentsNode(262...263)([IntegerNode(262...263)()]), + (263...264), + nil, + 0, + "[]=" + )], + (266...267), + ArrayNode(268...274)( + [IntegerNode(269...270)(), IntegerNode(272...273)()], + (268...269), + (273...274) + ), + (253...254), + (264...265) + ), + MultiWriteNode(276...287)( + [SplatNode(276...282)( + (276...277), + CallNode(277...282)( + LocalVariableReadNode(277...278)(:c, 0), + (278...279), + (279...282), + nil, + nil, + nil, + nil, + 0, + "foo=" + ) + )], + (284...285), + IntegerNode(286...287)(), + (275...276), + (282...283) + ), + ConstantPathWriteNode(288...301)( + ConstantPathNode(288...293)( + nil, + ConstantReadNode(290...293)(), + (288...290) + ), + (294...295), + ConstantPathNode(296...301)( + nil, + ConstantReadNode(298...301)(), + (296...298) + ) + ), + ClassVariableWriteNode(302...309)( + (302...305), + IntegerNode(308...309)(), + (306...307) + ), + InstanceVariableWriteNode(310...316)( + (310...312), + IntegerNode(315...316)(), + (313...314) + ), + ConstantPathWriteNode(317...326)( + ConstantReadNode(317...322)(), + (323...324), + IntegerNode(325...326)() + ), + ConstantPathWriteNode(327...350)( + ConstantPathNode(327...346)( + ConstantPathNode(327...339)( + ConstantReadNode(327...331)(), + ConstantReadNode(333...339)(), + (331...333) + ), + ConstantReadNode(341...346)(), + (339...341) + ), + (347...348), + IntegerNode(349...350)() + ), + LocalVariableWriteNode(351...367)( + :a, + 0, + ParenthesesNode(355...367)( + StatementsNode(357...366)( + [MultiWriteNode(357...366)( + [LocalVariableWriteNode(357...358)(:b, 0, nil, (357...358), nil), + LocalVariableWriteNode(360...361)( + :c, + 0, + nil, + (360...361), + nil + )], + (363...364), + IntegerNode(365...366)(), + (356...357), + (361...362) + )] + ), + (355...356), + (366...367) + ), + (351...352), + (353...354) + ), + LocalVariableWriteNode(368...373)( + :a, + 0, + IntegerNode(372...373)(), + (368...369), + (370...371) + ), + LocalVariableWriteNode(374...385)( + :foo, + 0, + CallNode(380...385)( + nil, + nil, + (380...383), + (383...384), + nil, + (384...385), + nil, + 0, + "foo" + ), + (374...377), + (378...379) + ), + CallNode(386...395)( + LocalVariableReadNode(386...389)(:foo, 0), + (389...390), + (390...393), + (393...394), + nil, + (394...395), + nil, + 0, + "[]=" + ), + CallNode(396...409)( + LocalVariableReadNode(396...399)(:foo, 0), + (399...400), + (400...403), + (403...404), + ArgumentsNode(404...408)( + [IntegerNode(404...405)(), IntegerNode(407...408)()] + ), + (408...409), + nil, + 0, + "[]=" + ), + CallNode(410...421)( + LocalVariableReadNode(410...413)(:foo, 0), + (413...414), + (414...417), + nil, + ArgumentsNode(417...421)([TrueNode(417...421)()]), + nil, + nil, + 0, + "[]=" + ), + CallNode(422...441)( + LocalVariableReadNode(422...425)(:foo, 0), + nil, + (425...433), + (425...426), + ArgumentsNode(426...441)( + [SplatNode(426...432)( + (426...427), + CallNode(427...432)( + nil, + nil, + (427...432), + nil, + nil, + nil, + nil, + 0, + "index" + ) + ), + CallNode(436...441)( + nil, + nil, + (436...441), + nil, + nil, + nil, + nil, + 0, + "value" + )] + ), + (432...433), + nil, + 0, + "[]=" + ), + CallNode(442...459)( + LocalVariableReadNode(442...445)(:foo, 0), + nil, + (445...451), + (445...446), + ArgumentsNode(446...459)( + [RangeNode(446...450)( + IntegerNode(446...447)(), + IntegerNode(449...450)(), + (447...449), + 0 + ), + CallNode(454...459)( + nil, + nil, + (454...459), + nil, + nil, + nil, + nil, + 0, + "value" + )] + ), + (450...451), + nil, + 0, + "[]=" + ), + CallNode(460...469)( + LocalVariableReadNode(460...463)(:foo, 0), + nil, + (463...465), + (463...464), + ArgumentsNode(468...469)([IntegerNode(468...469)()]), + (464...465), + nil, + 0, + "[]=" + ), + CallNode(470...487)( + LocalVariableReadNode(470...473)(:foo, 0), + nil, + (473...479), + (473...474), + ArgumentsNode(474...487)( + [LocalVariableReadNode(474...475)(:a, 0), + LocalVariableReadNode(477...478)(:b, 0), + CallNode(482...487)( + nil, + nil, + (482...487), + nil, + nil, + nil, + nil, + 0, + "value" + )] + ), + (478...479), + nil, + 0, + "[]=" + ), + CallNode(488...506)( + LocalVariableReadNode(488...491)(:foo, 0), + nil, + (491...498), + (491...492), + ArgumentsNode(492...506)( + [CallNode(492...497)( + nil, + nil, + (492...497), + nil, + nil, + nil, + nil, + 0, + "index" + ), + CallNode(501...506)( + nil, + nil, + (501...506), + nil, + nil, + nil, + nil, + 0, + "value" + )] + ), + (497...498), + nil, + 0, + "[]=" + ), + LocalVariableWriteNode(507...514)( + :x, + 0, + StringNode(511...514)((511...513), (513...513), (513...514), ""), + (507...508), + (509...510) + ), + CallNode(515...522)( + LocalVariableReadNode(515...516)(:x, 0), + (516...517), + (517...518), + nil, + ArgumentsNode(519...522)( + [StringNode(519...522)((519...521), (521...521), (521...522), "")] + ), + nil, + nil, + 0, + "x=" + ), + CallNode(523...535)( + LocalVariableReadNode(523...524)(:x, 0), + nil, + (524...529), + (524...525), + ArgumentsNode(525...535)( + [StringNode(525...528)((525...527), (527...527), (527...528), ""), + CallNode(532...535)( + nil, + nil, + (532...535), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (528...529), + nil, + 0, + "[]=" + ), + CallOperatorOrWriteNode(536...550)( + CallNode(536...542)( + LocalVariableReadNode(536...537)(:a, 0), + nil, + (537...542), + (537...538), + ArgumentsNode(538...541)( + [StringNode(538...541)((538...540), (540...540), (540...541), "")] + ), + (541...542), + nil, + 0, + "[]=" + ), + CallNode(547...550)( + nil, + nil, + (547...550), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (543...546) + ), + InstanceVariableOperatorOrWriteNode(551...561)( + (551...553), + (554...557), + StringNode(558...561)((558...560), (560...560), (560...561), "") + ), + LocalVariableWriteNode(562...591)( + :x, + 0, + InterpolatedStringNode(566...591)( + (566...576), + [StringNode(577...579)(nil, (577...579), nil, " "), + EmbeddedStatementsNode(579...582)((579...581), nil, (581...582)), + StringNode(582...583)(nil, (582...583), nil, "\n")], + (583...591) + ), + (562...563), + (564...565) + ), + CallNode(591...620)( + LocalVariableReadNode(591...592)(:x, 0), + (592...593), + (593...594), + nil, + ArgumentsNode(595...620)( + [InterpolatedStringNode(595...620)( + (595...605), + [StringNode(606...608)(nil, (606...608), nil, " "), + EmbeddedStatementsNode(608...611)((608...610), nil, (610...611)), + StringNode(611...612)(nil, (611...612), nil, "\n")], + (612...620) + )] + ), + nil, + nil, + 0, + "x=" + ), + CallNode(620...651)( + LocalVariableReadNode(620...621)(:x, 0), + nil, + (621...623), + (621...622), + ArgumentsNode(626...651)( + [InterpolatedStringNode(626...651)( + (626...636), + [StringNode(637...639)(nil, (637...639), nil, " "), + EmbeddedStatementsNode(639...642)((639...641), nil, (641...642)), + StringNode(642...643)(nil, (642...643), nil, "\n")], + (643...651) + )] + ), + (622...623), + nil, + 0, + "[]=" + ), + CallOperatorOrWriteNode(651...672)( + CallNode(651...664)( + LocalVariableReadNode(651...652)(:a, 0), + nil, + (652...664), + (652...653), + ArgumentsNode(653...687)( + [InterpolatedStringNode(653...687)( + (653...663), + [StringNode(673...675)(nil, (673...675), nil, " "), + EmbeddedStatementsNode(675...678)( + (675...677), + nil, + (677...678) + ), + StringNode(678...679)(nil, (678...679), nil, "\n")], + (679...687) + )] + ), + (663...664), + nil, + 0, + "[]=" + ), + CallNode(669...672)( + nil, + nil, + (669...672), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (665...668) + ), + InstanceVariableOperatorOrWriteNode(687...719)( + (687...689), + (690...693), + InterpolatedStringNode(694...719)( + (694...704), + [StringNode(705...707)(nil, (705...707), nil, " "), + EmbeddedStatementsNode(707...710)((707...709), nil, (709...710)), + StringNode(710...711)(nil, (710...711), nil, "\n")], + (711...719) + ) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/block.txt b/test/yarp/snapshots/unparser/corpus/literal/block.txt new file mode 100644 index 0000000000..7d4bd2c4e6 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/block.txt @@ -0,0 +1,1286 @@ +ProgramNode(0...737)( + [], + StatementsNode(0...737)( + [CallNode(0...7)( + nil, + nil, + (0...3), + nil, + nil, + nil, + BlockNode(4...7)([], nil, nil, (4...5), (6...7)), + 0, + "foo" + ), + CallNode(8...19)( + nil, + nil, + (8...11), + nil, + nil, + nil, + BlockNode(12...19)( + [:a], + BlockParametersNode(14...17)( + ParametersNode(15...16)( + [RequiredParameterNode(15...16)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (14...15), + (16...17) + ), + nil, + (12...13), + (18...19) + ), + 0, + "foo" + ), + CallNode(20...32)( + nil, + nil, + (20...23), + nil, + nil, + nil, + BlockNode(24...32)( + [:a], + BlockParametersNode(26...30)( + ParametersNode(27...29)( + [RequiredParameterNode(27...28)(:a)], + [], + [], + RestParameterNode(28...29)((28...29), nil), + [], + nil, + nil + ), + [], + (26...27), + (29...30) + ), + nil, + (24...25), + (31...32) + ), + 0, + "foo" + ), + CallNode(33...48)( + nil, + nil, + (33...36), + nil, + nil, + nil, + BlockNode(37...48)( + [:a, :x], + BlockParametersNode(39...46)( + ParametersNode(40...42)( + [RequiredParameterNode(40...41)(:a)], + [], + [], + RestParameterNode(41...42)((41...42), nil), + [], + nil, + nil + ), + [(44...45)], + (39...40), + (45...46) + ), + nil, + (37...38), + (47...48) + ), + 0, + "foo" + ), + CallNode(49...63)( + nil, + nil, + (49...52), + nil, + nil, + nil, + BlockNode(53...63)( + [:a, :b], + BlockParametersNode(55...61)( + ParametersNode(56...60)( + [RequiredParameterNode(56...57)(:a), + RequiredParameterNode(59...60)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (55...56), + (60...61) + ), + nil, + (53...54), + (62...63) + ), + 0, + "foo" + ), + CallNode(64...80)( + nil, + nil, + (64...67), + (67...68), + ArgumentsNode(68...69)([IntegerNode(68...69)()]), + (69...70), + BlockNode(71...80)( + [], + nil, + StatementsNode(75...78)([NilNode(75...78)()]), + (71...72), + (79...80) + ), + 0, + "foo" + ), + CallNode(81...102)( + nil, + nil, + (81...84), + nil, + nil, + nil, + BlockNode(85...102)( + [:a, :b], + BlockParametersNode(87...94)( + ParametersNode(88...93)( + [RequiredParameterNode(88...89)(:a)], + [], + [], + RestParameterNode(91...93)((91...92), (92...93)), + [], + nil, + nil + ), + [], + (87...88), + (93...94) + ), + StatementsNode(97...100)([NilNode(97...100)()]), + (85...86), + (101...102) + ), + 0, + "foo" + ), + CallNode(103...123)( + nil, + nil, + (103...106), + nil, + nil, + nil, + BlockNode(107...123)( + [:a, :*], + BlockParametersNode(109...115)( + ParametersNode(110...114)( + [RequiredParameterNode(110...111)(:a)], + [], + [], + RestParameterNode(113...114)((113...114), nil), + [], + nil, + nil + ), + [], + (109...110), + (114...115) + ), + StatementsNode(118...121)([NilNode(118...121)()]), + (107...108), + (122...123) + ), + 0, + "foo" + ), + CallNode(124...137)( + nil, + nil, + (124...127), + nil, + nil, + nil, + BlockNode(128...137)( + [], + nil, + StatementsNode(132...135)( + [CallNode(132...135)( + nil, + nil, + (132...135), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (128...129), + (136...137) + ), + 0, + "foo" + ), + CallNode(138...165)( + CallNode(138...141)( + nil, + nil, + (138...141), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (141...142), + (142...145), + nil, + nil, + nil, + BlockNode(146...165)( + [:a, :b, :c], + BlockParametersNode(148...159)( + ParametersNode(149...158)( + [RequiredDestructuredParameterNode(149...155)( + [RequiredParameterNode(150...151)(:a), + RequiredParameterNode(153...154)(:b)], + (149...150), + (154...155) + ), + RequiredParameterNode(157...158)(:c)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (148...149), + (158...159) + ), + StatementsNode(162...163)( + [CallNode(162...163)( + nil, + nil, + (162...163), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (146...147), + (164...165) + ), + 0, + "bar" + ), + CallNode(166...185)( + CallNode(166...169)( + nil, + nil, + (166...169), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (169...170), + (170...173), + nil, + nil, + nil, + BlockNode(174...185)( + [:a, :b], + BlockParametersNode(176...183)( + ParametersNode(177...179)( + [], + [], + [], + RestParameterNode(177...179)((177...178), (178...179)), + [], + nil, + nil + ), + [(181...182)], + (176...177), + (182...183) + ), + nil, + (174...175), + (184...185) + ), + 0, + "bar" + ), + CallNode(186...204)( + CallNode(186...189)( + nil, + nil, + (186...189), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (189...190), + (190...193), + nil, + nil, + nil, + BlockNode(194...204)( + [:a, :b], + BlockParametersNode(196...202)( + ParametersNode(197...198)( + [RequiredParameterNode(197...198)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [(200...201)], + (196...197), + (201...202) + ), + nil, + (194...195), + (203...204) + ), + 0, + "bar" + ), + CallNode(205...225)( + CallNode(205...208)( + nil, + nil, + (205...208), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (208...209), + (209...212), + nil, + nil, + nil, + BlockNode(213...225)( + [:a, :b], + BlockParametersNode(215...223)( + nil, + [(218...219), (221...222)], + (215...216), + (222...223) + ), + nil, + (213...214), + (224...225) + ), + 0, + "bar" + ), + CallNode(226...245)( + CallNode(226...229)( + nil, + nil, + (226...229), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (229...230), + (230...233), + nil, + nil, + nil, + BlockNode(234...245)( + [:*], + BlockParametersNode(236...239)( + ParametersNode(237...238)( + [], + [], + [], + RestParameterNode(237...238)((237...238), nil), + [], + nil, + nil + ), + [], + (236...237), + (238...239) + ), + StatementsNode(242...243)( + [CallNode(242...243)( + nil, + nil, + (242...243), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (234...235), + (244...245) + ), + 0, + "bar" + ), + CallNode(246...267)( + CallNode(246...249)( + nil, + nil, + (246...249), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (249...250), + (250...253), + nil, + nil, + nil, + BlockNode(254...267)( + [], + BlockParametersNode(256...261)( + ParametersNode(257...260)( + [RequiredDestructuredParameterNode(257...260)( + [SplatNode(258...259)((258...259), nil)], + (257...258), + (259...260) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (256...257), + (260...261) + ), + StatementsNode(264...265)( + [CallNode(264...265)( + nil, + nil, + (264...265), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (254...255), + (266...267) + ), + 0, + "bar" + ), + CallNode(268...291)( + CallNode(268...271)( + nil, + nil, + (268...271), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (271...272), + (272...275), + nil, + nil, + nil, + BlockNode(276...291)( + [], + BlockParametersNode(278...285)( + ParametersNode(279...284)( + [RequiredDestructuredParameterNode(279...284)( + [RequiredDestructuredParameterNode(280...283)( + [SplatNode(281...282)((281...282), nil)], + (280...281), + (282...283) + )], + (279...280), + (283...284) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (278...279), + (284...285) + ), + StatementsNode(288...289)( + [CallNode(288...289)( + nil, + nil, + (288...289), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (276...277), + (290...291) + ), + 0, + "bar" + ), + CallNode(292...318)( + CallNode(292...295)( + nil, + nil, + (292...295), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (295...296), + (296...299), + nil, + nil, + nil, + BlockNode(300...318)( + [:a], + BlockParametersNode(302...312)( + ParametersNode(303...311)( + [RequiredDestructuredParameterNode(303...311)( + [RequiredParameterNode(304...305)(:a), + RequiredDestructuredParameterNode(307...310)( + [SplatNode(308...309)((308...309), nil)], + (307...308), + (309...310) + )], + (303...304), + (310...311) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (302...303), + (311...312) + ), + StatementsNode(315...316)( + [CallNode(315...316)( + nil, + nil, + (315...316), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (300...301), + (317...318) + ), + 0, + "bar" + ), + CallNode(319...343)( + CallNode(319...322)( + nil, + nil, + (319...322), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (322...323), + (323...326), + nil, + nil, + nil, + BlockNode(327...343)( + [:a, :b], + BlockParametersNode(329...337)( + ParametersNode(330...336)( + [RequiredDestructuredParameterNode(330...336)( + [RequiredParameterNode(331...332)(:a), + RequiredParameterNode(334...335)(:b)], + (330...331), + (335...336) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (329...330), + (336...337) + ), + StatementsNode(340...341)( + [CallNode(340...341)( + nil, + nil, + (340...341), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (327...328), + (342...343) + ), + 0, + "bar" + ), + CallNode(344...359)( + CallNode(344...355)( + CallNode(344...347)( + nil, + nil, + (344...347), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (347...348), + (348...351), + nil, + nil, + nil, + BlockNode(352...355)([], nil, nil, (352...353), (354...355)), + 0, + "bar" + ), + (355...356), + (356...359), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + CallNode(360...390)( + nil, + nil, + (360...361), + nil, + nil, + nil, + BlockNode(362...390)( + [:e], + nil, + BeginNode(365...390)( + nil, + nil, + RescueNode(365...386)( + (365...371), + [ConstantReadNode(372...381)()], + (382...384), + LocalVariableWriteNode(385...386)(:e, 0, nil, (385...386), nil), + nil, + nil + ), + nil, + nil, + (387...390) + ), + (362...364), + (387...390) + ), + 0, + "m" + ), + CallNode(391...435)( + nil, + nil, + (391...392), + nil, + nil, + nil, + BlockNode(393...435)( + [:bar], + nil, + BeginNode(398...435)( + nil, + StatementsNode(398...401)( + [CallNode(398...401)( + nil, + nil, + (398...401), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + RescueNode(402...431)( + (402...408), + [ConstantReadNode(409...418)()], + (419...421), + LocalVariableWriteNode(422...425)(:bar, 0, nil, (422...425), nil), + StatementsNode(428...431)( + [LocalVariableReadNode(428...431)(:bar, 0)] + ), + nil + ), + nil, + nil, + (432...435) + ), + (393...395), + (432...435) + ), + 0, + "m" + ), + CallNode(436...479)( + nil, + nil, + (436...437), + nil, + nil, + nil, + BlockNode(438...479)( + [], + nil, + BeginNode(443...479)( + nil, + StatementsNode(443...446)( + [CallNode(443...446)( + nil, + nil, + (443...446), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + RescueNode(447...475)( + (447...453), + [ConstantReadNode(454...463)(), + SplatNode(465...469)( + (465...466), + CallNode(466...469)( + nil, + nil, + (466...469), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + )], + nil, + nil, + StatementsNode(472...475)( + [CallNode(472...475)( + nil, + nil, + (472...475), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil + ), + nil, + nil, + (476...479) + ), + (438...440), + (476...479) + ), + 0, + "m" + ), + CallNode(480...536)( + nil, + nil, + (480...481), + nil, + nil, + nil, + BlockNode(482...536)( + [:exception], + nil, + BeginNode(487...536)( + nil, + StatementsNode(487...490)( + [CallNode(487...490)( + nil, + nil, + (487...490), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + RescueNode(491...532)( + (491...497), + [ConstantReadNode(498...507)(), + SplatNode(509...513)( + (509...510), + CallNode(510...513)( + nil, + nil, + (510...513), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + )], + (514...516), + LocalVariableWriteNode(517...526)( + :exception, + 0, + nil, + (517...526), + nil + ), + StatementsNode(529...532)( + [CallNode(529...532)( + nil, + nil, + (529...532), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil + ), + nil, + nil, + (533...536) + ), + (482...484), + (533...536) + ), + 0, + "m" + ), + CallNode(537...569)( + nil, + nil, + (537...538), + nil, + nil, + nil, + BlockNode(539...569)( + [], + nil, + BeginNode(544...569)( + nil, + StatementsNode(544...547)( + [CallNode(544...547)( + nil, + nil, + (544...547), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + RescueNode(548...565)( + (548...554), + [SplatNode(555...559)( + (555...556), + CallNode(556...559)( + nil, + nil, + (556...559), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + )], + nil, + nil, + StatementsNode(562...565)( + [CallNode(562...565)( + nil, + nil, + (562...565), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil + ), + nil, + nil, + (566...569) + ), + (539...541), + (566...569) + ), + 0, + "m" + ), + CallNode(570...601)( + nil, + nil, + (570...571), + nil, + nil, + nil, + BlockNode(572...601)( + [], + nil, + BeginNode(577...601)( + nil, + StatementsNode(577...580)( + [CallNode(577...580)( + nil, + nil, + (577...580), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + RescueNode(581...597)( + (581...587), + [ConstantReadNode(588...597)()], + nil, + nil, + nil, + nil + ), + nil, + nil, + (598...601) + ), + (572...574), + (598...601) + ), + 0, + "m" + ), + CallNode(602...634)( + nil, + nil, + (602...603), + nil, + nil, + nil, + BlockNode(604...634)( + [], + nil, + BeginNode(609...634)( + nil, + StatementsNode(609...612)( + [CallNode(609...612)( + nil, + nil, + (609...612), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + RescueNode(613...619)((613...619), [], nil, nil, nil, nil), + ElseNode(620...634)( + (620...624), + StatementsNode(627...630)( + [CallNode(627...630)( + nil, + nil, + (627...630), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (631...634) + ), + nil, + (631...634) + ), + (604...606), + (631...634) + ), + 0, + "m" + ), + CallNode(635...680)( + nil, + nil, + (635...636), + nil, + nil, + nil, + BlockNode(637...680)( + [:exception], + nil, + BeginNode(642...680)( + nil, + StatementsNode(642...645)( + [CallNode(642...645)( + nil, + nil, + (642...645), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + RescueNode(646...676)( + (646...652), + [SplatNode(653...657)( + (653...654), + CallNode(654...657)( + nil, + nil, + (654...657), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + )], + (658...660), + LocalVariableWriteNode(661...670)( + :exception, + 0, + nil, + (661...670), + nil + ), + StatementsNode(673...676)( + [CallNode(673...676)( + nil, + nil, + (673...676), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil + ), + nil, + nil, + (677...680) + ), + (637...639), + (677...680) + ), + 0, + "m" + ), + CallNode(681...696)( + nil, + nil, + (681...682), + nil, + nil, + nil, + BlockNode(683...696)( + [], + nil, + BeginNode(686...696)( + nil, + nil, + nil, + nil, + EnsureNode(686...696)((686...692), nil, (693...696)), + (693...696) + ), + (683...685), + (693...696) + ), + 0, + "m" + ), + CallNode(697...719)( + nil, + nil, + (697...698), + nil, + nil, + nil, + BlockNode(699...719)( + [], + nil, + BeginNode(702...719)( + nil, + nil, + RescueNode(702...708)((702...708), [], nil, nil, nil, nil), + nil, + EnsureNode(709...719)((709...715), nil, (716...719)), + (716...719) + ), + (699...701), + (716...719) + ), + 0, + "m" + ), + CallNode(720...737)( + nil, + nil, + (720...723), + nil, + nil, + nil, + BlockNode(724...737)( + [], + nil, + StatementsNode(728...735)( + [CallNode(728...735)( + CallNode(728...730)( + nil, + nil, + (728...730), + nil, + nil, + nil, + nil, + 0, + "_1" + ), + nil, + (731...732), + nil, + ArgumentsNode(733...735)( + [CallNode(733...735)( + nil, + nil, + (733...735), + nil, + nil, + nil, + nil, + 0, + "_2" + )] + ), + nil, + nil, + 0, + "+" + )] + ), + (724...725), + (736...737) + ), + 0, + "bar" + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/case.txt b/test/yarp/snapshots/unparser/corpus/literal/case.txt new file mode 100644 index 0000000000..3a3041c0b6 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/case.txt @@ -0,0 +1,402 @@ +ProgramNode(0...284)( + [], + StatementsNode(0...284)( + [CaseNode(0...38)( + nil, + [WhenNode(5...19)( + (5...9), + [CallNode(10...13)( + nil, + nil, + (10...13), + nil, + nil, + nil, + nil, + 0, + "bar" + )], + StatementsNode(16...19)( + [CallNode(16...19)( + nil, + nil, + (16...19), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ) + ), + WhenNode(20...34)( + (20...24), + [CallNode(25...28)( + nil, + nil, + (25...28), + nil, + nil, + nil, + nil, + 0, + "baz" + )], + StatementsNode(31...34)( + [CallNode(31...34)( + nil, + nil, + (31...34), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + )], + nil, + (0...4), + (35...38) + ), + CaseNode(39...75)( + CallNode(44...47)(nil, nil, (44...47), nil, nil, nil, nil, 0, "foo"), + [WhenNode(48...56)( + (48...52), + [CallNode(53...56)( + nil, + nil, + (53...56), + nil, + nil, + nil, + nil, + 0, + "bar" + )], + nil + ), + WhenNode(57...71)( + (57...61), + [CallNode(62...65)( + nil, + nil, + (62...65), + nil, + nil, + nil, + nil, + 0, + "baz" + )], + StatementsNode(68...71)( + [CallNode(68...71)( + nil, + nil, + (68...71), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + )], + nil, + (39...43), + (72...75) + ), + CaseNode(76...118)( + CallNode(81...84)(nil, nil, (81...84), nil, nil, nil, nil, 0, "foo"), + [WhenNode(85...99)( + (85...89), + [CallNode(90...93)( + nil, + nil, + (90...93), + nil, + nil, + nil, + nil, + 0, + "bar" + )], + StatementsNode(96...99)( + [CallNode(96...99)( + nil, + nil, + (96...99), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ) + ), + WhenNode(100...114)( + (100...104), + [CallNode(105...108)( + nil, + nil, + (105...108), + nil, + nil, + nil, + nil, + 0, + "baz" + )], + StatementsNode(111...114)( + [CallNode(111...114)( + nil, + nil, + (111...114), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + )], + nil, + (76...80), + (115...118) + ), + CaseNode(119...154)( + CallNode(124...127)( + nil, + nil, + (124...127), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [WhenNode(128...150)( + (128...132), + [CallNode(133...136)( + nil, + nil, + (133...136), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(138...141)( + nil, + nil, + (138...141), + nil, + nil, + nil, + nil, + 0, + "baz" + )], + StatementsNode(144...150)( + [SymbolNode(144...150)((144...145), (145...150), nil, "other")] + ) + )], + nil, + (119...123), + (151...154) + ), + CaseNode(155...186)( + CallNode(160...163)( + nil, + nil, + (160...163), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [WhenNode(164...182)( + (164...168), + [SplatNode(169...173)( + (169...170), + CallNode(170...173)( + nil, + nil, + (170...173), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + )], + StatementsNode(176...182)( + [SymbolNode(176...182)((176...177), (177...182), nil, "value")] + ) + )], + nil, + (155...159), + (183...186) + ), + CaseNode(187...226)( + CallNode(192...195)( + nil, + nil, + (192...195), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [WhenNode(196...210)( + (196...200), + [CallNode(201...204)( + nil, + nil, + (201...204), + nil, + nil, + nil, + nil, + 0, + "bar" + )], + StatementsNode(207...210)( + [CallNode(207...210)( + nil, + nil, + (207...210), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ) + )], + ElseNode(211...226)( + (211...215), + StatementsNode(218...222)( + [SymbolNode(218...222)((218...219), (219...222), nil, "foo")] + ), + (223...226) + ), + (187...191), + (223...226) + ), + CaseNode(227...255)( + CallNode(232...235)( + nil, + nil, + (232...235), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [WhenNode(236...251)( + (236...240), + [SplatNode(241...251)( + (241...242), + CallNode(242...251)( + CallNode(242...245)( + nil, + nil, + (242...245), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + (246...247), + nil, + ArgumentsNode(248...251)( + [CallNode(248...251)( + nil, + nil, + (248...251), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil, + nil, + 0, + "|" + ) + )], + nil + )], + nil, + (227...231), + (252...255) + ), + CaseNode(256...284)( + CallNode(261...264)( + nil, + nil, + (261...264), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [WhenNode(265...280)( + (265...269), + [SplatNode(270...280)( + (270...271), + CallNode(271...280)( + CallNode(271...274)( + nil, + nil, + (271...274), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (274...275), + (275...278), + nil, + ArgumentsNode(279...280)([IntegerNode(279...280)()]), + nil, + nil, + 0, + "baz=" + ) + )], + nil + )], + nil, + (256...260), + (281...284) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/class.txt b/test/yarp/snapshots/unparser/corpus/literal/class.txt new file mode 100644 index 0000000000..eee58beb4c --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/class.txt @@ -0,0 +1,162 @@ +ProgramNode(0...213)( + [], + StatementsNode(0...213)( + [ClassNode(0...11)( + [], + (0...5), + ConstantReadNode(6...7)(), + nil, + nil, + nil, + (8...11) + ), + SingletonClassNode(13...27)( + [], + (13...18), + (19...21), + CallNode(22...23)(nil, nil, (22...23), nil, nil, nil, nil, 0, "a"), + nil, + (24...27) + ), + SingletonClassNode(29...47)( + [], + (29...34), + (35...37), + CallNode(38...39)(nil, nil, (38...39), nil, nil, nil, nil, 0, "a"), + StatementsNode(42...43)( + [CallNode(42...43)(nil, nil, (42...43), nil, nil, nil, nil, 0, "b")] + ), + (44...47) + ), + ClassNode(49...63)( + [], + (49...54), + ConstantPathNode(55...59)( + ConstantReadNode(55...56)(), + ConstantReadNode(58...59)(), + (56...58) + ), + nil, + nil, + nil, + (60...63) + ), + ClassNode(65...82)( + [], + (65...70), + ConstantPathNode(71...78)( + ConstantPathNode(71...75)( + ConstantReadNode(71...72)(), + ConstantReadNode(74...75)(), + (72...74) + ), + ConstantReadNode(77...78)(), + (75...77) + ), + nil, + nil, + nil, + (79...82) + ), + ClassNode(84...99)( + [], + (84...89), + ConstantReadNode(90...91)(), + (92...93), + ConstantReadNode(94...95)(), + nil, + (96...99) + ), + ClassNode(101...119)( + [], + (101...106), + ConstantReadNode(107...108)(), + (109...110), + ConstantPathNode(111...115)( + ConstantReadNode(111...112)(), + ConstantReadNode(114...115)(), + (112...114) + ), + nil, + (116...119) + ), + ClassNode(121...142)( + [], + (121...126), + ConstantPathNode(127...131)( + ConstantReadNode(127...128)(), + ConstantReadNode(130...131)(), + (128...130) + ), + (132...133), + ConstantPathNode(134...138)( + ConstantReadNode(134...135)(), + ConstantReadNode(137...138)(), + (135...137) + ), + nil, + (139...142) + ), + ClassNode(144...198)( + [], + (144...149), + ConstantReadNode(150...151)(), + nil, + nil, + StatementsNode(154...194)( + [CallNode(154...168)( + nil, + nil, + (154...161), + (161...162), + ArgumentsNode(162...167)( + [CallNode(162...167)( + ConstantReadNode(162...163)(), + (163...164), + (164...167), + nil, + nil, + nil, + nil, + 0, + "new" + )] + ), + (167...168), + nil, + 0, + "include" + ), + DefNode(172...194)( + (176...179), + nil, + nil, + StatementsNode(184...188)( + [SymbolNode(184...188)((184...185), (185...188), nil, "bar")] + ), + [], + (172...175), + nil, + nil, + nil, + nil, + (191...194) + )] + ), + (195...198) + ), + ClassNode(200...213)( + [], + (200...205), + ConstantPathNode(206...209)( + nil, + ConstantReadNode(208...209)(), + (206...208) + ), + nil, + nil, + nil, + (210...213) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/control.txt b/test/yarp/snapshots/unparser/corpus/literal/control.txt new file mode 100644 index 0000000000..182bddab60 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/control.txt @@ -0,0 +1,83 @@ +ProgramNode(0...144)( + [], + StatementsNode(0...144)( + [NextNode(0...4)(nil, (0...4)), + ReturnNode(5...11)((5...11), nil), + BreakNode(12...17)(nil, (12...17)), + RetryNode(18...23)(), + RedoNode(24...28)(), + ReturnNode(29...37)( + (29...35), + ArgumentsNode(36...37)([IntegerNode(36...37)()]) + ), + ReturnNode(38...49)( + (38...44), + ArgumentsNode(45...49)([IntegerNode(45...46)(), IntegerNode(48...49)()]) + ), + ReturnNode(50...69)( + (50...56), + ArgumentsNode(57...69)( + [IfNode(57...69)( + nil, + TrueNode(57...61)(), + StatementsNode(64...65)([IntegerNode(64...65)()]), + ElseNode(66...69)( + (66...67), + StatementsNode(68...69)([IntegerNode(68...69)()]), + nil + ), + nil + )] + ) + ), + BreakNode(70...88)( + ArgumentsNode(76...88)( + [IfNode(76...88)( + nil, + TrueNode(76...80)(), + StatementsNode(83...84)([IntegerNode(83...84)()]), + ElseNode(85...88)( + (85...86), + StatementsNode(87...88)([IntegerNode(87...88)()]), + nil + ), + nil + )] + ), + (70...75) + ), + NextNode(89...106)( + ArgumentsNode(94...106)( + [IfNode(94...106)( + nil, + TrueNode(94...98)(), + StatementsNode(101...102)([IntegerNode(101...102)()]), + ElseNode(103...106)( + (103...104), + StatementsNode(105...106)([IntegerNode(105...106)()]), + nil + ), + nil + )] + ), + (89...93) + ), + ReturnNode(107...144)( + (107...113), + ArgumentsNode(114...144)( + [TrueNode(114...118)(), + IfNode(120...144)( + (120...122), + TrueNode(123...127)(), + StatementsNode(130...131)([IntegerNode(130...131)()]), + ElseNode(132...144)( + (132...136), + StatementsNode(139...140)([IntegerNode(139...140)()]), + (141...144) + ), + (141...144) + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/def.txt b/test/yarp/snapshots/unparser/corpus/literal/def.txt new file mode 100644 index 0000000000..dab4a983c9 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/def.txt @@ -0,0 +1,1019 @@ +ProgramNode(0...913)( + [], + StatementsNode(0...913)( + [DefNode(0...46)( + (4...7), + nil, + nil, + BeginNode(10...46)( + nil, + StatementsNode(10...11)( + [CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 0, "a")] + ), + RescueNode(12...22)( + (12...18), + [], + nil, + nil, + StatementsNode(21...22)( + [CallNode(21...22)( + nil, + nil, + (21...22), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + ElseNode(23...38)( + (23...27), + StatementsNode(30...31)( + [CallNode(30...31)( + nil, + nil, + (30...31), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + (32...38) + ), + EnsureNode(32...46)( + (32...38), + StatementsNode(41...42)( + [CallNode(41...42)( + nil, + nil, + (41...42), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (43...46) + ), + (43...46) + ), + [], + (0...3), + nil, + nil, + nil, + nil, + (43...46) + ), + DefNode(48...103)( + (52...55), + nil, + nil, + BeginNode(58...103)( + nil, + StatementsNode(58...68)( + [RescueModifierNode(58...68)( + CallNode(58...59)( + nil, + nil, + (58...59), + nil, + nil, + nil, + nil, + 0, + "a" + ), + (60...66), + CallNode(67...68)( + nil, + nil, + (67...68), + nil, + nil, + nil, + nil, + 0, + "b" + ) + )] + ), + RescueNode(69...79)( + (69...75), + [], + nil, + nil, + StatementsNode(78...79)( + [CallNode(78...79)( + nil, + nil, + (78...79), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + ElseNode(80...95)( + (80...84), + StatementsNode(87...88)( + [CallNode(87...88)( + nil, + nil, + (87...88), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + (89...95) + ), + EnsureNode(89...103)( + (89...95), + StatementsNode(98...99)( + [CallNode(98...99)( + nil, + nil, + (98...99), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (100...103) + ), + (100...103) + ), + [], + (48...51), + nil, + nil, + nil, + nil, + (100...103) + ), + DefNode(105...128)( + (109...112), + nil, + ParametersNode(113...123)( + [], + [], + [], + nil, + [KeywordParameterNode(113...117)((113...117), nil), + KeywordParameterNode(119...123)((119...123), nil)], + nil, + nil + ), + nil, + [:bar, :baz], + (105...108), + nil, + (112...113), + (123...124), + nil, + (125...128) + ), + DefNode(130...141)( + (134...137), + nil, + nil, + nil, + [], + (130...133), + nil, + nil, + nil, + nil, + (138...141) + ), + DefNode(143...160)( + (147...150), + nil, + nil, + StatementsNode(153...156)( + [CallNode(153...156)( + nil, + nil, + (153...156), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + [], + (143...146), + nil, + nil, + nil, + nil, + (157...160) + ), + DefNode(162...205)( + (166...169), + nil, + nil, + BeginNode(172...205)( + nil, + StatementsNode(172...175)( + [CallNode(172...175)( + nil, + nil, + (172...175), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + RescueNode(176...188)( + (176...182), + [], + nil, + nil, + StatementsNode(185...188)( + [CallNode(185...188)( + nil, + nil, + (185...188), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil + ), + nil, + EnsureNode(189...205)( + (189...195), + StatementsNode(198...201)( + [CallNode(198...201)( + nil, + nil, + (198...201), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (202...205) + ), + (202...205) + ), + [], + (162...165), + nil, + nil, + nil, + nil, + (202...205) + ), + DefNode(207...237)( + (211...214), + nil, + nil, + BeginNode(217...237)( + nil, + StatementsNode(217...220)( + [CallNode(217...220)( + nil, + nil, + (217...220), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + EnsureNode(221...237)( + (221...227), + StatementsNode(230...233)( + [CallNode(230...233)( + nil, + nil, + (230...233), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (234...237) + ), + (234...237) + ), + [], + (207...210), + nil, + nil, + nil, + nil, + (234...237) + ), + DefNode(239...269)( + (243...246), + nil, + nil, + BeginNode(249...269)( + nil, + StatementsNode(249...252)( + [CallNode(249...252)( + nil, + nil, + (249...252), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + RescueNode(253...265)( + (253...259), + [], + nil, + nil, + StatementsNode(262...265)( + [CallNode(262...265)( + nil, + nil, + (262...265), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil + ), + nil, + nil, + (266...269) + ), + [], + (239...242), + nil, + nil, + nil, + nil, + (266...269) + ), + DefNode(271...293)( + (275...278), + nil, + ParametersNode(279...282)( + [RequiredParameterNode(279...282)(:bar)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(286...289)([LocalVariableReadNode(286...289)(:bar, 0)]), + [:bar], + (271...274), + nil, + (278...279), + (282...283), + nil, + (290...293) + ), + DefNode(295...322)( + (299...302), + nil, + ParametersNode(303...311)( + [RequiredParameterNode(303...306)(:bar), + RequiredParameterNode(308...311)(:baz)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(315...318)([LocalVariableReadNode(315...318)(:bar, 0)]), + [:bar, :baz], + (295...298), + nil, + (302...303), + (311...312), + nil, + (319...322) + ), + DefNode(324...351)( + (328...331), + nil, + ParametersNode(332...340)( + [], + [OptionalParameterNode(332...340)( + :bar, + (332...335), + (336...337), + ParenthesesNode(338...340)(nil, (338...339), (339...340)) + )], + [], + nil, + [], + nil, + nil + ), + StatementsNode(344...347)([LocalVariableReadNode(344...347)(:bar, 0)]), + [:bar], + (324...327), + nil, + (331...332), + (340...341), + nil, + (348...351) + ), + DefNode(353...382)( + (357...360), + nil, + ParametersNode(361...377)( + [], + [OptionalParameterNode(361...377)( + :bar, + (361...364), + (365...366), + ParenthesesNode(367...377)( + StatementsNode(368...376)( + [CallNode(368...371)( + nil, + nil, + (368...371), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + NilNode(373...376)()] + ), + (367...368), + (376...377) + ) + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:bar], + (353...356), + nil, + (360...361), + (377...378), + nil, + (379...382) + ), + DefNode(384...413)( + (388...391), + nil, + ParametersNode(392...402)( + [], + [OptionalParameterNode(392...402)( + :bar, + (392...395), + (396...397), + TrueNode(398...402)() + )], + [], + nil, + [], + nil, + nil + ), + StatementsNode(406...409)([LocalVariableReadNode(406...409)(:bar, 0)]), + [:bar], + (384...387), + nil, + (391...392), + (402...403), + nil, + (410...413) + ), + DefNode(415...449)( + (419...422), + nil, + ParametersNode(423...438)( + [RequiredParameterNode(423...426)(:bar)], + [OptionalParameterNode(428...438)( + :baz, + (428...431), + (432...433), + TrueNode(434...438)() + )], + [], + nil, + [], + nil, + nil + ), + StatementsNode(442...445)([LocalVariableReadNode(442...445)(:bar, 0)]), + [:bar, :baz], + (415...418), + nil, + (422...423), + (438...439), + nil, + (446...449) + ), + DefNode(451...470)( + (455...458), + nil, + ParametersNode(459...465)( + [], + [], + [], + nil, + [KeywordParameterNode(459...465)( + (459...463), + IntegerNode(464...465)() + )], + nil, + nil + ), + nil, + [:bar], + (451...454), + nil, + (458...459), + (465...466), + nil, + (467...470) + ), + DefNode(472...493)( + (476...479), + nil, + ParametersNode(480...488)( + [], + [], + [], + nil, + [KeywordParameterNode(480...488)( + (480...484), + CallNode(485...488)( + nil, + nil, + (485...488), + nil, + nil, + nil, + nil, + 0, + "baz" + ) + )], + nil, + nil + ), + nil, + [:bar], + (472...475), + nil, + (479...480), + (488...489), + nil, + (490...493) + ), + DefNode(495...518)( + (499...502), + nil, + ParametersNode(503...513)( + [], + [], + [], + nil, + [KeywordParameterNode(503...513)( + (503...507), + CallNode(508...513)( + nil, + nil, + (508...511), + (511...512), + nil, + (512...513), + nil, + 0, + "bar" + ) + )], + nil, + nil + ), + nil, + [:bar], + (495...498), + nil, + (502...503), + (513...514), + nil, + (515...518) + ), + DefNode(520...540)( + (524...527), + nil, + ParametersNode(528...529)( + [], + [], + [], + RestParameterNode(528...529)((528...529), nil), + [], + nil, + nil + ), + StatementsNode(533...536)( + [CallNode(533...536)( + nil, + nil, + (533...536), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + [:*], + (520...523), + nil, + (527...528), + (529...530), + nil, + (537...540) + ), + DefNode(542...565)( + (546...549), + nil, + ParametersNode(550...554)( + [], + [], + [], + RestParameterNode(550...554)((550...551), (551...554)), + [], + nil, + nil + ), + StatementsNode(558...561)([LocalVariableReadNode(558...561)(:bar, 0)]), + [:bar], + (542...545), + nil, + (549...550), + (554...555), + nil, + (562...565) + ), + DefNode(567...595)( + (571...574), + nil, + ParametersNode(575...584)( + [RequiredParameterNode(575...578)(:bar)], + [], + [], + RestParameterNode(580...584)((580...581), (581...584)), + [], + nil, + nil + ), + StatementsNode(588...591)([LocalVariableReadNode(588...591)(:bar, 0)]), + [:bar, :baz], + (567...570), + nil, + (574...575), + (584...585), + nil, + (592...595) + ), + DefNode(597...632)( + (601...604), + nil, + ParametersNode(605...621)( + [], + [OptionalParameterNode(605...615)( + :baz, + (605...608), + (609...610), + TrueNode(611...615)() + )], + [], + RestParameterNode(617...621)((617...618), (618...621)), + [], + nil, + nil + ), + StatementsNode(625...628)( + [CallNode(625...628)( + nil, + nil, + (625...628), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + [:baz, :bor], + (597...600), + nil, + (604...605), + (621...622), + nil, + (629...632) + ), + DefNode(634...677)( + (638...641), + nil, + ParametersNode(642...666)( + [], + [OptionalParameterNode(642...652)( + :baz, + (642...645), + (646...647), + TrueNode(648...652)() + )], + [], + RestParameterNode(654...658)((654...655), (655...658)), + [], + nil, + BlockParameterNode(660...666)((661...666), (660...661)) + ), + StatementsNode(670...673)( + [CallNode(670...673)( + nil, + nil, + (670...673), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + [:baz, :bor, :block], + (634...637), + nil, + (641...642), + (666...667), + nil, + (674...677) + ), + DefNode(679...719)( + (683...686), + nil, + ParametersNode(687...708)( + [RequiredParameterNode(687...690)(:bar)], + [OptionalParameterNode(692...702)( + :baz, + (692...695), + (696...697), + TrueNode(698...702)() + )], + [], + RestParameterNode(704...708)((704...705), (705...708)), + [], + nil, + nil + ), + StatementsNode(712...715)([LocalVariableReadNode(712...715)(:bar, 0)]), + [:bar, :baz, :bor], + (679...682), + nil, + (686...687), + (708...709), + nil, + (716...719) + ), + DefNode(721...746)( + (725...728), + nil, + ParametersNode(729...735)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(729...735)((730...735), (729...730)) + ), + StatementsNode(739...742)( + [CallNode(739...742)( + nil, + nil, + (739...742), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + [:block], + (721...724), + nil, + (728...729), + (735...736), + nil, + (743...746) + ), + DefNode(748...778)( + (752...755), + nil, + ParametersNode(756...767)( + [RequiredParameterNode(756...759)(:bar)], + [], + [], + nil, + [], + nil, + BlockParameterNode(761...767)((762...767), (761...762)) + ), + StatementsNode(771...774)([LocalVariableReadNode(771...774)(:bar, 0)]), + [:bar, :block], + (748...751), + nil, + (755...756), + (767...768), + nil, + (775...778) + ), + DefNode(780...803)( + (784...787), + nil, + nil, + StatementsNode(790...799)( + [CallNode(790...793)( + nil, + nil, + (790...793), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(796...799)( + nil, + nil, + (796...799), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + [], + (780...783), + nil, + nil, + nil, + nil, + (800...803) + ), + DefNode(805...821)( + (809...810), + nil, + ParametersNode(811...816)( + [RequiredDestructuredParameterNode(811...816)( + [RequiredDestructuredParameterNode(812...815)( + [RequiredParameterNode(813...814)(:a)], + (812...813), + (814...815) + )], + (811...812), + (815...816) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (805...808), + nil, + (810...811), + (816...817), + nil, + (818...821) + ), + DefNode(823...854)( + (827...830), + nil, + ParametersNode(831...849)( + [], + [], + [], + nil, + [KeywordParameterNode(831...835)((831...835), nil), + KeywordParameterNode(837...849)( + (837...841), + StringNode(842...849)( + (842...843), + (843...848), + (848...849), + "value" + ) + )], + nil, + nil + ), + nil, + [:bar, :baz], + (823...826), + nil, + (830...831), + (849...850), + nil, + (851...854) + ), + DefNode(856...896)( + (860...861), + nil, + nil, + StatementsNode(864...893)( + [InterpolatedStringNode(864...893)( + (864...874), + [StringNode(875...879)(nil, (875...879), nil, " "), + EmbeddedStatementsNode(879...882)((879...881), nil, (881...882)), + StringNode(882...883)(nil, (882...883), nil, "\n")], + (883...893) + )] + ), + [], + (856...859), + nil, + nil, + nil, + nil, + (893...896) + ), + DefNode(898...913)( + (902...903), + nil, + nil, + StatementsNode(906...909)( + [StringNode(906...909)((906...908), (908...908), (908...909), "")] + ), + [], + (898...901), + nil, + nil, + nil, + nil, + (910...913) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/defined.txt b/test/yarp/snapshots/unparser/corpus/literal/defined.txt new file mode 100644 index 0000000000..1ea9cb9d87 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/defined.txt @@ -0,0 +1,40 @@ +ProgramNode(0...56)( + [:a, :b], + StatementsNode(0...56)( + [DefinedNode(0...14)( + (8...9), + InstanceVariableReadNode(9...13)(), + (13...14), + (0...8) + ), + DefinedNode(15...28)( + (23...24), + ConstantReadNode(24...27)(), + (27...28), + (15...23) + ), + DefinedNode(29...56)( + (37...38), + ParenthesesNode(38...55)( + StatementsNode(40...54)( + [MultiWriteNode(40...54)( + [LocalVariableWriteNode(40...41)(:a, 0, nil, (40...41), nil), + LocalVariableWriteNode(43...44)(:b, 0, nil, (43...44), nil)], + (46...47), + ArrayNode(48...54)( + [IntegerNode(49...50)(), IntegerNode(52...53)()], + (48...49), + (53...54) + ), + (39...40), + (44...45) + )] + ), + (38...39), + (54...55) + ), + (55...56), + (29...37) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/defs.txt b/test/yarp/snapshots/unparser/corpus/literal/defs.txt new file mode 100644 index 0000000000..94a86678dc --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/defs.txt @@ -0,0 +1,297 @@ +ProgramNode(0...266)( + [], + StatementsNode(0...266)( + [DefNode(0...16)( + (9...12), + SelfNode(4...8)(), + nil, + nil, + [], + (0...3), + (8...9), + nil, + nil, + nil, + (13...16) + ), + DefNode(18...40)( + (27...30), + SelfNode(22...26)(), + nil, + StatementsNode(33...36)( + [CallNode(33...36)(nil, nil, (33...36), nil, nil, nil, nil, 0, "bar")] + ), + [], + (18...21), + (26...27), + nil, + nil, + nil, + (37...40) + ), + DefNode(42...70)( + (51...54), + SelfNode(46...50)(), + nil, + StatementsNode(57...66)( + [CallNode(57...60)(nil, nil, (57...60), nil, nil, nil, nil, 0, "bar"), + CallNode(63...66)(nil, nil, (63...66), nil, nil, nil, nil, 0, "baz")] + ), + [], + (42...45), + (50...51), + nil, + nil, + nil, + (67...70) + ), + DefNode(72...93)( + (80...83), + ConstantReadNode(76...79)(), + nil, + StatementsNode(86...89)( + [CallNode(86...89)(nil, nil, (86...89), nil, nil, nil, nil, 0, "bar")] + ), + [], + (72...75), + (79...80), + nil, + nil, + nil, + (90...93) + ), + DefNode(95...128)( + (115...118), + ParenthesesNode(99...114)( + CallNode(100...113)( + nil, + nil, + (100...103), + nil, + nil, + nil, + BlockNode(104...113)( + [:bar], + BlockParametersNode(106...111)( + ParametersNode(107...110)( + [RequiredParameterNode(107...110)(:bar)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (106...107), + (110...111) + ), + nil, + (104...105), + (112...113) + ), + 0, + "foo" + ), + (99...100), + (113...114) + ), + nil, + StatementsNode(121...124)( + [CallNode(121...124)( + nil, + nil, + (121...124), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + [], + (95...98), + (114...115), + nil, + nil, + nil, + (125...128) + ), + DefNode(130...156)( + (143...146), + ParenthesesNode(134...142)( + CallNode(135...141)( + nil, + nil, + (135...138), + (138...139), + ArgumentsNode(139...140)([IntegerNode(139...140)()]), + (140...141), + nil, + 0, + "foo" + ), + (134...135), + (141...142) + ), + nil, + StatementsNode(149...152)( + [CallNode(149...152)( + nil, + nil, + (149...152), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + [], + (130...133), + (142...143), + nil, + nil, + nil, + (153...156) + ), + DefNode(158...190)( + (177...180), + ParenthesesNode(162...176)( + CallNode(163...175)( + ConstantPathNode(163...171)( + ConstantReadNode(163...166)(), + ConstantReadNode(168...171)(), + (166...168) + ), + (171...172), + (172...175), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (162...163), + (175...176) + ), + nil, + StatementsNode(183...186)( + [CallNode(183...186)( + nil, + nil, + (183...186), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + [], + (158...161), + (176...177), + nil, + nil, + nil, + (187...190) + ), + DefNode(192...220)( + (207...210), + ParenthesesNode(196...206)( + ConstantPathNode(197...205)( + ConstantReadNode(197...200)(), + ConstantReadNode(202...205)(), + (200...202) + ), + (196...197), + (205...206) + ), + nil, + StatementsNode(213...216)( + [CallNode(213...216)( + nil, + nil, + (213...216), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + [], + (192...195), + (206...207), + nil, + nil, + nil, + (217...220) + ), + DefNode(222...243)( + (230...233), + ConstantReadNode(226...229)(), + nil, + StatementsNode(236...239)( + [CallNode(236...239)( + nil, + nil, + (236...239), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + [], + (222...225), + (229...230), + nil, + nil, + nil, + (240...243) + ), + DefNode(245...266)( + (253...256), + CallNode(249...252)( + nil, + nil, + (249...252), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + StatementsNode(259...262)( + [CallNode(259...262)( + nil, + nil, + (259...262), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + [], + (245...248), + (252...253), + nil, + nil, + nil, + (263...266) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/dstr.txt b/test/yarp/snapshots/unparser/corpus/literal/dstr.txt new file mode 100644 index 0000000000..221a8939a7 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/dstr.txt @@ -0,0 +1,205 @@ +ProgramNode(0...299)( + [], + StatementsNode(0...299)( + [IfNode(0...20)( + (0...2), + TrueNode(3...7)(), + StatementsNode(10...16)( + [InterpolatedStringNode(10...16)( + (10...11), + [EmbeddedStatementsNode(11...14)((11...13), nil, (13...14)), + StringNode(14...15)(nil, (14...15), nil, "a")], + (15...16) + )] + ), + nil, + (17...20) + ), + IfNode(21...68)( + (21...23), + TrueNode(24...28)(), + StatementsNode(31...64)( + [InterpolatedStringNode(31...61)( + (31...41), + [StringNode(42...44)(nil, (42...44), nil, "a\n"), + EmbeddedStatementsNode(44...47)((44...46), nil, (46...47)), + StringNode(47...51)(nil, (47...51), nil, "a\n" + "b\n")], + (51...61) + ), + CallNode(63...64)(nil, nil, (63...64), nil, nil, nil, nil, 0, "x")] + ), + nil, + (65...68) + ), + InterpolatedStringNode(69...109)( + (69...79), + [StringNode(80...89)(nil, (80...89), nil, "\#{}\#{}\n"), + EmbeddedStatementsNode(89...92)((89...91), nil, (91...92)), + StringNode(92...93)(nil, (92...93), nil, "\n"), + EmbeddedStatementsNode(93...96)((93...95), nil, (95...96)), + StringNode(96...97)(nil, (96...97), nil, "\n"), + EmbeddedStatementsNode(97...100)((97...99), nil, (99...100)), + StringNode(100...101)(nil, (100...101), nil, "\n")], + (101...109) + ), + RescueModifierNode(109...130)( + InterpolatedStringNode(109...145)( + (109...119), + [EmbeddedStatementsNode(131...134)((131...133), nil, (133...134)), + StringNode(134...137)(nil, (134...137), nil, "\n" + "a\n")], + (137...145) + ), + (120...126), + NilNode(127...130)() + ), + InterpolatedStringNode(145...151)( + (145...146), + [StringNode(146...147)(nil, (146...147), nil, "a"), + EmbeddedVariableNode(147...150)( + (147...148), + NumberedReferenceReadNode(148...150)() + )], + (150...151) + ), + InterpolatedStringNode(152...158)( + (152...153), + [StringNode(153...154)(nil, (153...154), nil, "a"), + EmbeddedVariableNode(154...157)( + (154...155), + GlobalVariableReadNode(155...157)() + )], + (157...158) + ), + InterpolatedStringNode(159...165)( + (159...160), + [StringNode(160...161)(nil, (160...161), nil, "a"), + EmbeddedVariableNode(161...164)( + (161...162), + InstanceVariableReadNode(162...164)() + )], + (164...165) + ), + InterpolatedStringNode(166...173)( + (166...167), + [StringNode(167...168)(nil, (167...168), nil, "a"), + EmbeddedVariableNode(168...172)( + (168...169), + ClassVariableReadNode(169...172)() + )], + (172...173) + ), + IfNode(174...225)( + (174...176), + TrueNode(177...181)(), + StatementsNode(184...222)( + [ReturnNode(184...222)( + (184...190), + ArgumentsNode(191...222)( + [InterpolatedStringNode(191...222)( + (191...201), + [StringNode(202...206)(nil, (202...206), nil, " "), + EmbeddedStatementsNode(206...211)( + (206...208), + StatementsNode(208...210)([IntegerNode(208...210)()]), + (210...211) + ), + StringNode(211...212)(nil, (211...212), nil, "\n")], + (212...222) + )] + ) + )] + ), + nil, + (222...225) + ), + CallNode(226...241)( + nil, + nil, + (226...229), + (229...230), + ArgumentsNode(230...259)( + [InterpolatedStringNode(230...259)( + (230...240), + [StringNode(242...244)(nil, (242...244), nil, " "), + EmbeddedStatementsNode(244...250)( + (244...246), + StatementsNode(246...249)( + [CallNode(246...249)( + nil, + nil, + (246...249), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (249...250) + ), + StringNode(250...251)(nil, (250...251), nil, "\n")], + (251...259) + )] + ), + (240...241), + nil, + 0, + "foo" + ), + CallNode(259...299)( + nil, + nil, + (259...262), + (262...263), + ArgumentsNode(263...298)( + [InterpolatedStringNode(263...298)( + (263...273), + [StringNode(281...283)(nil, (281...283), nil, " "), + EmbeddedStatementsNode(283...289)( + (283...285), + StatementsNode(285...288)( + [CallNode(285...288)( + nil, + nil, + (285...288), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (288...289) + ), + StringNode(289...290)(nil, (289...290), nil, "\n")], + (290...298) + )] + ), + (273...274), + BlockNode(275...299)( + [:x], + BlockParametersNode(277...280)( + ParametersNode(278...279)( + [RequiredParameterNode(278...279)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (277...278), + (279...280) + ), + nil, + (275...276), + (298...299) + ), + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/empty.txt b/test/yarp/snapshots/unparser/corpus/literal/empty.txt new file mode 100644 index 0000000000..bd3eaf5ff4 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/empty.txt @@ -0,0 +1 @@ +ProgramNode(0...0)([], StatementsNode(0...0)([])) diff --git a/test/yarp/snapshots/unparser/corpus/literal/empty_begin.txt b/test/yarp/snapshots/unparser/corpus/literal/empty_begin.txt new file mode 100644 index 0000000000..d998f704cf --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/empty_begin.txt @@ -0,0 +1,4 @@ +ProgramNode(0...2)( + [], + StatementsNode(0...2)([ParenthesesNode(0...2)(nil, (0...1), (1...2))]) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/flipflop.txt b/test/yarp/snapshots/unparser/corpus/literal/flipflop.txt new file mode 100644 index 0000000000..b4837b7dc8 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/flipflop.txt @@ -0,0 +1,149 @@ +ProgramNode(0...68)( + [], + StatementsNode(0...68)( + [IfNode(0...33)( + (0...2), + ParenthesesNode(3...23)( + StatementsNode(4...22)( + [RangeNode(4...22)( + ParenthesesNode(4...12)( + StatementsNode(5...11)( + [CallNode(5...11)( + CallNode(5...6)( + nil, + nil, + (5...6), + nil, + nil, + nil, + nil, + 0, + "i" + ), + nil, + (7...9), + nil, + ArgumentsNode(10...11)([IntegerNode(10...11)()]), + nil, + nil, + 0, + "==" + )] + ), + (4...5), + (11...12) + ), + ParenthesesNode(14...22)( + StatementsNode(15...21)( + [CallNode(15...21)( + CallNode(15...16)( + nil, + nil, + (15...16), + nil, + nil, + nil, + nil, + 0, + "i" + ), + nil, + (17...19), + nil, + ArgumentsNode(20...21)([IntegerNode(20...21)()]), + nil, + nil, + 0, + "==" + )] + ), + (14...15), + (21...22) + ), + (12...14), + 0 + )] + ), + (3...4), + (22...23) + ), + StatementsNode(26...29)( + [CallNode(26...29)(nil, nil, (26...29), nil, nil, nil, nil, 0, "foo")] + ), + nil, + (30...33) + ), + IfNode(34...68)( + (34...36), + ParenthesesNode(37...58)( + StatementsNode(38...57)( + [RangeNode(38...57)( + ParenthesesNode(38...46)( + StatementsNode(39...45)( + [CallNode(39...45)( + CallNode(39...40)( + nil, + nil, + (39...40), + nil, + nil, + nil, + nil, + 0, + "i" + ), + nil, + (41...43), + nil, + ArgumentsNode(44...45)([IntegerNode(44...45)()]), + nil, + nil, + 0, + "==" + )] + ), + (38...39), + (45...46) + ), + ParenthesesNode(49...57)( + StatementsNode(50...56)( + [CallNode(50...56)( + CallNode(50...51)( + nil, + nil, + (50...51), + nil, + nil, + nil, + nil, + 0, + "i" + ), + nil, + (52...54), + nil, + ArgumentsNode(55...56)([IntegerNode(55...56)()]), + nil, + nil, + 0, + "==" + )] + ), + (49...50), + (56...57) + ), + (46...49), + 1 + )] + ), + (37...38), + (57...58) + ), + StatementsNode(61...64)( + [CallNode(61...64)(nil, nil, (61...64), nil, nil, nil, nil, 0, "foo")] + ), + nil, + (65...68) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/for.txt b/test/yarp/snapshots/unparser/corpus/literal/for.txt new file mode 100644 index 0000000000..4fdb3e3d73 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/for.txt @@ -0,0 +1,130 @@ +ProgramNode(0...119)( + [:a, :b], + StatementsNode(0...119)( + [CallNode(0...30)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...29)( + [ForNode(4...29)( + MultiWriteNode(8...9)( + [LocalVariableWriteNode(8...9)(:a, 0, nil, (8...9), nil)], + nil, + nil, + nil, + nil + ), + CallNode(13...16)( + nil, + nil, + (13...16), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + StatementsNode(22...25)( + [CallNode(22...25)( + nil, + nil, + (22...25), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (4...7), + (10...12), + (17...19), + (26...29) + )] + ), + (29...30), + nil, + 0, + "bar" + ), + ForNode(31...56)( + MultiWriteNode(35...36)( + [LocalVariableWriteNode(35...36)(:a, 0, nil, (35...36), nil)], + nil, + nil, + nil, + nil + ), + CallNode(40...43)(nil, nil, (40...43), nil, nil, nil, nil, 0, "bar"), + StatementsNode(49...52)( + [CallNode(49...52)(nil, nil, (49...52), nil, nil, nil, nil, 0, "baz")] + ), + (31...34), + (37...39), + (44...46), + (53...56) + ), + ForNode(57...88)( + MultiWriteNode(61...68)( + [LocalVariableWriteNode(62...63)(:a, 0, nil, (62...63), nil), + SplatNode(65...67)( + (65...66), + LocalVariableWriteNode(66...67)(:b, 0, nil, (66...67), nil) + )], + nil, + nil, + (61...62), + (67...68) + ), + CallNode(72...75)(nil, nil, (72...75), nil, nil, nil, nil, 0, "bar"), + StatementsNode(81...84)( + [CallNode(81...84)(nil, nil, (81...84), nil, nil, nil, nil, 0, "baz")] + ), + (57...60), + (69...71), + (76...78), + (85...88) + ), + ForNode(89...119)( + MultiWriteNode(93...99)( + [LocalVariableWriteNode(94...95)(:a, 0, nil, (94...95), nil), + LocalVariableWriteNode(97...98)(:b, 0, nil, (97...98), nil)], + nil, + nil, + (93...94), + (98...99) + ), + CallNode(103...106)( + nil, + nil, + (103...106), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + StatementsNode(112...115)( + [CallNode(112...115)( + nil, + nil, + (112...115), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (89...92), + (100...102), + (107...109), + (116...119) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/hookexe.txt b/test/yarp/snapshots/unparser/corpus/literal/hookexe.txt new file mode 100644 index 0000000000..9cd7da16bf --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/hookexe.txt @@ -0,0 +1,22 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [PreExecutionNode(0...15)( + StatementsNode(10...13)( + [CallNode(10...13)(nil, nil, (10...13), nil, nil, nil, nil, 0, "foo")] + ), + (0...5), + (6...7), + (14...15) + ), + CallNode(16...19)(nil, nil, (16...19), nil, nil, nil, nil, 0, "bar"), + PostExecutionNode(20...33)( + StatementsNode(28...31)( + [CallNode(28...31)(nil, nil, (28...31), nil, nil, nil, nil, 0, "baz")] + ), + (20...23), + (24...25), + (32...33) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/if.txt b/test/yarp/snapshots/unparser/corpus/literal/if.txt new file mode 100644 index 0000000000..32f5fed1ed --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/if.txt @@ -0,0 +1,201 @@ +ProgramNode(0...246)( + [:foo, :pair], + StatementsNode(0...246)( + [IfNode(0...18)( + (0...2), + RegularExpressionNode(3...8)((3...4), (4...7), (7...8), "foo", 0), + StatementsNode(11...14)( + [CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "bar")] + ), + nil, + (15...18) + ), + IfNode(19...31)( + (19...21), + IntegerNode(22...23)(), + StatementsNode(26...27)([IntegerNode(26...27)()]), + nil, + (28...31) + ), + IfNode(32...53)( + (32...34), + IntegerNode(35...36)(), + StatementsNode(39...40)([IntegerNode(39...40)()]), + ElseNode(41...53)( + (41...45), + StatementsNode(48...49)([IntegerNode(48...49)()]), + (50...53) + ), + (50...53) + ), + UnlessNode(54...72)( + (54...60), + IntegerNode(61...62)(), + StatementsNode(65...68)([NilNode(65...68)()]), + nil, + (69...72) + ), + UnlessNode(73...89)( + (73...79), + IntegerNode(80...81)(), + StatementsNode(84...85)([IntegerNode(84...85)()]), + nil, + (86...89) + ), + IfNode(90...100)( + (90...92), + CallNode(93...96)(nil, nil, (93...96), nil, nil, nil, nil, 0, "foo"), + nil, + nil, + (97...100) + ), + ModuleNode(102...133)( + [:foo], + (102...108), + ConstantReadNode(109...110)(), + StatementsNode(113...129)( + [IfNode(113...129)( + (123...125), + LocalVariableReadNode(126...129)(:foo, 0), + StatementsNode(113...122)( + [LocalVariableWriteNode(113...122)( + :foo, + 0, + CallNode(119...122)( + nil, + nil, + (119...122), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (113...116), + (117...118) + )] + ), + nil, + nil + )] + ), + (130...133) + ), + ModuleNode(135...170)( + [:foo], + (135...141), + ConstantReadNode(142...143)(), + StatementsNode(146...166)( + [UnlessNode(146...166)( + (156...162), + LocalVariableReadNode(163...166)(:foo, 0), + StatementsNode(146...155)( + [LocalVariableWriteNode(146...155)( + :foo, + 0, + CallNode(152...155)( + nil, + nil, + (152...155), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (146...149), + (150...151) + )] + ), + nil, + nil + )] + ), + (167...170) + ), + UnlessNode(171...197)( + (171...177), + CallNode(178...181)( + nil, + nil, + (178...181), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StatementsNode(184...193)( + [LocalVariableWriteNode(184...193)( + :foo, + 0, + CallNode(190...193)( + nil, + nil, + (190...193), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (184...187), + (188...189) + )] + ), + nil, + (194...197) + ), + IfNode(198...246)( + (198...200), + CallNode(201...222)( + nil, + nil, + (201...204), + nil, + nil, + nil, + BlockNode(205...222)( + [:pair], + BlockParametersNode(207...213)( + ParametersNode(208...212)( + [RequiredParameterNode(208...212)(:pair)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (207...208), + (212...213) + ), + StatementsNode(216...220)( + [LocalVariableReadNode(216...220)(:pair, 0)] + ), + (205...206), + (221...222) + ), + 0, + "foo" + ), + StatementsNode(225...242)( + [LocalVariableWriteNode(225...236)( + :pair, + 0, + SymbolNode(232...236)((232...233), (233...236), nil, "foo"), + (225...229), + (230...231) + ), + LocalVariableReadNode(239...242)(:foo, 0)] + ), + nil, + (243...246) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/kwbegin.txt b/test/yarp/snapshots/unparser/corpus/literal/kwbegin.txt new file mode 100644 index 0000000000..b7ed53b276 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/kwbegin.txt @@ -0,0 +1,379 @@ +ProgramNode(0...530)( + [:foo, :bar, :exception], + StatementsNode(0...530)( + [BeginNode(0...16)( + (0...5), + nil, + RescueNode(6...12)((6...12), [], nil, nil, nil, nil), + nil, + nil, + (13...16) + ), + BeginNode(18...34)( + (18...23), + nil, + nil, + nil, + EnsureNode(24...34)((24...30), nil, (31...34)), + (31...34) + ), + BeginNode(36...49)( + (36...41), + StatementsNode(44...45)( + [CallNode(44...45)(nil, nil, (44...45), nil, nil, nil, nil, 0, "a")] + ), + nil, + nil, + nil, + (46...49) + ), + BeginNode(51...75)( + (51...56), + StatementsNode(59...60)( + [CallNode(59...60)(nil, nil, (59...60), nil, nil, nil, nil, 0, "a")] + ), + RescueNode(61...71)( + (61...67), + [], + nil, + nil, + StatementsNode(70...71)( + [CallNode(70...71)(nil, nil, (70...71), nil, nil, nil, nil, 0, "b")] + ), + nil + ), + nil, + nil, + (72...75) + ), + BeginNode(77...105)( + (77...82), + StatementsNode(85...90)( + [CallNode(85...86)(nil, nil, (85...86), nil, nil, nil, nil, 0, "a"), + CallNode(89...90)(nil, nil, (89...90), nil, nil, nil, nil, 0, "b")] + ), + RescueNode(91...101)( + (91...97), + [], + nil, + nil, + StatementsNode(100...101)( + [CallNode(100...101)( + nil, + nil, + (100...101), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (102...105) + ), + BeginNode(107...125)( + (107...112), + nil, + RescueNode(113...121)( + (113...119), + [ConstantReadNode(120...121)()], + nil, + nil, + nil, + nil + ), + nil, + nil, + (122...125) + ), + BeginNode(127...152)( + (127...132), + nil, + RescueNode(133...148)( + (133...139), + [ConstantReadNode(140...141)()], + (142...144), + LocalVariableWriteNode(145...148)(:foo, 0, nil, (145...148), nil), + nil, + nil + ), + nil, + nil, + (149...152) + ), + BeginNode(154...204)( + (154...159), + StatementsNode(162...163)( + [CallNode(162...163)( + nil, + nil, + (162...163), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(164...189)( + (164...170), + [ConstantReadNode(171...172)()], + nil, + nil, + StatementsNode(175...176)( + [CallNode(175...176)( + nil, + nil, + (175...176), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + RescueNode(177...189)( + (177...183), + [ConstantReadNode(184...185)()], + nil, + nil, + StatementsNode(188...189)( + [CallNode(188...189)( + nil, + nil, + (188...189), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + nil + ) + ), + nil, + EnsureNode(190...204)( + (190...196), + StatementsNode(199...200)( + [CallNode(199...200)( + nil, + nil, + (199...200), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (201...204) + ), + (201...204) + ), + BeginNode(206...273)( + (206...211), + StatementsNode(214...250)( + [BeginNode(214...250)( + (214...219), + StatementsNode(224...235)( + [LocalVariableReadNode(224...227)(:foo, 0), + CallNode(232...235)( + nil, + nil, + (232...235), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + RescueNode(238...244)((238...244), [], nil, nil, nil, nil), + nil, + nil, + (247...250) + )] + ), + RescueNode(251...269)( + (251...257), + [], + nil, + nil, + StatementsNode(260...269)( + [CallNode(260...263)( + nil, + nil, + (260...263), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + CallNode(266...269)( + nil, + nil, + (266...269), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil + ), + nil, + nil, + (270...273) + ), + BeginNode(275...337)( + (275...280), + StatementsNode(283...316)( + [RescueModifierNode(283...316)( + CallNode(283...299)( + nil, + nil, + (283...288), + (288...289), + ArgumentsNode(289...298)([ConstantReadNode(289...298)()]), + (298...299), + nil, + 0, + "raise" + ), + (300...306), + LocalVariableWriteNode(307...316)( + :foo, + 0, + CallNode(313...316)( + nil, + nil, + (313...316), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (307...310), + (311...312) + ) + )] + ), + RescueNode(317...333)( + (317...323), + [ConstantReadNode(324...333)()], + nil, + nil, + nil, + nil + ), + nil, + nil, + (334...337) + ), + BeginNode(339...374)( + (339...344), + StatementsNode(347...350)([LocalVariableReadNode(347...350)(:foo, 0)]), + RescueNode(351...370)( + (351...357), + [], + (358...360), + LocalVariableWriteNode(361...364)(:bar, 0, nil, (361...364), nil), + StatementsNode(367...370)( + [LocalVariableReadNode(367...370)(:bar, 0)] + ), + nil + ), + nil, + nil, + (371...374) + ), + BeginNode(376...428)( + (376...381), + StatementsNode(384...387)([LocalVariableReadNode(384...387)(:foo, 0)]), + RescueNode(388...424)( + (388...394), + [ConstantReadNode(395...404)(), ConstantReadNode(406...411)()], + (412...414), + LocalVariableWriteNode(415...418)(:bar, 0, nil, (415...418), nil), + StatementsNode(421...424)( + [LocalVariableReadNode(421...424)(:bar, 0)] + ), + nil + ), + nil, + nil, + (425...428) + ), + BeginNode(430...487)( + (430...435), + StatementsNode(438...441)([LocalVariableReadNode(438...441)(:bar, 0)]), + RescueNode(442...483)( + (442...448), + [ConstantReadNode(449...458)(), + SplatNode(460...464)( + (460...461), + LocalVariableReadNode(461...464)(:bar, 0) + )], + (465...467), + LocalVariableWriteNode(468...477)( + :exception, + 0, + nil, + (468...477), + nil + ), + StatementsNode(480...483)( + [CallNode(480...483)( + nil, + nil, + (480...483), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil + ), + nil, + nil, + (484...487) + ), + SingletonClassNode(489...530)( + [], + (489...494), + (495...497), + SelfNode(498...502)(), + StatementsNode(505...526)( + [RescueModifierNode(505...526)( + UndefNode(505...515)( + [SymbolNode(511...515)((511...512), (512...515), nil, "bar")], + (505...510) + ), + (516...522), + NilNode(523...526)() + )] + ), + (527...530) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/lambda.txt b/test/yarp/snapshots/unparser/corpus/literal/lambda.txt new file mode 100644 index 0000000000..66300fd726 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/lambda.txt @@ -0,0 +1,112 @@ +ProgramNode(0...80)( + [], + StatementsNode(0...80)( + [CallNode(0...10)( + nil, + nil, + (0...6), + nil, + nil, + nil, + BlockNode(7...10)([], nil, nil, (7...8), (9...10)), + 0, + "lambda" + ), + CallNode(11...32)( + nil, + nil, + (11...17), + nil, + nil, + nil, + BlockNode(18...32)( + [:a, :b], + BlockParametersNode(20...26)( + ParametersNode(21...25)( + [RequiredParameterNode(21...22)(:a), + RequiredParameterNode(24...25)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (20...21), + (25...26) + ), + StatementsNode(29...30)([LocalVariableReadNode(29...30)(:a, 0)]), + (18...19), + (31...32) + ), + 0, + "lambda" + ), + LambdaNode(33...41)( + [], + (33...35), + BlockParametersNode(35...37)(nil, [], (35...36), (36...37)), + nil + ), + LambdaNode(42...51)( + [:a], + (42...44), + BlockParametersNode(44...47)( + ParametersNode(45...46)( + [RequiredParameterNode(45...46)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (44...45), + (46...47) + ), + nil + ), + LambdaNode(52...64)( + [:a, :b], + (52...54), + BlockParametersNode(54...60)( + ParametersNode(55...59)( + [RequiredParameterNode(55...56)(:a), + RequiredParameterNode(58...59)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (54...55), + (59...60) + ), + nil + ), + LambdaNode(65...80)( + [:a, :b, :c], + (65...67), + BlockParametersNode(67...76)( + ParametersNode(68...72)( + [RequiredParameterNode(68...69)(:a), + RequiredParameterNode(71...72)(:b)], + [], + [], + nil, + [], + nil, + nil + ), + [(74...75)], + (67...68), + (75...76) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/literal.txt b/test/yarp/snapshots/unparser/corpus/literal/literal.txt new file mode 100644 index 0000000000..01e9155ec2 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/literal.txt @@ -0,0 +1,755 @@ +ProgramNode(0...916)( + [], + StatementsNode(0...916)( + [HashNode(0...38)( + (0...1), + [AssocNode(2...53)( + StringNode(2...7)((2...3), (3...6), (6...7), "foo"), + InterpolatedStringNode(11...53)( + (11...21), + [StringNode(39...41)(nil, (39...41), nil, " "), + EmbeddedStatementsNode(41...44)((41...43), nil, (43...44)), + StringNode(44...45)(nil, (44...45), nil, "\n")], + (45...53) + ), + (8...10) + ), + AssocNode(23...36)( + StringNode(23...28)((23...24), (24...27), (27...28), "bar"), + SymbolNode(32...36)((32...33), (33...36), nil, "baz"), + (29...31) + )], + (37...38) + ), + HashNode(53...84)( + (53...54), + [AssocNode(55...67)( + StringNode(55...60)((55...56), (56...59), (59...60), "foo"), + StringNode(64...67)((64...66), (66...66), (66...67), ""), + (61...63) + ), + AssocNode(69...82)( + StringNode(69...74)((69...70), (70...73), (73...74), "bar"), + SymbolNode(78...82)((78...79), (79...82), nil, "baz"), + (75...77) + )], + (83...84) + ), + ArrayNode(85...97)( + [StringNode(86...91)((86...87), (87...90), (90...91), "foo"), + StringNode(93...96)((93...95), (95...95), (95...96), "")], + (85...86), + (96...97) + ), + CallNode(98...113)( + CallNode(98...111)( + nil, + nil, + (98...99), + (99...100), + ArgumentsNode(100...128)( + [InterpolatedStringNode(100...128)( + (100...110), + [StringNode(114...116)(nil, (114...116), nil, " "), + EmbeddedStatementsNode(116...119)( + (116...118), + nil, + (118...119) + ), + StringNode(119...120)(nil, (119...120), nil, "\n")], + (120...128) + )] + ), + (110...111), + nil, + 0, + "a" + ), + (111...112), + (112...113), + nil, + nil, + nil, + nil, + 0, + "a" + ), + CallNode(128...136)( + CallNode(128...134)( + nil, + nil, + (128...129), + (129...130), + ArgumentsNode(130...133)( + [StringNode(130...133)((130...132), (132...132), (132...133), "")] + ), + (133...134), + nil, + 0, + "a" + ), + (134...135), + (135...136), + nil, + nil, + nil, + nil, + 0, + "a" + ), + HashNode(137...167)( + (137...138), + [AssocNode(139...182)( + StringNode(139...144)((139...140), (140...143), (143...144), "foo"), + InterpolatedStringNode(148...182)( + (148...158), + [StringNode(168...170)(nil, (168...170), nil, " "), + EmbeddedStatementsNode(170...173)((170...172), nil, (172...173)), + StringNode(173...174)(nil, (173...174), nil, "\n")], + (174...182) + ), + (145...147) + ), + AssocSplatNode(160...165)( + CallNode(162...165)( + nil, + nil, + (162...165), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (160...162) + )], + (166...167) + ), + HashNode(182...205)( + (182...183), + [AssocNode(184...196)( + StringNode(184...189)((184...185), (185...188), (188...189), "foo"), + StringNode(193...196)((193...195), (195...195), (195...196), ""), + (190...192) + ), + AssocSplatNode(198...203)( + CallNode(200...203)( + nil, + nil, + (200...203), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (198...200) + )], + (204...205) + ), + InterpolatedStringNode(206...220)( + (206...207), + [EmbeddedVariableNode(207...210)( + (207...208), + InstanceVariableReadNode(208...210)() + ), + StringNode(210...211)(nil, (210...211), nil, " "), + EmbeddedVariableNode(211...215)( + (211...212), + ClassVariableReadNode(212...215)() + ), + StringNode(215...216)(nil, (215...216), nil, " "), + EmbeddedVariableNode(216...219)( + (216...217), + GlobalVariableReadNode(217...219)() + )], + (219...220) + ), + IntegerNode(221...222)(), + CallNode(223...226)( + IntegerNode(224...226)(), + nil, + (223...224), + nil, + nil, + nil, + nil, + 0, + "+@" + ), + IntegerNode(227...228)(), + IntegerNode(229...230)(), + RationalNode(231...233)(IntegerNode(231...232)()), + RationalNode(234...238)(FloatNode(234...237)()), + RationalNode(239...243)(FloatNode(239...242)()), + ImaginaryNode(244...246)(IntegerNode(244...245)()), + CallNode(247...250)( + ImaginaryNode(248...250)(IntegerNode(248...249)()), + nil, + (247...248), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + ImaginaryNode(251...255)(FloatNode(251...254)()), + CallNode(256...261)( + ImaginaryNode(257...261)(FloatNode(257...260)()), + nil, + (256...257), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + ImaginaryNode(262...294)(IntegerNode(262...293)()), + ImaginaryNode(295...298)( + RationalNode(295...297)(IntegerNode(295...296)()) + ), + StringConcatNode(299...310)( + StringNode(299...304)((299...300), (300...303), (303...304), "foo"), + StringNode(305...310)((305...306), (306...309), (309...310), "bar") + ), + InterpolatedStringNode(311...326)( + (311...312), + [StringNode(312...319)(nil, (312...319), nil, "foobar "), + EmbeddedStatementsNode(319...325)( + (319...321), + StatementsNode(321...324)( + [CallNode(321...324)( + nil, + nil, + (321...324), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (324...325) + )], + (325...326) + ), + InterpolatedStringNode(327...339)( + (327...328), + [StringNode(328...331)(nil, (328...331), nil, "foo"), + EmbeddedStatementsNode(331...335)( + (331...333), + StatementsNode(333...334)([IntegerNode(333...334)()]), + (334...335) + ), + StringNode(335...338)(nil, (335...338), nil, "bar")], + (338...339) + ), + InterpolatedStringNode(340...349)( + (340...341), + [StringNode(341...345)(nil, (341...345), nil, "\\\\"), + EmbeddedStatementsNode(345...348)((345...347), nil, (347...348))], + (348...349) + ), + InterpolatedStringNode(350...359)( + (350...351), + [EmbeddedStatementsNode(351...354)((351...353), nil, (353...354)), + StringNode(354...358)(nil, (354...358), nil, "\#{}")], + (358...359) + ), + InterpolatedStringNode(360...369)( + (360...361), + [StringNode(361...365)(nil, (361...365), nil, "\#{}"), + EmbeddedStatementsNode(365...368)((365...367), nil, (367...368))], + (368...369) + ), + StringNode(370...385)( + (370...371), + (371...384), + (384...385), + "foo\\\#{@bar}" + ), + StringNode(386...390)((386...387), (387...389), (389...390), "\""), + StringNode(391...400)((391...392), (392...399), (399...400), "foo bar"), + StringNode(401...411)( + (401...402), + (402...410), + (410...411), + "foo\n" + "bar" + ), + XStringNode(412...417)((412...413), (413...416), (416...417), "foo"), + InterpolatedXStringNode(418...430)( + (418...419), + [StringNode(419...422)(nil, (419...422), nil, "foo"), + EmbeddedStatementsNode(422...429)( + (422...424), + StatementsNode(424...428)([InstanceVariableReadNode(424...428)()]), + (428...429) + )], + (429...430) + ), + XStringNode(431...434)((431...432), (432...433), (433...434), ")"), + XStringNode(435...439)((435...436), (436...438), (438...439), "`"), + XStringNode(440...443)((440...441), (441...442), (442...443), "\""), + SymbolNode(444...448)((444...445), (445...448), nil, "foo"), + InterpolatedSymbolNode(449...455)( + (449...451), + [StringNode(451...454)(nil, (451...454), nil, "A B")], + (454...455) + ), + SymbolNode(456...460)((456...457), (457...460), nil, "foo"), + InterpolatedSymbolNode(461...467)( + (461...463), + [StringNode(463...466)(nil, (463...466), nil, "A B")], + (466...467) + ), + InterpolatedSymbolNode(468...475)( + (468...470), + [StringNode(470...474)(nil, (470...474), nil, "A\"B")], + (474...475) + ), + InterpolatedSymbolNode(476...479)((476...478), [], (478...479)), + RegularExpressionNode(480...485)( + (480...481), + (481...484), + (484...485), + "foo", + 0 + ), + RegularExpressionNode(486...514)( + (486...487), + (487...513), + (513...514), + "[^-+',./:@[:alnum:][]]+", + 0 + ), + InterpolatedRegularExpressionNode(515...527)( + (515...516), + [StringNode(516...519)(nil, (516...519), nil, "foo"), + EmbeddedStatementsNode(519...526)( + (519...521), + StatementsNode(521...525)([InstanceVariableReadNode(521...525)()]), + (525...526) + )], + (526...527), + 0 + ), + InterpolatedRegularExpressionNode(528...543)( + (528...529), + [StringNode(529...532)(nil, (529...532), nil, "foo"), + EmbeddedStatementsNode(532...539)( + (532...534), + StatementsNode(534...538)([InstanceVariableReadNode(534...538)()]), + (538...539) + )], + (539...543), + 7 + ), + InterpolatedRegularExpressionNode(544...557)( + (544...545), + [EmbeddedStatementsNode(545...556)( + (545...547), + StatementsNode(547...555)( + [StringNode(547...555)( + (547...548), + (548...554), + (554...555), + "\u0000" + )] + ), + (555...556) + )], + (556...557), + 0 + ), + RegularExpressionNode(558...562)( + (558...559), + (559...561), + (561...562), + "\n", + 0 + ), + RegularExpressionNode(563...567)( + (563...564), + (564...566), + (566...567), + "\n", + 0 + ), + RegularExpressionNode(568...573)( + (568...569), + (569...571), + (571...573), + "\n", + 4 + ), + RegularExpressionNode(574...581)( + (574...575), + (575...579), + (579...581), + "//", + 4 + ), + InterpolatedSymbolNode(582...597)( + (582...584), + [StringNode(584...587)(nil, (584...587), nil, "foo"), + EmbeddedStatementsNode(587...593)( + (587...589), + StatementsNode(589...592)( + [CallNode(589...592)( + nil, + nil, + (589...592), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (592...593) + ), + StringNode(593...596)(nil, (593...596), nil, "baz")], + (596...597) + ), + InterpolatedSymbolNode(598...609)( + (598...600), + [EmbeddedStatementsNode(600...608)( + (600...602), + StatementsNode(602...607)( + [StringNode(602...607)( + (602...603), + (603...606), + (606...607), + "foo" + )] + ), + (607...608) + )], + (608...609) + ), + RangeNode(610...624)( + ParenthesesNode(610...621)( + StatementsNode(611...620)( + [CallNode(611...620)( + FloatNode(611...614)(), + nil, + (615...616), + nil, + ArgumentsNode(617...620)([FloatNode(617...620)()]), + nil, + nil, + 0, + "/" + )] + ), + (610...611), + (620...621) + ), + IntegerNode(623...624)(), + (621...623), + 0 + ), + RangeNode(625...639)( + IntegerNode(625...626)(), + ParenthesesNode(628...639)( + StatementsNode(629...638)( + [CallNode(629...638)( + FloatNode(629...632)(), + nil, + (633...634), + nil, + ArgumentsNode(635...638)([FloatNode(635...638)()]), + nil, + nil, + 0, + "/" + )] + ), + (628...629), + (638...639) + ), + (626...628), + 0 + ), + RangeNode(640...656)( + ParenthesesNode(640...651)( + StatementsNode(641...650)( + [CallNode(641...650)( + FloatNode(641...644)(), + nil, + (645...646), + nil, + ArgumentsNode(647...650)([FloatNode(647...650)()]), + nil, + nil, + 0, + "/" + )] + ), + (640...641), + (650...651) + ), + IntegerNode(653...656)(), + (651...653), + 0 + ), + CallNode(657...661)( + FloatNode(658...661)(), + nil, + (657...658), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + FloatNode(662...665)(), + ArrayNode(666...672)( + [IntegerNode(667...668)(), IntegerNode(670...671)()], + (666...667), + (671...672) + ), + ArrayNode(673...684)( + [IntegerNode(674...675)(), + ParenthesesNode(677...679)(nil, (677...678), (678...679)), + CallNode(681...683)( + nil, + nil, + (681...683), + nil, + nil, + nil, + nil, + 0, + "n2" + )], + (673...674), + (683...684) + ), + ArrayNode(685...688)( + [IntegerNode(686...687)()], + (685...686), + (687...688) + ), + ArrayNode(689...691)([], (689...690), (690...691)), + ArrayNode(692...702)( + [IntegerNode(693...694)(), + SplatNode(696...701)( + (696...697), + InstanceVariableReadNode(697...701)() + )], + (692...693), + (701...702) + ), + ArrayNode(703...713)( + [SplatNode(704...709)( + (704...705), + InstanceVariableReadNode(705...709)() + ), + IntegerNode(711...712)()], + (703...704), + (712...713) + ), + ArrayNode(714...728)( + [SplatNode(715...720)( + (715...716), + InstanceVariableReadNode(716...720)() + ), + SplatNode(722...727)( + (722...723), + InstanceVariableReadNode(723...727)() + )], + (714...715), + (727...728) + ), + HashNode(729...731)((729...730), [], (730...731)), + HashNode(732...744)( + (732...733), + [AssocNode(734...742)( + ParenthesesNode(734...736)(nil, (734...735), (735...736)), + ParenthesesNode(740...742)(nil, (740...741), (741...742)), + (737...739) + )], + (743...744) + ), + HashNode(745...755)( + (745...746), + [AssocNode(747...753)( + IntegerNode(747...748)(), + IntegerNode(752...753)(), + (749...751) + )], + (754...755) + ), + HashNode(756...774)( + (756...757), + [AssocNode(758...764)( + IntegerNode(758...759)(), + IntegerNode(763...764)(), + (760...762) + ), + AssocNode(766...772)( + IntegerNode(766...767)(), + IntegerNode(771...772)(), + (768...770) + )], + (773...774) + ), + HashNode(775...802)( + (775...776), + [AssocNode(777...794)( + SymbolNode(777...779)(nil, (777...778), (778...779), "a"), + ParenthesesNode(780...794)( + StatementsNode(781...793)( + [RescueModifierNode(781...793)( + IntegerNode(781...782)(), + (783...789), + CallNode(790...793)( + nil, + nil, + (790...793), + nil, + nil, + nil, + nil, + 0, + "foo" + ) + )] + ), + (780...781), + (793...794) + ), + nil + ), + AssocNode(796...800)( + SymbolNode(796...798)(nil, (796...797), (797...798), "b"), + IntegerNode(799...800)(), + nil + )], + (801...802) + ), + HashNode(803...817)( + (803...804), + [AssocNode(805...809)( + SymbolNode(805...807)(nil, (805...806), (806...807), "a"), + IntegerNode(808...809)(), + nil + ), + AssocNode(811...815)( + SymbolNode(811...813)(nil, (811...812), (812...813), "b"), + IntegerNode(814...815)(), + nil + )], + (816...817) + ), + HashNode(818...827)( + (818...819), + [AssocNode(820...825)( + SymbolNode(820...822)(nil, (820...821), (821...822), "a"), + SymbolNode(823...825)((823...824), (824...825), nil, "a"), + nil + )], + (826...827) + ), + HashNode(828...843)( + (828...829), + [AssocNode(830...841)( + InterpolatedSymbolNode(830...836)( + (830...832), + [StringNode(832...835)(nil, (832...835), nil, "a b")], + (835...836) + ), + IntegerNode(840...841)(), + (837...839) + )], + (842...843) + ), + HashNode(844...856)( + (844...845), + [AssocNode(846...854)( + SymbolNode(846...849)((846...847), (847...849), nil, "-@"), + IntegerNode(853...854)(), + (850...852) + )], + (855...856) + ), + InterpolatedStringNode(857...869)( + (857...858), + [EmbeddedStatementsNode(858...861)((858...860), nil, (860...861)), + StringNode(861...862)(nil, (861...862), nil, "\n"), + EmbeddedStatementsNode(862...865)((862...864), nil, (864...865)), + StringNode(865...868)(nil, (865...868), nil, "\n" + "a")], + (868...869) + ), + CallNode(870...892)( + nil, + nil, + (870...873), + nil, + nil, + nil, + BlockNode(874...892)( + [], + nil, + StatementsNode(878...890)( + [InterpolatedStringNode(878...890)( + (878...879), + [EmbeddedStatementsNode(879...882)( + (879...881), + nil, + (881...882) + ), + StringNode(882...883)(nil, (882...883), nil, "\n"), + EmbeddedStatementsNode(883...886)( + (883...885), + nil, + (885...886) + ), + StringNode(886...889)(nil, (886...889), nil, "\n" + "a")], + (889...890) + )] + ), + (874...875), + (891...892) + ), + 0, + "foo" + ), + InterpolatedSymbolNode(893...901)( + (893...895), + [StringNode(895...900)(nil, (895...900), nil, "a\\\n" + "b")], + (900...901) + ), + InterpolatedXStringNode(902...916)( + (902...903), + [StringNode(903...907)(nil, (903...907), nil, " x\n"), + EmbeddedStatementsNode(907...913)( + (907...909), + StatementsNode(909...912)( + [CallNode(909...912)( + nil, + nil, + (909...912), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (912...913) + ), + StringNode(913...915)(nil, (913...915), nil, "\n" + "#")], + (915...916) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/module.txt b/test/yarp/snapshots/unparser/corpus/literal/module.txt new file mode 100644 index 0000000000..c917fedd23 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/module.txt @@ -0,0 +1,78 @@ +ProgramNode(0...106)( + [], + StatementsNode(0...106)( + [ModuleNode(0...12)([], (0...6), ConstantReadNode(7...8)(), nil, (9...12)), + ModuleNode(14...29)( + [], + (14...20), + ConstantPathNode(21...25)( + ConstantReadNode(21...22)(), + ConstantReadNode(24...25)(), + (22...24) + ), + nil, + (26...29) + ), + ModuleNode(31...49)( + [], + (31...37), + ConstantPathNode(38...45)( + ConstantPathNode(38...42)( + ConstantReadNode(38...39)(), + ConstantReadNode(41...42)(), + (39...41) + ), + ConstantReadNode(44...45)(), + (42...44) + ), + nil, + (46...49) + ), + ModuleNode(51...106)( + [], + (51...57), + ConstantReadNode(58...59)(), + StatementsNode(62...102)( + [CallNode(62...76)( + nil, + nil, + (62...69), + (69...70), + ArgumentsNode(70...75)( + [CallNode(70...75)( + ConstantReadNode(70...71)(), + (71...72), + (72...75), + nil, + nil, + nil, + nil, + 0, + "new" + )] + ), + (75...76), + nil, + 0, + "include" + ), + DefNode(80...102)( + (84...87), + nil, + nil, + StatementsNode(92...96)( + [SymbolNode(92...96)((92...93), (93...96), nil, "bar")] + ), + [], + (80...83), + nil, + nil, + nil, + nil, + (99...102) + )] + ), + (103...106) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/opasgn.txt b/test/yarp/snapshots/unparser/corpus/literal/opasgn.txt new file mode 100644 index 0000000000..df1836e4c5 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/opasgn.txt @@ -0,0 +1,429 @@ +ProgramNode(0...233)( + [:a, :h], + StatementsNode(0...233)( + [LocalVariableOperatorWriteNode(0...6)( + (0...1), + (2...4), + IntegerNode(5...6)(), + :a, + :+ + ), + LocalVariableOperatorWriteNode(7...13)( + (7...8), + (9...11), + IntegerNode(12...13)(), + :a, + :- + ), + LocalVariableOperatorWriteNode(14...21)( + (14...15), + (16...19), + IntegerNode(20...21)(), + :a, + :** + ), + LocalVariableOperatorWriteNode(22...28)( + (22...23), + (24...26), + IntegerNode(27...28)(), + :a, + :* + ), + LocalVariableOperatorWriteNode(29...35)( + (29...30), + (31...33), + IntegerNode(34...35)(), + :a, + :/ + ), + LocalVariableOperatorAndWriteNode(36...43)( + (36...37), + (38...41), + CallNode(42...43)(nil, nil, (42...43), nil, nil, nil, nil, 0, "b"), + :a + ), + LocalVariableOperatorOrWriteNode(44...51)( + (44...45), + (46...49), + IntegerNode(50...51)(), + :a + ), + CallNode(52...65)( + ParenthesesNode(52...61)( + StatementsNode(53...60)( + [LocalVariableOperatorOrWriteNode(53...60)( + (53...54), + (55...58), + IntegerNode(59...60)(), + :a + )] + ), + (52...53), + (60...61) + ), + (61...62), + (62...65), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(66...83)( + ParenthesesNode(66...76)( + StatementsNode(67...75)( + [LocalVariableOperatorOrWriteNode(67...75)( + (67...68), + (69...72), + HashNode(73...75)((73...74), [], (74...75)), + :h + )] + ), + (66...67), + (75...76) + ), + nil, + (76...79), + (76...77), + ArgumentsNode(77...83)( + [CallNode(77...78)(nil, nil, (77...78), nil, nil, nil, nil, 0, "k"), + CallNode(82...83)(nil, nil, (82...83), nil, nil, nil, nil, 0, "v")] + ), + (78...79), + nil, + 0, + "[]=" + ), + CallOperatorWriteNode(84...92)( + CallNode(84...87)( + LocalVariableReadNode(84...85)(:a, 0), + (85...86), + (86...87), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + (88...90), + IntegerNode(91...92)(), + :+ + ), + CallOperatorWriteNode(93...101)( + CallNode(93...96)( + LocalVariableReadNode(93...94)(:a, 0), + (94...95), + (95...96), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + (97...99), + IntegerNode(100...101)(), + :- + ), + CallOperatorWriteNode(102...111)( + CallNode(102...105)( + LocalVariableReadNode(102...103)(:a, 0), + (103...104), + (104...105), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + (106...109), + IntegerNode(110...111)(), + :** + ), + CallOperatorWriteNode(112...120)( + CallNode(112...115)( + LocalVariableReadNode(112...113)(:a, 0), + (113...114), + (114...115), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + (116...118), + IntegerNode(119...120)(), + :* + ), + CallOperatorWriteNode(121...129)( + CallNode(121...124)( + LocalVariableReadNode(121...122)(:a, 0), + (122...123), + (123...124), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + (125...127), + IntegerNode(128...129)(), + :/ + ), + CallOperatorAndWriteNode(130...139)( + CallNode(130...133)( + LocalVariableReadNode(130...131)(:a, 0), + (131...132), + (132...133), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + (134...137), + CallNode(138...139)(nil, nil, (138...139), nil, nil, nil, nil, 0, "b") + ), + CallOperatorOrWriteNode(140...149)( + CallNode(140...143)( + LocalVariableReadNode(140...141)(:a, 0), + (141...142), + (142...143), + nil, + nil, + nil, + nil, + 0, + "b=" + ), + IntegerNode(148...149)(), + (144...147) + ), + CallOperatorWriteNode(150...159)( + CallNode(150...154)( + LocalVariableReadNode(150...151)(:a, 0), + nil, + (151...154), + (151...152), + ArgumentsNode(152...153)( + [CallNode(152...153)( + nil, + nil, + (152...153), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (153...154), + nil, + 0, + "[]=" + ), + (155...157), + IntegerNode(158...159)(), + :+ + ), + CallOperatorWriteNode(160...169)( + CallNode(160...164)( + LocalVariableReadNode(160...161)(:a, 0), + nil, + (161...164), + (161...162), + ArgumentsNode(162...163)( + [CallNode(162...163)( + nil, + nil, + (162...163), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (163...164), + nil, + 0, + "[]=" + ), + (165...167), + IntegerNode(168...169)(), + :- + ), + CallOperatorWriteNode(170...180)( + CallNode(170...174)( + LocalVariableReadNode(170...171)(:a, 0), + nil, + (171...174), + (171...172), + ArgumentsNode(172...173)( + [CallNode(172...173)( + nil, + nil, + (172...173), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (173...174), + nil, + 0, + "[]=" + ), + (175...178), + IntegerNode(179...180)(), + :** + ), + CallOperatorWriteNode(181...190)( + CallNode(181...185)( + LocalVariableReadNode(181...182)(:a, 0), + nil, + (182...185), + (182...183), + ArgumentsNode(183...184)( + [CallNode(183...184)( + nil, + nil, + (183...184), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (184...185), + nil, + 0, + "[]=" + ), + (186...188), + IntegerNode(189...190)(), + :* + ), + CallOperatorWriteNode(191...200)( + CallNode(191...195)( + LocalVariableReadNode(191...192)(:a, 0), + nil, + (192...195), + (192...193), + ArgumentsNode(193...194)( + [CallNode(193...194)( + nil, + nil, + (193...194), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (194...195), + nil, + 0, + "[]=" + ), + (196...198), + IntegerNode(199...200)(), + :/ + ), + CallOperatorAndWriteNode(201...211)( + CallNode(201...205)( + LocalVariableReadNode(201...202)(:a, 0), + nil, + (202...205), + (202...203), + ArgumentsNode(203...204)( + [CallNode(203...204)( + nil, + nil, + (203...204), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (204...205), + nil, + 0, + "[]=" + ), + (206...209), + CallNode(210...211)(nil, nil, (210...211), nil, nil, nil, nil, 0, "b") + ), + CallOperatorOrWriteNode(212...222)( + CallNode(212...216)( + LocalVariableReadNode(212...213)(:a, 0), + nil, + (213...216), + (213...214), + ArgumentsNode(214...215)( + [CallNode(214...215)( + nil, + nil, + (214...215), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (215...216), + nil, + 0, + "[]=" + ), + IntegerNode(221...222)(), + (217...220) + ), + CallOperatorWriteNode(223...233)( + CallNode(223...228)( + CallNode(223...226)( + nil, + nil, + (223...226), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (226...227), + (227...228), + nil, + nil, + nil, + nil, + 0, + "A=" + ), + (229...231), + IntegerNode(232...233)(), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/pattern.txt b/test/yarp/snapshots/unparser/corpus/literal/pattern.txt new file mode 100644 index 0000000000..cc8b9242d6 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/pattern.txt @@ -0,0 +1,291 @@ +ProgramNode(0...408)( + [:a, :x, :y], + StatementsNode(0...408)( + [CaseNode(0...345)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo"), + [InNode(9...38)( + ArrayPatternNode(12...26)( + ConstantReadNode(12...13)(), + [IntegerNode(14...15)(), IntegerNode(17...18)()], + SplatNode(20...22)( + (20...21), + LocalVariableWriteNode(21...22)(:a, 0, nil, (21...22), nil) + ), + [IntegerNode(24...25)()], + (13...14), + (25...26) + ), + StatementsNode(34...38)([TrueNode(34...38)()]), + (9...11), + (27...31) + ), + InNode(39...59)( + ArrayPatternNode(42...50)( + nil, + [IntegerNode(43...44)(), IntegerNode(46...47)()], + nil, + [], + (42...43), + (49...50) + ), + StatementsNode(58...59)( + [CallNode(58...59)( + nil, + nil, + (58...59), + nil, + nil, + nil, + nil, + 0, + "y" + )] + ), + (39...41), + (51...55) + ), + InNode(60...80)( + HashPatternNode(63...68)( + ConstantReadNode(63...64)(), + [AssocNode(65...67)( + SymbolNode(65...67)(nil, (65...66), (66...67), "x"), + nil, + nil + )], + nil, + (64...65), + (67...68) + ), + StatementsNode(76...80)([TrueNode(76...80)()]), + (60...62), + (69...73) + ), + InNode(81...101)( + HashPatternNode(84...89)( + nil, + [AssocNode(85...88)( + AssocSplatNode(85...88)( + LocalVariableWriteNode(87...88)(:a, 0, nil, (87...88), nil), + (85...87) + ), + nil, + nil + )], + nil, + (84...85), + (88...89) + ), + StatementsNode(97...101)([TrueNode(97...101)()]), + (81...83), + (90...94) + ), + InNode(102...127)( + IfNode(105...115)( + (108...110), + TrueNode(111...115)(), + StatementsNode(105...107)( + [HashPatternNode(105...107)( + nil, + [], + nil, + (105...106), + (106...107) + )] + ), + nil, + nil + ), + StatementsNode(123...127)([TrueNode(123...127)()]), + (102...104), + (116...120) + ), + InNode(128...152)( + ArrayPatternNode(131...140)( + nil, + [LocalVariableWriteNode(132...133)(:x, 0, nil, (132...133), nil), + LocalVariableWriteNode(135...136)(:y, 0, nil, (135...136), nil)], + SplatNode(138...139)((138...139), nil), + [], + (131...132), + (139...140) + ), + StatementsNode(148...152)([TrueNode(148...152)()]), + (128...130), + (141...145) + ), + InNode(153...181)( + HashPatternNode(156...169)( + nil, + [AssocNode(157...161)( + SymbolNode(157...159)(nil, (157...158), (158...159), "a"), + IntegerNode(160...161)(), + nil + ), + AssocNode(163...168)( + SymbolNode(163...166)(nil, (163...165), (165...166), "aa"), + IntegerNode(167...168)(), + nil + )], + nil, + (156...157), + (168...169) + ), + StatementsNode(177...181)([TrueNode(177...181)()]), + (153...155), + (170...174) + ), + InNode(182...199)( + HashPatternNode(185...187)(nil, [], nil, (185...186), (186...187)), + StatementsNode(195...199)([TrueNode(195...199)()]), + (182...184), + (188...192) + ), + InNode(200...222)( + HashPatternNode(203...210)( + nil, + [AssocNode(204...209)( + NoKeywordsParameterNode(204...209)((204...206), (206...209)), + nil, + nil + )], + nil, + (203...204), + (209...210) + ), + StatementsNode(218...222)([TrueNode(218...222)()]), + (200...202), + (211...215) + ), + InNode(223...246)( + HashPatternNode(226...234)( + nil, + [AssocNode(227...233)( + SymbolNode(227...231)( + (227...228), + (228...229), + (229...231), + "a" + ), + IntegerNode(232...233)(), + nil + )], + nil, + (226...227), + (233...234) + ), + StatementsNode(242...246)([TrueNode(242...246)()]), + (223...225), + (235...239) + ), + InNode(247...267)( + AlternationPatternNode(250...255)( + IntegerNode(250...251)(), + IntegerNode(254...255)(), + (252...253) + ), + StatementsNode(263...267)([TrueNode(263...267)()]), + (247...249), + (256...260) + ), + InNode(268...289)( + CapturePatternNode(271...277)( + IntegerNode(271...272)(), + LocalVariableWriteNode(276...277)(:a, 0, nil, (276...277), nil), + (273...275) + ), + StatementsNode(285...289)([TrueNode(285...289)()]), + (268...270), + (278...282) + ), + InNode(290...307)( + PinnedVariableNode(293...295)( + LocalVariableReadNode(294...295)(:x, 0), + (293...294) + ), + StatementsNode(303...307)([TrueNode(303...307)()]), + (290...292), + (296...300) + ), + InNode(308...312)(IntegerNode(311...312)(), nil, (308...310), nil), + InNode(313...329)( + IntegerNode(316...317)(), + StatementsNode(325...329)([TrueNode(325...329)()]), + (313...315), + (318...322) + )], + ElseNode(330...345)( + (330...334), + StatementsNode(337...341)([TrueNode(337...341)()]), + (342...345) + ), + (0...4), + (342...345) + ), + CaseNode(346...376)( + CallNode(351...354)( + nil, + nil, + (351...354), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(355...372)( + ArrayPatternNode(358...372)( + ConstantReadNode(358...359)(), + [IntegerNode(360...361)(), IntegerNode(363...364)()], + SplatNode(366...368)( + (366...367), + LocalVariableWriteNode(367...368)(:a, 0, nil, (367...368), nil) + ), + [IntegerNode(370...371)()], + (359...360), + (371...372) + ), + nil, + (355...357), + nil + )], + nil, + (346...350), + (373...376) + ), + CaseNode(377...399)( + CallNode(382...385)( + nil, + nil, + (382...385), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [InNode(386...390)( + ConstantReadNode(389...390)(), + nil, + (386...388), + nil + )], + ElseNode(391...399)((391...395), nil, (396...399)), + (377...381), + (396...399) + ), + MatchPredicateNode(400...408)( + IntegerNode(400...401)(), + ArrayPatternNode(405...408)( + nil, + [LocalVariableWriteNode(406...407)(:a, 0, nil, (406...407), nil)], + nil, + [], + (405...406), + (407...408) + ), + (402...404) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/pragma.txt b/test/yarp/snapshots/unparser/corpus/literal/pragma.txt new file mode 100644 index 0000000000..a50b8d7942 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/pragma.txt @@ -0,0 +1,9 @@ +ProgramNode(0...38)( + [], + StatementsNode(0...38)( + [SourceEncodingNode(0...12)(), + SourceFileNode(13...21)("/fixtures/unparser/corpus/literal/pragma.txt"), + SourceLineNode(22...30)(), + CallNode(31...38)(nil, nil, (31...38), nil, nil, nil, nil, 0, "__dir__")] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/range.txt b/test/yarp/snapshots/unparser/corpus/literal/range.txt new file mode 100644 index 0000000000..ea2b362a32 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/range.txt @@ -0,0 +1,31 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [ParenthesesNode(0...5)( + StatementsNode(1...4)( + [RangeNode(1...4)(IntegerNode(1...2)(), nil, (2...4), 0)] + ), + (0...1), + (4...5) + ), + RangeNode(6...10)( + IntegerNode(6...7)(), + IntegerNode(9...10)(), + (7...9), + 0 + ), + ParenthesesNode(11...17)( + StatementsNode(12...16)( + [RangeNode(12...16)(IntegerNode(12...13)(), nil, (13...16), 1)] + ), + (11...12), + (16...17) + ), + RangeNode(18...23)( + IntegerNode(18...19)(), + IntegerNode(22...23)(), + (19...22), + 1 + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/rescue.txt b/test/yarp/snapshots/unparser/corpus/literal/rescue.txt new file mode 100644 index 0000000000..f0018fbfad --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/rescue.txt @@ -0,0 +1,72 @@ +ProgramNode(0...64)( + [:x], + StatementsNode(0...64)( + [RescueModifierNode(0...14)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (4...10), + CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "bar") + ), + RescueModifierNode(15...36)( + CallNode(15...18)(nil, nil, (15...18), nil, nil, nil, nil, 0, "foo"), + (19...25), + ReturnNode(26...36)( + (26...32), + ArgumentsNode(33...36)( + [CallNode(33...36)( + nil, + nil, + (33...36), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + ) + ), + LocalVariableWriteNode(37...64)( + :x, + 0, + ParenthesesNode(41...64)( + StatementsNode(42...63)( + [RescueModifierNode(42...63)( + CallNode(42...45)( + nil, + nil, + (42...45), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (46...52), + ReturnNode(53...63)( + (53...59), + ArgumentsNode(60...63)( + [CallNode(60...63)( + nil, + nil, + (60...63), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + ) + )] + ), + (41...42), + (63...64) + ), + (37...38), + (39...40) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/send.txt b/test/yarp/snapshots/unparser/corpus/literal/send.txt new file mode 100644 index 0000000000..a91a323914 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/send.txt @@ -0,0 +1,2029 @@ +ProgramNode(0...991)( + [], + StatementsNode(0...991)( + [ModuleNode(0...35)( + [:foo, :a, :_], + (0...6), + ConstantReadNode(7...8)(), + StatementsNode(11...31)( + [LocalVariableOperatorOrWriteNode(11...31)( + (11...14), + (15...18), + ParenthesesNode(19...31)( + StatementsNode(21...30)( + [MultiWriteNode(21...30)( + [LocalVariableWriteNode(21...22)( + :a, + 0, + nil, + (21...22), + nil + ), + LocalVariableWriteNode(24...25)( + :_, + 0, + nil, + (24...25), + nil + )], + (27...28), + CallNode(29...30)( + nil, + nil, + (29...30), + nil, + nil, + nil, + nil, + 0, + "b" + ), + (20...21), + (25...26) + )] + ), + (19...20), + (30...31) + ), + :foo + )] + ), + (32...35) + ), + ModuleNode(37...73)( + [:local], + (37...43), + ConstantReadNode(44...45)(), + StatementsNode(48...69)( + [LocalVariableWriteNode(48...57)( + :local, + 0, + IntegerNode(56...57)(), + (48...53), + (54...55) + ), + CallNode(60...69)( + LocalVariableReadNode(60...65)(:local, 0), + (65...66), + (66...69), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (70...73) + ), + CallNode(74...89)( + ClassNode(74...85)( + [], + (74...79), + ConstantReadNode(80...81)(), + nil, + nil, + nil, + (82...85) + ), + (85...86), + (86...89), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(90...106)( + ModuleNode(90...102)( + [], + (90...96), + ConstantReadNode(97...98)(), + nil, + (99...102) + ), + (102...103), + (103...106), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(107...127)( + BeginNode(107...123)( + (107...112), + nil, + RescueNode(113...119)((113...119), [], nil, nil, nil, nil), + nil, + nil, + (120...123) + ), + (123...124), + (124...127), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(128...169)( + CaseNode(128...165)( + ParenthesesNode(133...152)( + StatementsNode(134...151)( + [DefNode(134...145)( + (138...141), + nil, + nil, + nil, + [], + (134...137), + nil, + nil, + nil, + nil, + (142...145) + ), + SymbolNode(147...151)((147...148), (148...151), nil, "bar")] + ), + (133...134), + (151...152) + ), + [WhenNode(153...161)( + (153...157), + [CallNode(158...161)( + nil, + nil, + (158...161), + nil, + nil, + nil, + nil, + 0, + "bar" + )], + nil + )], + nil, + (128...132), + (162...165) + ), + (165...166), + (166...169), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + CallNode(170...195)( + CaseNode(170...191)( + CallNode(175...178)( + nil, + nil, + (175...178), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + [WhenNode(179...187)( + (179...183), + [CallNode(184...187)( + nil, + nil, + (184...187), + nil, + nil, + nil, + nil, + 0, + "bar" + )], + nil + )], + nil, + (170...174), + (188...191) + ), + (191...192), + (192...195), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + CallNode(196...217)( + SingletonClassNode(196...213)( + [], + (196...201), + (202...204), + SelfNode(205...209)(), + nil, + (210...213) + ), + (213...214), + (214...217), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(218...238)( + DefNode(218...234)( + (227...230), + SelfNode(222...226)(), + nil, + nil, + [], + (218...221), + (226...227), + nil, + nil, + nil, + (231...234) + ), + (234...235), + (235...238), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(239...254)( + DefNode(239...250)( + (243...246), + nil, + nil, + nil, + [], + (239...242), + nil, + nil, + nil, + nil, + (247...250) + ), + (250...251), + (251...254), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(255...272)( + UntilNode(255...268)( + (255...260), + CallNode(261...264)( + nil, + nil, + (261...264), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil + ), + (268...269), + (269...272), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(273...290)( + WhileNode(273...286)( + (273...278), + CallNode(279...282)( + nil, + nil, + (279...282), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil + ), + (286...287), + (287...290), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(291...303)( + CallNode(291...299)( + nil, + nil, + (291...295), + nil, + nil, + nil, + BlockNode(296...299)([], nil, nil, (296...297), (298...299)), + 0, + "loop" + ), + (299...300), + (300...303), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + CallNode(304...318)( + IfNode(304...314)( + (304...306), + CallNode(307...310)( + nil, + nil, + (307...310), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + nil, + (311...314) + ), + (314...315), + (315...318), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + CallNode(319...338)( + ParenthesesNode(319...334)( + StatementsNode(320...333)( + [CallNode(320...333)( + RegularExpressionNode(320...325)( + (320...321), + (321...324), + (324...325), + "bar", + 0 + ), + nil, + (326...328), + nil, + ArgumentsNode(329...333)( + [SymbolNode(329...333)((329...330), (330...333), nil, "foo")] + ), + nil, + nil, + 0, + "=~" + )] + ), + (319...320), + (333...334) + ), + (334...335), + (335...338), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(339...349)( + ParenthesesNode(339...345)( + StatementsNode(340...344)( + [RangeNode(340...344)( + IntegerNode(340...341)(), + IntegerNode(343...344)(), + (341...343), + 0 + )] + ), + (339...340), + (344...345) + ), + (345...346), + (346...349), + nil, + nil, + nil, + nil, + 0, + "max" + ), + CallNode(350...368)( + ParenthesesNode(350...364)( + StatementsNode(351...363)( + [CallNode(351...363)( + CallNode(351...354)( + nil, + nil, + (351...354), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (355...357), + nil, + ArgumentsNode(358...363)( + [RegularExpressionNode(358...363)( + (358...359), + (359...362), + (362...363), + "bar", + 0 + )] + ), + nil, + nil, + 0, + "=~" + )] + ), + (350...351), + (363...364) + ), + (364...365), + (365...368), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(369...382)( + RegularExpressionNode(369...374)( + (369...370), + (370...373), + (373...374), + "bar", + 0 + ), + nil, + (375...377), + nil, + ArgumentsNode(378...382)( + [SymbolNode(378...382)((378...379), (379...382), nil, "foo")] + ), + nil, + nil, + 0, + "=~" + ), + CallNode(383...395)( + RegularExpressionNode(383...388)( + (383...384), + (384...387), + (387...388), + "bar", + 0 + ), + nil, + (389...391), + nil, + ArgumentsNode(392...395)( + [CallNode(392...395)( + nil, + nil, + (392...395), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil, + 0, + "=~" + ), + RangeNode(396...404)( + IntegerNode(396...397)(), + CallNode(399...404)( + IntegerNode(399...400)(), + (400...401), + (401...404), + nil, + nil, + nil, + nil, + 0, + "max" + ), + (397...399), + 0 + ), + CallNode(405...410)( + ConstantReadNode(405...406)(), + (406...407), + (407...410), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(411...416)( + nil, + nil, + (411...414), + (414...415), + nil, + (415...416), + nil, + 0, + "FOO" + ), + CallNode(417...421)( + CallNode(417...418)(nil, nil, (417...418), nil, nil, nil, nil, 0, "a"), + (418...420), + (420...421), + nil, + nil, + nil, + nil, + 1, + "b" + ), + CallNode(422...427)( + CallNode(422...423)(nil, nil, (422...423), nil, nil, nil, nil, 0, "a"), + (423...424), + (424...427), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(428...431)(nil, nil, (428...431), nil, nil, nil, nil, 0, "foo"), + CallNode(432...450)( + CallNode(432...435)( + nil, + nil, + (432...435), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (436...438), + nil, + ArgumentsNode(439...450)( + [ParenthesesNode(439...450)( + StatementsNode(440...449)( + [CallNode(440...449)( + CallNode(440...443)( + nil, + nil, + (440...443), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + (444...445), + nil, + ArgumentsNode(446...449)( + [CallNode(446...449)( + nil, + nil, + (446...449), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil, + nil, + 0, + "*" + )] + ), + (439...440), + (449...450) + )] + ), + nil, + nil, + 0, + "<<" + ), + CallNode(451...463)( + CallNode(451...454)( + nil, + nil, + (451...454), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (455...457), + nil, + ArgumentsNode(458...463)( + [RegularExpressionNode(458...463)( + (458...459), + (459...462), + (462...463), + "bar", + 0 + )] + ), + nil, + nil, + 0, + "=~" + ), + CallNode(464...482)( + nil, + nil, + (464...467), + (467...468), + ArgumentsNode(468...481)( + [BlockArgumentNode(468...481)( + ParenthesesNode(469...481)( + StatementsNode(470...480)( + [OrNode(470...480)( + CallNode(470...473)( + nil, + nil, + (470...473), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(477...480)( + nil, + nil, + (477...480), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (474...476) + )] + ), + (469...470), + (480...481) + ), + (468...469) + )] + ), + (481...482), + nil, + 0, + "foo" + ), + CallNode(483...494)( + nil, + nil, + (483...486), + (486...487), + ArgumentsNode(487...493)( + [BlockArgumentNode(487...493)( + CallNode(488...493)( + nil, + nil, + (488...493), + nil, + nil, + nil, + nil, + 0, + "block" + ), + (487...488) + )] + ), + (493...494), + nil, + 0, + "foo" + ), + CallNode(495...513)( + nil, + nil, + (495...498), + (498...499), + ArgumentsNode(499...512)( + [SplatNode(499...504)( + (499...500), + CallNode(500...504)( + nil, + nil, + (500...504), + nil, + nil, + nil, + nil, + 0, + "args" + ) + ), + BlockArgumentNode(506...512)( + CallNode(507...512)( + nil, + nil, + (507...512), + nil, + nil, + nil, + nil, + 0, + "block" + ), + (506...507) + )] + ), + (512...513), + nil, + 0, + "foo" + ), + CallNode(514...529)( + nil, + nil, + (514...517), + (517...518), + ArgumentsNode(518...528)( + [SplatNode(518...528)( + (518...519), + CallNode(519...528)( + nil, + nil, + (519...528), + nil, + nil, + nil, + nil, + 0, + "arguments" + ) + )] + ), + (528...529), + nil, + 0, + "foo" + ), + CallNode(530...539)( + nil, + nil, + (530...533), + (533...534), + ArgumentsNode(534...538)( + [IntegerNode(534...535)(), IntegerNode(537...538)()] + ), + (538...539), + nil, + 0, + "foo" + ), + CallNode(540...548)( + nil, + nil, + (540...543), + (543...544), + ArgumentsNode(544...547)( + [CallNode(544...547)( + nil, + nil, + (544...547), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (547...548), + nil, + 0, + "foo" + ), + CallNode(549...564)( + nil, + nil, + (549...552), + (552...553), + ArgumentsNode(553...563)( + [CallNode(553...556)( + nil, + nil, + (553...556), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + SplatNode(558...563)( + (558...559), + CallNode(559...563)( + nil, + nil, + (559...563), + nil, + nil, + nil, + nil, + 0, + "args" + ) + )] + ), + (563...564), + nil, + 0, + "foo" + ), + CallNode(565...582)( + nil, + nil, + (565...568), + (568...569), + ArgumentsNode(569...581)( + [CallNode(569...581)( + CallNode(569...572)( + nil, + nil, + (569...572), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (573...575), + nil, + ArgumentsNode(576...581)( + [RegularExpressionNode(576...581)( + (576...577), + (577...580), + (580...581), + "bar", + 0 + )] + ), + nil, + nil, + 0, + "=~" + )] + ), + (581...582), + nil, + 0, + "foo" + ), + CallNode(583...596)( + CallNode(583...586)( + nil, + nil, + (583...586), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (586...587), + (587...590), + (590...591), + ArgumentsNode(591...595)( + [BlockArgumentNode(591...595)( + CallNode(592...595)( + nil, + nil, + (592...595), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (591...592) + )] + ), + (595...596), + nil, + 0, + "bar" + ), + CallNode(597...623)( + CallNode(597...600)( + nil, + nil, + (597...600), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (600...601), + (601...604), + (604...605), + ArgumentsNode(605...622)( + [SplatNode(605...610)( + (605...606), + CallNode(606...610)( + nil, + nil, + (606...610), + nil, + nil, + nil, + nil, + 0, + "arga" + ) + ), + CallNode(612...615)( + nil, + nil, + (612...615), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SplatNode(617...622)( + (617...618), + CallNode(618...622)( + nil, + nil, + (618...622), + nil, + nil, + nil, + nil, + 0, + "argb" + ) + )] + ), + (622...623), + nil, + 0, + "bar" + ), + CallNode(624...638)( + CallNode(624...627)( + nil, + nil, + (624...627), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (627...628), + (628...631), + (631...632), + ArgumentsNode(632...637)( + [SplatNode(632...637)( + (632...633), + CallNode(633...637)( + nil, + nil, + (633...637), + nil, + nil, + nil, + nil, + 0, + "args" + ) + )] + ), + (637...638), + nil, + 0, + "bar" + ), + CallNode(639...658)( + CallNode(639...642)( + nil, + nil, + (639...642), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (642...643), + (643...646), + (646...647), + ArgumentsNode(647...657)( + [SplatNode(647...652)( + (647...648), + CallNode(648...652)( + nil, + nil, + (648...652), + nil, + nil, + nil, + nil, + 0, + "args" + ) + ), + CallNode(654...657)( + nil, + nil, + (654...657), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (657...658), + nil, + 0, + "bar" + ), + CallNode(659...678)( + CallNode(659...662)( + nil, + nil, + (659...662), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (662...663), + (663...666), + (666...667), + ArgumentsNode(667...677)( + [SymbolNode(667...671)((667...668), (668...671), nil, "baz"), + BlockArgumentNode(673...677)( + CallNode(674...677)( + nil, + nil, + (674...677), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (673...674) + )] + ), + (677...678), + nil, + 0, + "bar" + ), + CallNode(679...696)( + CallNode(679...682)( + nil, + nil, + (679...682), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (682...683), + (683...686), + (686...687), + ArgumentsNode(687...695)( + [KeywordHashNode(687...695)( + [AssocNode(687...695)( + SymbolNode(687...691)(nil, (687...690), (690...691), "baz"), + CallNode(692...695)( + nil, + nil, + (692...695), + nil, + nil, + nil, + nil, + 0, + "boz" + ), + nil + )] + )] + ), + (695...696), + nil, + 0, + "bar" + ), + CallNode(697...723)( + CallNode(697...700)( + nil, + nil, + (697...700), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (700...701), + (701...704), + (704...705), + ArgumentsNode(705...722)( + [CallNode(705...708)( + nil, + nil, + (705...708), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + KeywordHashNode(710...722)( + [AssocNode(710...722)( + StringNode(710...715)( + (710...711), + (711...714), + (714...715), + "baz" + ), + CallNode(719...722)( + nil, + nil, + (719...722), + nil, + nil, + nil, + nil, + 0, + "boz" + ), + (716...718) + )] + )] + ), + (722...723), + nil, + 0, + "bar" + ), + CallNode(724...743)( + CallNode(724...727)( + nil, + nil, + (724...727), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (727...728), + (728...731), + (731...732), + ArgumentsNode(732...742)( + [CallNode(732...735)( + nil, + nil, + (732...735), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SplatNode(737...742)( + (737...738), + CallNode(738...742)( + nil, + nil, + (738...742), + nil, + nil, + nil, + nil, + 0, + "args" + ) + )] + ), + (742...743), + nil, + 0, + "bar" + ), + CallNode(744...771)( + CallNode(744...747)( + nil, + nil, + (744...747), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (747...748), + (748...751), + (751...752), + ArgumentsNode(752...770)( + [CallNode(752...755)( + nil, + nil, + (752...755), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + SplatNode(757...762)( + (757...758), + CallNode(758...762)( + nil, + nil, + (758...762), + nil, + nil, + nil, + nil, + 0, + "args" + ) + ), + BlockArgumentNode(764...770)( + CallNode(765...770)( + nil, + nil, + (765...770), + nil, + nil, + nil, + nil, + 0, + "block" + ), + (764...765) + )] + ), + (770...771), + nil, + 0, + "bar" + ), + CallNode(772...788)( + CallNode(772...775)( + nil, + nil, + (772...775), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (775...776), + (776...779), + (779...780), + ArgumentsNode(780...787)( + [CallNode(780...783)( + nil, + nil, + (780...783), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + HashNode(785...787)((785...786), [], (786...787))] + ), + (787...788), + nil, + 0, + "bar" + ), + CallNode(789...815)( + CallNode(789...792)( + nil, + nil, + (789...792), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (792...793), + (793...796), + (796...797), + ArgumentsNode(797...814)( + [HashNode(797...809)( + (797...798), + [AssocNode(799...807)( + SymbolNode(799...803)(nil, (799...802), (802...803), "foo"), + CallNode(804...807)( + nil, + nil, + (804...807), + nil, + nil, + nil, + nil, + 0, + "boz" + ), + nil + )], + (808...809) + ), + CallNode(811...814)( + nil, + nil, + (811...814), + nil, + nil, + nil, + nil, + 0, + "boz" + )] + ), + (814...815), + nil, + 0, + "bar" + ), + CallNode(816...828)( + CallNode(816...819)( + nil, + nil, + (816...819), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (819...820), + (820...823), + nil, + ArgumentsNode(824...828)( + [SymbolNode(824...828)((824...825), (825...828), nil, "baz")] + ), + nil, + nil, + 0, + "bar=" + ), + CallNode(829...838)( + nil, + nil, + (829...832), + (832...833), + ArgumentsNode(833...837)( + [KeywordHashNode(833...837)( + [AssocNode(833...837)( + SymbolNode(833...835)(nil, (833...834), (834...835), "a"), + CallNode(836...837)( + nil, + nil, + (836...837), + nil, + nil, + nil, + nil, + 0, + "b" + ), + nil + )] + )] + ), + (837...838), + nil, + 0, + "foo" + ), + CallNode(839...850)( + CallNode(839...842)( + nil, + nil, + (839...842), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (842...843), + (843...844), + (844...845), + ArgumentsNode(845...849)( + [KeywordHashNode(845...849)( + [AssocNode(845...849)( + SymbolNode(845...847)(nil, (845...846), (846...847), "a"), + CallNode(848...849)( + nil, + nil, + (848...849), + nil, + nil, + nil, + nil, + 0, + "b" + ), + nil + )] + )] + ), + (849...850), + nil, + 0, + "&" + ), + CallNode(851...861)( + CallNode(851...854)( + nil, + nil, + (851...854), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (854...855), + (855...856), + (856...857), + ArgumentsNode(857...860)( + [KeywordHashNode(857...860)( + [AssocSplatNode(857...860)( + CallNode(859...860)( + nil, + nil, + (859...860), + nil, + nil, + nil, + nil, + 0, + "a" + ), + (857...859) + )] + )] + ), + (860...861), + nil, + 0, + "&" + ), + CallNode(862...871)( + CallNode(862...865)( + nil, + nil, + (862...865), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (865...871), + (865...866), + ArgumentsNode(866...870)( + [SplatNode(866...870)( + (866...867), + CallNode(867...870)( + nil, + nil, + (867...870), + nil, + nil, + nil, + nil, + 0, + "baz" + ) + )] + ), + (870...871), + nil, + 0, + "[]" + ), + CallNode(872...881)( + CallNode(872...875)( + nil, + nil, + (872...875), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (875...881), + (875...876), + ArgumentsNode(876...880)( + [IntegerNode(876...877)(), IntegerNode(879...880)()] + ), + (880...881), + nil, + 0, + "[]" + ), + CallNode(882...887)( + CallNode(882...885)( + nil, + nil, + (882...885), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (885...887), + (885...886), + nil, + (886...887), + nil, + 0, + "[]" + ), + CallNode(888...896)( + SelfNode(888...892)(), + (892...893), + (893...896), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(897...910)( + SelfNode(897...901)(), + (901...902), + (902...905), + nil, + ArgumentsNode(906...910)( + [SymbolNode(906...910)((906...907), (907...910), nil, "bar")] + ), + nil, + nil, + 0, + "foo=" + ), + CallNode(911...928)( + ParenthesesNode(911...918)( + StatementsNode(912...917)( + [CallNode(912...917)( + CallNode(912...913)( + nil, + nil, + (912...913), + nil, + nil, + nil, + nil, + 0, + "a" + ), + nil, + (914...915), + nil, + ArgumentsNode(916...917)( + [CallNode(916...917)( + nil, + nil, + (916...917), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil, + nil, + 0, + "+" + )] + ), + (911...912), + (917...918) + ), + nil, + (919...920), + nil, + ArgumentsNode(921...928)( + [ParenthesesNode(921...928)( + StatementsNode(922...927)( + [CallNode(922...927)( + CallNode(922...923)( + nil, + nil, + (922...923), + nil, + nil, + nil, + nil, + 0, + "c" + ), + nil, + (924...925), + nil, + ArgumentsNode(926...927)( + [CallNode(926...927)( + nil, + nil, + (926...927), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "-" + )] + ), + (921...922), + (927...928) + )] + ), + nil, + nil, + 0, + "/" + ), + CallNode(929...948)( + ParenthesesNode(929...936)( + StatementsNode(930...935)( + [CallNode(930...935)( + CallNode(930...931)( + nil, + nil, + (930...931), + nil, + nil, + nil, + nil, + 0, + "a" + ), + nil, + (932...933), + nil, + ArgumentsNode(934...935)( + [CallNode(934...935)( + nil, + nil, + (934...935), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil, + nil, + 0, + "+" + )] + ), + (929...930), + (935...936) + ), + nil, + (937...938), + nil, + ArgumentsNode(939...948)( + [CallNode(939...948)( + CallNode(939...940)( + nil, + nil, + (939...940), + nil, + nil, + nil, + nil, + 0, + "c" + ), + (940...941), + (941...942), + (942...943), + ArgumentsNode(943...947)( + [CallNode(943...944)( + nil, + nil, + (943...944), + nil, + nil, + nil, + nil, + 0, + "e" + ), + CallNode(946...947)( + nil, + nil, + (946...947), + nil, + nil, + nil, + nil, + 0, + "f" + )] + ), + (947...948), + nil, + 0, + "-" + )] + ), + nil, + nil, + 0, + "/" + ), + CallNode(949...966)( + ParenthesesNode(949...956)( + StatementsNode(950...955)( + [CallNode(950...955)( + CallNode(950...951)( + nil, + nil, + (950...951), + nil, + nil, + nil, + nil, + 0, + "a" + ), + nil, + (952...953), + nil, + ArgumentsNode(954...955)( + [CallNode(954...955)( + nil, + nil, + (954...955), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil, + nil, + 0, + "+" + )] + ), + (949...950), + (955...956) + ), + nil, + (957...958), + nil, + ArgumentsNode(959...966)( + [CallNode(959...966)( + CallNode(959...960)( + nil, + nil, + (959...960), + nil, + nil, + nil, + nil, + 0, + "c" + ), + (960...961), + (961...962), + (962...963), + ArgumentsNode(963...965)( + [SplatNode(963...965)( + (963...964), + CallNode(964...965)( + nil, + nil, + (964...965), + nil, + nil, + nil, + nil, + 0, + "f" + ) + )] + ), + (965...966), + nil, + 0, + "-" + )] + ), + nil, + nil, + 0, + "/" + ), + CallNode(967...975)( + nil, + nil, + (967...968), + (968...969), + ArgumentsNode(969...974)( + [KeywordHashNode(969...974)( + [AssocSplatNode(969...974)( + CallNode(971...974)( + nil, + nil, + (971...974), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (969...971) + )] + )] + ), + (974...975), + nil, + 0, + "x" + ), + CallNode(976...982)( + CallNode(976...979)( + nil, + nil, + (976...979), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (979...981), + (981...982), + nil, + nil, + nil, + nil, + 1, + "!" + ), + CallNode(983...991)( + CallNode(983...986)( + nil, + nil, + (983...986), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + (986...987), + (987...988), + (988...989), + ArgumentsNode(989...990)( + [CallNode(989...990)( + nil, + nil, + (989...990), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (990...991), + nil, + 0, + "~" + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/since/27.txt b/test/yarp/snapshots/unparser/corpus/literal/since/27.txt new file mode 100644 index 0000000000..0f2e6cc90c --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/since/27.txt @@ -0,0 +1,42 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [LambdaNode(0...16)( + [], + (0...2), + nil, + StatementsNode(7...14)( + [CallNode(7...14)( + CallNode(7...9)(nil, nil, (7...9), nil, nil, nil, nil, 0, "_1"), + nil, + (10...11), + nil, + ArgumentsNode(12...14)( + [CallNode(12...14)( + nil, + nil, + (12...14), + nil, + nil, + nil, + nil, + 0, + "_2" + )] + ), + nil, + nil, + 0, + "+" + )] + ) + ), + ParenthesesNode(17...22)( + StatementsNode(18...21)( + [RangeNode(18...21)(nil, IntegerNode(20...21)(), (18...20), 0)] + ), + (17...18), + (21...22) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/since/30.txt b/test/yarp/snapshots/unparser/corpus/literal/since/30.txt new file mode 100644 index 0000000000..15d5136d83 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/since/30.txt @@ -0,0 +1,56 @@ +ProgramNode(0...51)( + [:a, :foo], + StatementsNode(0...51)( + [MatchRequiredNode(0...8)( + IntegerNode(0...1)(), + ArrayPatternNode(5...8)( + nil, + [LocalVariableWriteNode(6...7)(:a, 0, nil, (6...7), nil)], + nil, + [], + (5...6), + (7...8) + ), + (2...4) + ), + MatchRequiredNode(9...17)( + IntegerNode(9...10)(), + ArrayPatternNode(14...17)( + nil, + [], + SplatNode(15...16)((15...16), nil), + [], + (14...15), + (16...17) + ), + (11...13) + ), + MatchPredicateNode(18...33)( + IntegerNode(18...19)(), + FindPatternNode(23...33)( + nil, + SplatNode(24...25)((24...25), nil), + [IntegerNode(27...29)()], + SplatNode(31...32)((31...32), nil), + (23...24), + (32...33) + ), + (20...22) + ), + MatchPredicateNode(34...51)( + IntegerNode(34...35)(), + FindPatternNode(39...51)( + nil, + SplatNode(40...41)((40...41), nil), + [LocalVariableWriteNode(43...44)(:a, 0, nil, (43...44), nil)], + SplatNode(46...50)( + (46...47), + LocalVariableWriteNode(47...50)(:foo, 0, nil, (47...50), nil) + ), + (39...40), + (50...51) + ), + (36...38) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/since/31.txt b/test/yarp/snapshots/unparser/corpus/literal/since/31.txt new file mode 100644 index 0000000000..b646850e2b --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/since/31.txt @@ -0,0 +1,75 @@ +ProgramNode(0...51)( + [], + StatementsNode(0...51)( + [DefNode(0...23)( + (4...7), + nil, + ParametersNode(8...9)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(8...9)(nil, (8...9)) + ), + StatementsNode(13...19)( + [CallNode(13...19)( + nil, + nil, + (13...16), + (16...17), + ArgumentsNode(17...18)( + [BlockArgumentNode(17...18)(nil, (17...18))] + ), + (18...19), + nil, + 0, + "bar" + )] + ), + [:&], + (0...3), + nil, + (7...8), + (9...10), + nil, + (20...23) + ), + DefNode(25...51)( + (29...32), + nil, + ParametersNode(33...37)( + [RequiredParameterNode(33...34)(:a)], + [], + [], + nil, + [], + nil, + BlockParameterNode(36...37)(nil, (36...37)) + ), + StatementsNode(41...47)( + [CallNode(41...47)( + nil, + nil, + (41...44), + (44...45), + ArgumentsNode(45...46)( + [BlockArgumentNode(45...46)(nil, (45...46))] + ), + (46...47), + nil, + 0, + "bar" + )] + ), + [:a, :&], + (25...28), + nil, + (32...33), + (37...38), + nil, + (48...51) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/since/32.txt b/test/yarp/snapshots/unparser/corpus/literal/since/32.txt new file mode 100644 index 0000000000..31397bf468 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/since/32.txt @@ -0,0 +1,79 @@ +ProgramNode(0...90)( + [], + StatementsNode(0...90)( + [DefNode(0...45)( + (4...7), + nil, + ParametersNode(8...20)( + [RequiredParameterNode(8...16)(:argument)], + [], + [], + nil, + [], + KeywordRestParameterNode(18...20)((18...20), nil), + nil + ), + StatementsNode(24...41)( + [CallNode(24...41)( + nil, + nil, + (24...27), + (27...28), + ArgumentsNode(28...40)( + [LocalVariableReadNode(28...36)(:argument, 0), + KeywordHashNode(38...40)( + [AssocSplatNode(38...40)(nil, (38...40))] + )] + ), + (40...41), + nil, + 0, + "bar" + )] + ), + [:argument, :**], + (0...3), + nil, + (7...8), + (20...21), + nil, + (42...45) + ), + DefNode(47...90)( + (51...54), + nil, + ParametersNode(55...66)( + [RequiredParameterNode(55...63)(:argument)], + [], + [], + RestParameterNode(65...66)((65...66), nil), + [], + nil, + nil + ), + StatementsNode(70...86)( + [CallNode(70...86)( + nil, + nil, + (70...73), + (73...74), + ArgumentsNode(74...85)( + [LocalVariableReadNode(74...82)(:argument, 0), + SplatNode(84...85)((84...85), nil)] + ), + (85...86), + nil, + 0, + "bar" + )] + ), + [:argument, :*], + (47...50), + nil, + (54...55), + (66...67), + nil, + (87...90) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/singletons.txt b/test/yarp/snapshots/unparser/corpus/literal/singletons.txt new file mode 100644 index 0000000000..53cc92e636 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/singletons.txt @@ -0,0 +1,9 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [FalseNode(0...5)(), + NilNode(6...9)(), + SelfNode(10...14)(), + TrueNode(15...19)()] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/super.txt b/test/yarp/snapshots/unparser/corpus/literal/super.txt new file mode 100644 index 0000000000..6a06faa9cf --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/super.txt @@ -0,0 +1,239 @@ +ProgramNode(0...159)( + [], + StatementsNode(0...159)( + [ForwardingSuperNode(0...5)(nil), + SuperNode(6...13)((6...11), (11...12), nil, (12...13), nil), + SuperNode(14...22)( + (14...19), + (19...20), + ArgumentsNode(20...21)( + [CallNode(20...21)(nil, nil, (20...21), nil, nil, nil, nil, 0, "a")] + ), + (21...22), + nil + ), + SuperNode(23...34)( + (23...28), + (28...29), + ArgumentsNode(29...33)( + [CallNode(29...30)(nil, nil, (29...30), nil, nil, nil, nil, 0, "a"), + CallNode(32...33)(nil, nil, (32...33), nil, nil, nil, nil, 0, "b")] + ), + (33...34), + nil + ), + SuperNode(35...48)( + (35...40), + (40...41), + ArgumentsNode(41...47)( + [BlockArgumentNode(41...47)( + CallNode(42...47)( + nil, + nil, + (42...47), + nil, + nil, + nil, + nil, + 0, + "block" + ), + (41...42) + )] + ), + (47...48), + nil + ), + SuperNode(49...65)( + (49...54), + (54...55), + ArgumentsNode(55...64)( + [CallNode(55...56)(nil, nil, (55...56), nil, nil, nil, nil, 0, "a"), + BlockArgumentNode(58...64)( + CallNode(59...64)( + nil, + nil, + (59...64), + nil, + nil, + nil, + nil, + 0, + "block" + ), + (58...59) + )] + ), + (64...65), + nil + ), + SuperNode(66...84)( + (66...71), + (71...72), + ArgumentsNode(72...83)( + [CallNode(72...83)( + nil, + nil, + (72...73), + nil, + nil, + nil, + BlockNode(74...83)( + [], + nil, + StatementsNode(78...81)( + [CallNode(78...81)( + nil, + nil, + (78...81), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (74...75), + (82...83) + ), + 0, + "a" + )] + ), + (83...84), + nil + ), + ForwardingSuperNode(85...100)( + BlockNode(91...100)( + [], + nil, + StatementsNode(95...98)( + [CallNode(95...98)( + nil, + nil, + (95...98), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (91...92), + (99...100) + ) + ), + SuperNode(101...119)( + (101...106), + (106...107), + ArgumentsNode(107...108)( + [CallNode(107...108)( + nil, + nil, + (107...108), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + (108...109), + BlockNode(110...119)( + [], + nil, + StatementsNode(114...117)( + [CallNode(114...117)( + nil, + nil, + (114...117), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (110...111), + (118...119) + ) + ), + SuperNode(120...137)( + (120...125), + (125...126), + nil, + (126...127), + BlockNode(128...137)( + [], + nil, + StatementsNode(132...135)( + [CallNode(132...135)( + nil, + nil, + (132...135), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (128...129), + (136...137) + ) + ), + SuperNode(138...159)( + (138...143), + (143...144), + ArgumentsNode(144...148)( + [CallNode(144...145)( + nil, + nil, + (144...145), + nil, + nil, + nil, + nil, + 0, + "a" + ), + CallNode(147...148)( + nil, + nil, + (147...148), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (148...149), + BlockNode(150...159)( + [], + nil, + StatementsNode(154...157)( + [CallNode(154...157)( + nil, + nil, + (154...157), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (150...151), + (158...159) + ) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/unary.txt b/test/yarp/snapshots/unparser/corpus/literal/unary.txt new file mode 100644 index 0000000000..ac41353770 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/unary.txt @@ -0,0 +1,217 @@ +ProgramNode(0...54)( + [], + StatementsNode(0...54)( + [CallNode(0...2)( + IntegerNode(1...2)(), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(3...8)( + ParenthesesNode(4...8)( + StatementsNode(5...7)( + [CallNode(5...7)( + IntegerNode(6...7)(), + nil, + (5...6), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ), + (4...5), + (7...8) + ), + nil, + (3...4), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(9...25)( + ParenthesesNode(10...25)( + StatementsNode(11...24)( + [CallNode(11...24)( + ParenthesesNode(12...24)( + StatementsNode(13...23)( + [OrNode(13...23)( + CallNode(13...16)( + nil, + nil, + (13...16), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(20...23)( + nil, + nil, + (20...23), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (17...19) + )] + ), + (12...13), + (23...24) + ), + nil, + (11...12), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ), + (10...11), + (24...25) + ), + nil, + (9...10), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(26...35)( + CallNode(27...35)( + ParenthesesNode(27...31)( + StatementsNode(28...30)( + [CallNode(28...30)( + IntegerNode(29...30)(), + nil, + (28...29), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ), + (27...28), + (30...31) + ), + (31...32), + (32...35), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + nil, + (26...27), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(36...38)( + CallNode(37...38)(nil, nil, (37...38), nil, nil, nil, nil, 0, "a"), + nil, + (36...37), + nil, + nil, + nil, + nil, + 0, + "~" + ), + CallNode(39...41)( + CallNode(40...41)(nil, nil, (40...41), nil, nil, nil, nil, 0, "a"), + nil, + (39...40), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + CallNode(42...44)( + CallNode(43...44)(nil, nil, (43...44), nil, nil, nil, nil, 0, "a"), + nil, + (42...43), + nil, + nil, + nil, + nil, + 0, + "+@" + ), + CallNode(45...54)( + CallNode(46...54)( + ParenthesesNode(46...50)( + StatementsNode(47...49)( + [CallNode(47...49)( + CallNode(48...49)( + nil, + nil, + (48...49), + nil, + nil, + nil, + nil, + 0, + "a" + ), + nil, + (47...48), + nil, + nil, + nil, + nil, + 0, + "-@" + )] + ), + (46...47), + (49...50) + ), + (50...51), + (51...54), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (45...46), + nil, + nil, + nil, + nil, + 0, + "-@" + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/undef.txt b/test/yarp/snapshots/unparser/corpus/literal/undef.txt new file mode 100644 index 0000000000..30e513d19e --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/undef.txt @@ -0,0 +1,14 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [UndefNode(0...10)( + [SymbolNode(6...10)((6...7), (7...10), nil, "foo")], + (0...5) + ), + UndefNode(11...27)( + [SymbolNode(17...21)((17...18), (18...21), nil, "foo"), + SymbolNode(23...27)((23...24), (24...27), nil, "bar")], + (11...16) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/variables.txt b/test/yarp/snapshots/unparser/corpus/literal/variables.txt new file mode 100644 index 0000000000..1cf71a2360 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/variables.txt @@ -0,0 +1,23 @@ +ProgramNode(0...66)( + [], + StatementsNode(0...66)( + [CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + InstanceVariableReadNode(2...4)(), + ClassVariableReadNode(5...8)(), + GlobalVariableReadNode(9...11)(), + NumberedReferenceReadNode(12...14)(), + BackReferenceReadNode(15...17)(), + ConstantReadNode(18...23)(), + ConstantPathNode(24...37)( + ConstantReadNode(24...30)(), + ConstantReadNode(32...37)(), + (30...32) + ), + ConstantPathNode(38...48)(nil, ConstantReadNode(40...48)(), (38...40)), + ConstantPathNode(49...66)( + ConstantPathNode(49...59)(nil, ConstantReadNode(51...59)(), (49...51)), + ConstantReadNode(61...66)(), + (59...61) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/while.txt b/test/yarp/snapshots/unparser/corpus/literal/while.txt new file mode 100644 index 0000000000..a08e9696dd --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/while.txt @@ -0,0 +1,599 @@ +ProgramNode(0...620)( + [:x], + StatementsNode(0...620)( + [ModuleNode(0...68)( + [], + (0...6), + ConstantReadNode(7...8)(), + StatementsNode(11...64)( + [CallNode(11...64)( + nil, + nil, + (11...14), + nil, + nil, + nil, + BlockNode(15...64)( + [:bar, :foo], + BlockParametersNode(17...22)( + ParametersNode(18...21)( + [RequiredParameterNode(18...21)(:bar)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (17...18), + (21...22) + ), + StatementsNode(27...60)( + [WhileNode(27...60)( + (27...32), + CallNode(33...36)( + nil, + nil, + (33...36), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StatementsNode(43...52)( + [LocalVariableWriteNode(43...52)( + :foo, + 0, + LocalVariableReadNode(49...52)(:bar, 0), + (43...46), + (47...48) + )] + ) + )] + ), + (15...16), + (63...64) + ), + 0, + "foo" + )] + ), + (65...68) + ), + DefNode(70...110)( + (74...77), + nil, + nil, + StatementsNode(80...106)( + [WhileNode(80...106)( + (90...95), + CallNode(96...106)( + LocalVariableReadNode(96...99)(:foo, 0), + nil, + (100...102), + nil, + ArgumentsNode(103...106)( + [CallNode(103...106)( + nil, + nil, + (103...106), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil, + nil, + 0, + "!=" + ), + StatementsNode(80...89)( + [LocalVariableWriteNode(80...89)( + :foo, + 0, + CallNode(86...89)( + nil, + nil, + (86...89), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (80...83), + (84...85) + )] + ) + )] + ), + [:foo], + (70...73), + nil, + nil, + nil, + nil, + (107...110) + ), + ModuleNode(112...146)( + [:foo], + (112...118), + ConstantReadNode(119...120)(), + StatementsNode(123...142)( + [WhileNode(123...142)( + (133...138), + LocalVariableReadNode(139...142)(:foo, 0), + StatementsNode(123...132)( + [LocalVariableWriteNode(123...132)( + :foo, + 0, + CallNode(129...132)( + nil, + nil, + (129...132), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (123...126), + (127...128) + )] + ) + )] + ), + (143...146) + ), + ModuleNode(148...182)( + [:foo], + (148...154), + ConstantReadNode(155...156)(), + StatementsNode(159...178)( + [UntilNode(159...178)( + (169...174), + LocalVariableReadNode(175...178)(:foo, 0), + StatementsNode(159...168)( + [LocalVariableWriteNode(159...168)( + :foo, + 0, + CallNode(165...168)( + nil, + nil, + (165...168), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (159...162), + (163...164) + )] + ) + )] + ), + (179...182) + ), + ModuleNode(184...228)( + [:foo], + (184...190), + ConstantReadNode(191...192)(), + StatementsNode(195...224)( + [WhileNode(195...224)( + (195...200), + CallNode(201...204)( + nil, + nil, + (201...204), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StatementsNode(209...218)( + [LocalVariableWriteNode(209...218)( + :foo, + 0, + CallNode(215...218)( + nil, + nil, + (215...218), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (209...212), + (213...214) + )] + ) + )] + ), + (225...228) + ), + ModuleNode(230...299)( + [], + (230...236), + ConstantReadNode(237...238)(), + StatementsNode(241...295)( + [CallNode(241...295)( + nil, + nil, + (241...245), + nil, + nil, + nil, + BlockNode(246...295)( + [:baz, :foo], + BlockParametersNode(248...253)( + ParametersNode(249...252)( + [RequiredParameterNode(249...252)(:baz)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (248...249), + (252...253) + ), + StatementsNode(258...291)( + [WhileNode(258...291)( + (258...263), + CallNode(264...267)( + nil, + nil, + (264...267), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + StatementsNode(274...283)( + [LocalVariableWriteNode(274...283)( + :foo, + 0, + CallNode(280...283)( + nil, + nil, + (280...283), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (274...277), + (278...279) + )] + ) + )] + ), + (246...247), + (294...295) + ), + 0, + "each" + )] + ), + (296...299) + ), + ModuleNode(301...370)( + [], + (301...307), + ConstantReadNode(308...309)(), + StatementsNode(312...366)( + [CallNode(312...366)( + nil, + nil, + (312...316), + nil, + nil, + nil, + BlockNode(317...366)( + [:foo], + BlockParametersNode(319...324)( + ParametersNode(320...323)( + [RequiredParameterNode(320...323)(:foo)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (319...320), + (323...324) + ), + StatementsNode(329...362)( + [WhileNode(329...362)( + (329...334), + LocalVariableReadNode(335...338)(:foo, 0), + StatementsNode(345...354)( + [LocalVariableWriteNode(345...354)( + :foo, + 0, + CallNode(351...354)( + nil, + nil, + (351...354), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (345...348), + (349...350) + )] + ) + )] + ), + (317...318), + (365...366) + ), + 0, + "each" + )] + ), + (367...370) + ), + LocalVariableWriteNode(371...402)( + :x, + 0, + ParenthesesNode(375...402)( + StatementsNode(376...401)( + [WhileNode(376...401)( + (392...397), + CallNode(398...401)( + nil, + nil, + (398...401), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + StatementsNode(376...391)( + [BeginNode(376...391)( + (376...381), + StatementsNode(384...387)( + [CallNode(384...387)( + nil, + nil, + (384...387), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil, + nil, + (388...391) + )] + ) + )] + ), + (375...376), + (401...402) + ), + (371...372), + (373...374) + ), + WhileNode(403...428)( + (419...424), + CallNode(425...428)( + nil, + nil, + (425...428), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + StatementsNode(403...418)( + [BeginNode(403...418)( + (403...408), + StatementsNode(411...414)( + [CallNode(411...414)( + nil, + nil, + (411...414), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil, + nil, + (415...418) + )] + ) + ), + UntilNode(429...460)( + (451...456), + CallNode(457...460)( + nil, + nil, + (457...460), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + StatementsNode(429...450)( + [BeginNode(429...450)( + (429...434), + StatementsNode(437...446)( + [CallNode(437...440)( + nil, + nil, + (437...440), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(443...446)( + nil, + nil, + (443...446), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + nil, + (447...450) + )] + ) + ), + WhileNode(461...492)( + (483...488), + CallNode(489...492)( + nil, + nil, + (489...492), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + StatementsNode(461...482)( + [BeginNode(461...482)( + (461...466), + StatementsNode(469...478)( + [CallNode(469...472)( + nil, + nil, + (469...472), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(475...478)( + nil, + nil, + (475...478), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + nil, + (479...482) + )] + ) + ), + WhileNode(493...508)((493...498), FalseNode(499...504)(), nil), + WhileNode(509...528)( + (509...514), + FalseNode(515...520)(), + StatementsNode(523...524)([IntegerNode(523...524)()]) + ), + WhileNode(529...556)( + (529...534), + ParenthesesNode(535...544)( + StatementsNode(536...543)( + [CallNode(536...543)( + nil, + nil, + (536...539), + nil, + nil, + nil, + BlockNode(540...543)([], nil, nil, (540...541), (542...543)), + 0, + "foo" + )] + ), + (535...536), + (543...544) + ), + StatementsNode(547...552)( + [SymbolNode(547...552)((547...548), (548...552), nil, "body")] + ) + ), + UntilNode(557...572)((557...562), FalseNode(563...568)(), nil), + UntilNode(573...592)( + (573...578), + FalseNode(579...584)(), + StatementsNode(587...588)([IntegerNode(587...588)()]) + ), + UntilNode(593...620)( + (593...598), + ParenthesesNode(599...608)( + StatementsNode(600...607)( + [CallNode(600...607)( + nil, + nil, + (600...603), + nil, + nil, + nil, + BlockNode(604...607)([], nil, nil, (604...605), (606...607)), + 0, + "foo" + )] + ), + (599...600), + (607...608) + ), + StatementsNode(611...616)( + [SymbolNode(611...616)((611...612), (612...616), nil, "body")] + ) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/literal/yield.txt b/test/yarp/snapshots/unparser/corpus/literal/yield.txt new file mode 100644 index 0000000000..224659ffb1 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/literal/yield.txt @@ -0,0 +1,23 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [YieldNode(0...5)((0...5), nil, nil, nil), + YieldNode(6...14)( + (6...11), + (11...12), + ArgumentsNode(12...13)( + [CallNode(12...13)(nil, nil, (12...13), nil, nil, nil, nil, 0, "a")] + ), + (13...14) + ), + YieldNode(15...26)( + (15...20), + (20...21), + ArgumentsNode(21...25)( + [CallNode(21...22)(nil, nil, (21...22), nil, nil, nil, nil, 0, "a"), + CallNode(24...25)(nil, nil, (24...25), nil, nil, nil, nil, 0, "b")] + ), + (25...26) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/and.txt b/test/yarp/snapshots/unparser/corpus/semantic/and.txt new file mode 100644 index 0000000000..470615af51 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/and.txt @@ -0,0 +1,77 @@ +ProgramNode(0...77)( + [], + StatementsNode(0...77)( + [OrNode(0...14)( + RangeNode(0...5)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "b"), + (1...4), + 1 + ), + RangeNode(9...14)( + CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 0, "c"), + CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 0, "d"), + (10...13), + 1 + ), + (6...8) + ), + AndNode(15...30)( + RangeNode(15...20)( + CallNode(15...16)(nil, nil, (15...16), nil, nil, nil, nil, 0, "a"), + CallNode(19...20)(nil, nil, (19...20), nil, nil, nil, nil, 0, "b"), + (16...19), + 1 + ), + RangeNode(25...30)( + CallNode(25...26)(nil, nil, (25...26), nil, nil, nil, nil, 0, "c"), + CallNode(29...30)(nil, nil, (29...30), nil, nil, nil, nil, 0, "d"), + (26...29), + 1 + ), + (21...24) + ), + IfNode(32...53)( + (32...34), + OrNode(35...49)( + RangeNode(35...40)( + CallNode(35...36)(nil, nil, (35...36), nil, nil, nil, nil, 0, "a"), + CallNode(39...40)(nil, nil, (39...40), nil, nil, nil, nil, 0, "b"), + (36...39), + 1 + ), + RangeNode(44...49)( + CallNode(44...45)(nil, nil, (44...45), nil, nil, nil, nil, 0, "c"), + CallNode(48...49)(nil, nil, (48...49), nil, nil, nil, nil, 0, "d"), + (45...48), + 1 + ), + (41...43) + ), + nil, + nil, + (50...53) + ), + IfNode(55...77)( + (55...57), + AndNode(58...73)( + RangeNode(58...63)( + CallNode(58...59)(nil, nil, (58...59), nil, nil, nil, nil, 0, "a"), + CallNode(62...63)(nil, nil, (62...63), nil, nil, nil, nil, 0, "b"), + (59...62), + 1 + ), + RangeNode(68...73)( + CallNode(68...69)(nil, nil, (68...69), nil, nil, nil, nil, 0, "c"), + CallNode(72...73)(nil, nil, (72...73), nil, nil, nil, nil, 0, "d"), + (69...72), + 1 + ), + (64...67) + ), + nil, + nil, + (74...77) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/block.txt b/test/yarp/snapshots/unparser/corpus/semantic/block.txt new file mode 100644 index 0000000000..c4b2d1ab4c --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/block.txt @@ -0,0 +1,165 @@ +ProgramNode(0...148)( + [], + StatementsNode(0...148)( + [CallNode(0...10)( + nil, + nil, + (0...3), + nil, + nil, + nil, + BlockNode(4...10)([], nil, nil, (4...6), (7...10)), + 0, + "foo" + ), + CallNode(12...29)( + nil, + nil, + (12...15), + nil, + nil, + nil, + BlockNode(16...29)( + [], + nil, + BeginNode(19...29)( + nil, + nil, + RescueNode(19...25)((19...25), [], nil, nil, nil, nil), + nil, + nil, + (26...29) + ), + (16...18), + (26...29) + ), + 0, + "foo" + ), + CallNode(31...64)( + nil, + nil, + (31...34), + nil, + nil, + nil, + BlockNode(35...64)( + [], + nil, + StatementsNode(40...60)( + [RescueModifierNode(40...54)( + NilNode(40...43)(), + (44...50), + NilNode(51...54)() + ), + NilNode(57...60)()] + ), + (35...37), + (61...64) + ), + 0, + "foo" + ), + CallNode(66...80)( + nil, + nil, + (66...69), + nil, + nil, + nil, + BlockNode(70...80)( + [:a], + BlockParametersNode(73...76)( + ParametersNode(74...75)( + [RequiredParameterNode(74...75)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (73...74), + (75...76) + ), + nil, + (70...72), + (77...80) + ), + 0, + "foo" + ), + CallNode(82...116)( + nil, + nil, + (82...85), + (85...86), + ArgumentsNode(86...109)( + [InterpolatedStringNode(86...109)( + (86...92), + [StringNode(101...105)(nil, (101...105), nil, " b\n")], + (105...109) + )] + ), + (92...93), + BlockNode(94...116)( + [:a], + BlockParametersNode(97...100)( + ParametersNode(98...99)( + [RequiredParameterNode(98...99)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (97...98), + (99...100) + ), + StatementsNode(111...112)([LocalVariableReadNode(111...112)(:a, 0)]), + (94...96), + (113...116) + ), + 0, + "foo" + ), + CallNode(118...148)( + nil, + nil, + (118...121), + (121...122), + ArgumentsNode(122...141)( + [InterpolatedStringNode(122...141)( + (122...128), + [StringNode(133...137)(nil, (133...137), nil, " b\n")], + (137...141) + )] + ), + (128...129), + BlockNode(130...148)( + [], + nil, + StatementsNode(143...144)( + [CallNode(143...144)( + nil, + nil, + (143...144), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + (130...132), + (145...148) + ), + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/def.txt b/test/yarp/snapshots/unparser/corpus/semantic/def.txt new file mode 100644 index 0000000000..922dbc5a45 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/def.txt @@ -0,0 +1,77 @@ +ProgramNode(0...55)( + [], + StatementsNode(0...55)( + [DefNode(0...21)( + (4...7), + nil, + nil, + StatementsNode(10...17)( + [ParenthesesNode(10...17)( + StatementsNode(11...16)( + [CallNode(11...16)( + CallNode(11...12)( + nil, + nil, + (11...12), + nil, + nil, + nil, + nil, + 0, + "a" + ), + nil, + (13...14), + nil, + ArgumentsNode(15...16)( + [CallNode(15...16)( + nil, + nil, + (15...16), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil, + nil, + 0, + "-" + )] + ), + (10...11), + (16...17) + )] + ), + [], + (0...3), + nil, + nil, + nil, + nil, + (18...21) + ), + DefNode(23...55)( + (27...30), + nil, + nil, + StatementsNode(33...51)( + [RescueModifierNode(33...51)( + CallNode(33...34)(nil, nil, (33...34), nil, nil, nil, nil, 0, "a"), + (35...41), + ConstantReadNode(42...51)() + )] + ), + [], + (23...26), + nil, + nil, + nil, + nil, + (52...55) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/dstr.txt b/test/yarp/snapshots/unparser/corpus/semantic/dstr.txt new file mode 100644 index 0000000000..b3ea49149c --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/dstr.txt @@ -0,0 +1,257 @@ +ProgramNode(0...608)( + [], + StatementsNode(0...608)( + [InterpolatedStringNode(0...10)((0...5), [], (6...10)), + InterpolatedStringNode(11...23)((11...18), [], (19...23)), + InterpolatedStringNode(24...35)((24...30), [], (31...35)), + InterpolatedStringNode(36...49)((36...44), [], (45...49)), + InterpolatedStringNode(50...64)( + (50...55), + [StringNode(56...60)(nil, (56...60), nil, " a\n")], + (60...64) + ), + InterpolatedStringNode(65...81)( + (65...72), + [StringNode(73...77)(nil, (73...77), nil, " a\n")], + (77...81) + ), + InterpolatedStringNode(82...102)( + (82...87), + [StringNode(88...94)(nil, (88...94), nil, " a\n" + " "), + EmbeddedStatementsNode(94...97)((94...96), nil, (96...97)), + StringNode(97...98)(nil, (97...98), nil, "\n")], + (98...102) + ), + InterpolatedStringNode(103...124)( + (103...109), + [StringNode(110...116)(nil, (110...116), nil, "a\n"), + EmbeddedStatementsNode(116...119)((116...118), nil, (118...119)), + StringNode(119...120)(nil, (119...120), nil, "\n")], + (120...124) + ), + InterpolatedStringNode(125...150)( + (125...131), + [StringNode(132...138)(nil, (132...138), nil, "a\n"), + EmbeddedStatementsNode(138...141)((138...140), nil, (140...141)), + StringNode(141...146)(nil, (141...146), nil, "\n" + "b\n")], + (146...150) + ), + InterpolatedStringNode(151...172)( + (151...157), + [StringNode(158...168)(nil, (158...168), nil, "a\n" + " b\n")], + (168...172) + ), + InterpolatedStringNode(173...190)( + (173...180), + [StringNode(181...186)(nil, (181...186), nil, "a\n" + "\n" + "b\n")], + (186...190) + ), + InterpolatedStringNode(191...210)( + (191...198), + [StringNode(199...206)(nil, (199...206), nil, " a\n" + "\n" + " b\n")], + (206...210) + ), + InterpolatedStringNode(211...229)( + (211...218), + [StringNode(219...225)(nil, (219...225), nil, " a\\nb\n")], + (225...229) + ), + InterpolatedStringNode(230...251)( + (230...235), + [EmbeddedStatementsNode(236...239)((236...238), nil, (238...239)), + StringNode(239...242)(nil, (239...242), nil, "a\n" + " "), + EmbeddedStatementsNode(242...245)((242...244), nil, (244...245)), + StringNode(245...247)(nil, (245...247), nil, "a\n")], + (247...251) + ), + InterpolatedStringNode(252...275)( + (252...257), + [StringNode(258...260)(nil, (258...260), nil, " "), + EmbeddedStatementsNode(260...263)((260...262), nil, (262...263)), + StringNode(263...271)(nil, (263...271), nil, "\n" + " \#{}\n")], + (271...275) + ), + InterpolatedStringNode(276...296)( + (276...281), + [StringNode(282...284)(nil, (282...284), nil, " a"), + EmbeddedStatementsNode(284...287)((284...286), nil, (286...287)), + StringNode(287...292)(nil, (287...292), nil, "b\n" + " c\n")], + (292...296) + ), + InterpolatedStringNode(297...314)( + (297...303), + [StringNode(304...306)(nil, (304...306), nil, ""), + EmbeddedStatementsNode(306...309)((306...308), nil, (308...309)), + StringNode(309...310)(nil, (309...310), nil, "\n")], + (310...314) + ), + IfNode(315...349)( + (315...317), + TrueNode(318...322)(), + StatementsNode(325...346)( + [InterpolatedStringNode(325...346)( + (325...331), + [StringNode(332...336)(nil, (332...336), nil, ""), + EmbeddedStatementsNode(336...339)((336...338), nil, (338...339)), + StringNode(339...340)(nil, (339...340), nil, "\n")], + (340...346) + )] + ), + nil, + (346...349) + ), + IfNode(351...386)( + (351...353), + TrueNode(354...358)(), + StatementsNode(361...383)( + [InterpolatedStringNode(361...383)( + (361...367), + [StringNode(368...373)(nil, (368...373), nil, "b"), + EmbeddedStatementsNode(373...376)((373...375), nil, (375...376)), + StringNode(376...377)(nil, (376...377), nil, "\n")], + (377...383) + )] + ), + nil, + (383...386) + ), + IfNode(388...423)( + (388...390), + TrueNode(391...395)(), + StatementsNode(398...420)( + [InterpolatedStringNode(398...420)( + (398...404), + [StringNode(405...409)(nil, (405...409), nil, ""), + EmbeddedStatementsNode(409...412)((409...411), nil, (411...412)), + StringNode(412...414)(nil, (412...414), nil, "a\n")], + (414...420) + )] + ), + nil, + (420...423) + ), + IfNode(425...464)( + (425...427), + TrueNode(428...432)(), + StatementsNode(435...461)( + [InterpolatedStringNode(435...461)( + (435...443), + [StringNode(444...455)( + nil, + (444...455), + nil, + " a\n" + "\n" + " b\n" + )], + (455...461) + )] + ), + nil, + (461...464) + ), + InterpolatedStringNode(466...472)( + (466...467), + [EmbeddedStatementsNode(467...470)((467...469), nil, (469...470)), + StringNode(470...471)(nil, (470...471), nil, "a")], + (471...472) + ), + InterpolatedStringNode(474...486)( + (474...476), + [StringNode(476...479)(nil, (476...479), nil, "\n" + "\""), + EmbeddedStatementsNode(479...482)((479...481), nil, (481...482)), + StringNode(482...485)(nil, (482...485), nil, "\"\n")], + (485...486) + ), + InterpolatedStringNode(488...502)( + (488...491), + [StringNode(491...495)(nil, (491...495), nil, "-\n" + "\""), + EmbeddedStatementsNode(495...498)((495...497), nil, (497...498)), + StringNode(498...501)(nil, (498...501), nil, "\"\n")], + (501...502) + ), + InterpolatedStringNode(504...513)( + (504...505), + [StringNode(505...507)(nil, (505...507), nil, "a\n"), + EmbeddedStatementsNode(507...510)((507...509), nil, (509...510)), + StringNode(510...512)(nil, (510...512), nil, "\n" + "b")], + (512...513) + ), + InterpolatedStringNode(515...525)( + (515...516), + [StringNode(516...519)(nil, (516...519), nil, "a\n"), + EmbeddedStatementsNode(519...522)((519...521), nil, (521...522)), + StringNode(522...524)(nil, (522...524), nil, "\n" + "b")], + (524...525) + ), + InterpolatedStringNode(527...537)( + (527...528), + [StringNode(528...530)(nil, (528...530), nil, "a\n"), + EmbeddedStatementsNode(530...533)((530...532), nil, (532...533)), + StringNode(533...536)(nil, (533...536), nil, "\n" + "b")], + (536...537) + ), + StringConcatNode(539...550)( + StringNode(539...542)((539...540), (540...541), (541...542), "a"), + InterpolatedStringNode(545...550)( + (545...546), + [EmbeddedStatementsNode(546...549)((546...548), nil, (548...549))], + (549...550) + ) + ), + StringConcatNode(552...560)( + StringNode(552...554)((552...553), (553...553), (553...554), ""), + StringConcatNode(555...560)( + StringNode(555...557)((555...556), (556...556), (556...557), ""), + StringNode(558...560)((558...559), (559...559), (559...560), "") + ) + ), + StringConcatNode(562...574)( + InterpolatedStringNode(562...570)( + (562...563), + [StringNode(563...564)(nil, (563...564), nil, "a"), + EmbeddedStatementsNode(564...569)( + (564...566), + StatementsNode(566...568)([InstanceVariableReadNode(566...568)()]), + (568...569) + )], + (569...570) + ), + StringNode(571...574)((571...572), (572...573), (573...574), "b") + ), + StringConcatNode(575...585)( + InterpolatedStringNode(575...581)( + (575...576), + [StringNode(576...577)(nil, (576...577), nil, "a"), + EmbeddedVariableNode(577...580)( + (577...578), + InstanceVariableReadNode(578...580)() + )], + (580...581) + ), + StringNode(582...585)((582...583), (583...584), (584...585), "b") + ), + StringConcatNode(586...596)( + InterpolatedStringNode(586...592)( + (586...587), + [StringNode(587...588)(nil, (587...588), nil, "a"), + EmbeddedVariableNode(588...591)( + (588...589), + GlobalVariableReadNode(589...591)() + )], + (591...592) + ), + StringNode(593...596)((593...594), (594...595), (595...596), "b") + ), + StringConcatNode(597...608)( + InterpolatedStringNode(597...604)( + (597...598), + [StringNode(598...599)(nil, (598...599), nil, "a"), + EmbeddedVariableNode(599...603)( + (599...600), + ClassVariableReadNode(600...603)() + )], + (603...604) + ), + StringNode(605...608)((605...606), (606...607), (607...608), "b") + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/kwbegin.txt b/test/yarp/snapshots/unparser/corpus/semantic/kwbegin.txt new file mode 100644 index 0000000000..b0ea59e21d --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/kwbegin.txt @@ -0,0 +1,184 @@ +ProgramNode(0...215)( + [], + StatementsNode(0...215)( + [BeginNode(0...16)( + (0...5), + nil, + RescueNode(6...12)((6...12), [], nil, nil, nil, nil), + nil, + nil, + (13...16) + ), + BeginNode(18...39)( + (18...23), + nil, + RescueNode(24...30)((24...30), [], nil, nil, nil, nil), + ElseNode(31...39)((31...35), nil, (36...39)), + nil, + (36...39) + ), + BeginNode(41...54)( + (41...46), + StatementsNode(49...50)( + [CallNode(49...50)(nil, nil, (49...50), nil, nil, nil, nil, 0, "a")] + ), + nil, + nil, + nil, + (51...54) + ), + BeginNode(56...80)( + (56...61), + StatementsNode(64...65)( + [CallNode(64...65)(nil, nil, (64...65), nil, nil, nil, nil, 0, "a")] + ), + RescueNode(66...76)( + (66...72), + [], + nil, + nil, + StatementsNode(75...76)( + [CallNode(75...76)(nil, nil, (75...76), nil, nil, nil, nil, 0, "b")] + ), + nil + ), + nil, + nil, + (77...80) + ), + BeginNode(82...110)( + (82...87), + StatementsNode(90...95)( + [CallNode(90...91)(nil, nil, (90...91), nil, nil, nil, nil, 0, "a"), + CallNode(94...95)(nil, nil, (94...95), nil, nil, nil, nil, 0, "b")] + ), + RescueNode(96...106)( + (96...102), + [], + nil, + nil, + StatementsNode(105...106)( + [CallNode(105...106)( + nil, + nil, + (105...106), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + nil + ), + nil, + nil, + (107...110) + ), + BeginNode(112...135)( + (112...117), + nil, + RescueNode(118...126)( + (118...124), + [ConstantReadNode(125...126)()], + nil, + nil, + nil, + nil + ), + ElseNode(127...135)((127...131), nil, (132...135)), + nil, + (132...135) + ), + BeginNode(137...163)( + (137...142), + nil, + RescueNode(144...152)( + (144...150), + [ConstantReadNode(151...152)()], + nil, + nil, + nil, + nil + ), + ElseNode(154...163)((154...158), nil, (160...163)), + nil, + (160...163) + ), + BeginNode(165...215)( + (165...170), + StatementsNode(173...174)( + [CallNode(173...174)( + nil, + nil, + (173...174), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + RescueNode(175...200)( + (175...181), + [ConstantReadNode(182...183)()], + nil, + nil, + StatementsNode(186...187)( + [CallNode(186...187)( + nil, + nil, + (186...187), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + RescueNode(188...200)( + (188...194), + [ConstantReadNode(195...196)()], + nil, + nil, + StatementsNode(199...200)( + [CallNode(199...200)( + nil, + nil, + (199...200), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + nil + ) + ), + nil, + EnsureNode(201...215)( + (201...207), + StatementsNode(210...211)( + [CallNode(210...211)( + nil, + nil, + (210...211), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (212...215) + ), + (212...215) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/literal.txt b/test/yarp/snapshots/unparser/corpus/semantic/literal.txt new file mode 100644 index 0000000000..30225ed2ca --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/literal.txt @@ -0,0 +1,93 @@ +ProgramNode(0...131)( + [], + StatementsNode(0...131)( + [RationalNode(0...4)(FloatNode(0...3)()), + CallNode(5...8)( + RationalNode(6...8)(IntegerNode(6...7)()), + nil, + (5...6), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + IntegerNode(9...12)(), + IntegerNode(13...18)(), + FloatNode(19...23)(), + FloatNode(24...38)(), + CallNode(39...54)( + FloatNode(40...54)(), + nil, + (39...40), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + StringNode(55...57)((55...56), (56...57), nil, "c"), + RegularExpressionNode(58...63)((58...61), (61...62), (62...63), "/", 0), + RegularExpressionNode(64...70)((64...67), (67...69), (69...70), ")", 0), + InterpolatedRegularExpressionNode(71...85)( + (71...74), + [EmbeddedStatementsNode(74...81)( + (74...76), + StatementsNode(76...80)([InstanceVariableReadNode(76...80)()]), + (80...81) + ), + StringNode(81...84)(nil, (81...84), nil, "baz")], + (84...85), + 0 + ), + FloatNode(86...102)(), + CallNode(103...120)( + FloatNode(104...120)(), + nil, + (103...104), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + CallNode(121...131)( + nil, + nil, + (121...122), + (122...123), + ArgumentsNode(123...130)( + [CallNode(123...130)( + nil, + nil, + (123...126), + nil, + ArgumentsNode(127...130)( + [CallNode(127...130)( + nil, + nil, + (127...130), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + 0, + "foo" + )] + ), + (130...131), + nil, + 0, + "w" + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/send.txt b/test/yarp/snapshots/unparser/corpus/semantic/send.txt new file mode 100644 index 0000000000..4f2c294e9e --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/send.txt @@ -0,0 +1,117 @@ +ProgramNode(0...44)( + [], + StatementsNode(0...44)( + [CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + CallNode(4...10)( + nil, + nil, + (4...7), + (7...8), + ArgumentsNode(8...9)([IntegerNode(8...9)()]), + (9...10), + nil, + 0, + "foo" + ), + CallNode(12...27)( + CallNode(12...22)( + CallNode(12...20)( + CallNode(12...13)(nil, nil, (12...13), nil, nil, nil, nil, 0, "a"), + (13...14), + (14...17), + (17...18), + ArgumentsNode(18...19)( + [CallNode(18...19)( + nil, + nil, + (18...19), + nil, + nil, + nil, + nil, + 0, + "b" + )] + ), + (19...20), + nil, + 0, + "===" + ), + (20...21), + (21...22), + nil, + nil, + nil, + nil, + 0, + "c" + ), + nil, + (23...25), + nil, + ArgumentsNode(26...27)( + [CallNode(26...27)(nil, nil, (26...27), nil, nil, nil, nil, 0, "d")] + ), + nil, + nil, + 0, + "==" + ), + CallNode(29...44)( + CallNode(29...30)(nil, nil, (29...30), nil, nil, nil, nil, 0, "a"), + nil, + (31...33), + nil, + ArgumentsNode(34...44)( + [CallNode(34...44)( + CallNode(34...37)( + CallNode(34...35)( + nil, + nil, + (34...35), + nil, + nil, + nil, + nil, + 0, + "d" + ), + (35...36), + (36...37), + nil, + nil, + nil, + nil, + 0, + "c" + ), + (37...38), + (38...41), + (41...42), + ArgumentsNode(42...43)( + [CallNode(42...43)( + nil, + nil, + (42...43), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + (43...44), + nil, + 0, + "===" + )] + ), + nil, + nil, + 0, + "==" + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/undef.txt b/test/yarp/snapshots/unparser/corpus/semantic/undef.txt new file mode 100644 index 0000000000..429e904481 --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/undef.txt @@ -0,0 +1,11 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [UndefNode(0...9)([SymbolNode(6...9)(nil, (6...9), nil, "foo")], (0...5)), + UndefNode(10...24)( + [SymbolNode(16...19)(nil, (16...19), nil, "foo"), + SymbolNode(21...24)(nil, (21...24), nil, "bar")], + (10...15) + )] + ) +) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/while.txt b/test/yarp/snapshots/unparser/corpus/semantic/while.txt new file mode 100644 index 0000000000..f608e21cfb --- /dev/null +++ b/test/yarp/snapshots/unparser/corpus/semantic/while.txt @@ -0,0 +1,177 @@ +ProgramNode(0...188)( + [:foo, :a], + StatementsNode(0...188)( + [UntilNode(0...13)( + (2...7), + CallNode(8...13)( + nil, + nil, + (8...10), + nil, + nil, + nil, + BlockNode(11...13)([], nil, nil, (11...12), (12...13)), + 0, + "b?" + ), + StatementsNode(0...1)( + [CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a")] + ) + ), + UntilNode(15...34)( + (15...20), + CallNode(21...26)( + nil, + nil, + (21...23), + nil, + nil, + nil, + BlockNode(24...26)([], nil, nil, (24...25), (25...26)), + 0, + "b?" + ), + StatementsNode(29...30)( + [CallNode(29...30)(nil, nil, (29...30), nil, nil, nil, nil, 0, "a")] + ) + ), + WhileNode(36...55)( + (46...51), + LocalVariableReadNode(52...55)(:foo, 0), + StatementsNode(36...45)( + [LocalVariableWriteNode(36...45)( + :foo, + 0, + CallNode(42...45)( + nil, + nil, + (42...45), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (36...39), + (40...41) + )] + ) + ), + UntilNode(57...75)( + (59...64), + AndNode(65...75)( + CallNode(65...66)(nil, nil, (65...66), nil, nil, nil, nil, 0, "b"), + CallNode(70...75)( + nil, + nil, + (70...71), + nil, + nil, + nil, + BlockNode(72...75)([], nil, nil, (72...73), (74...75)), + 0, + "a" + ), + (67...69) + ), + StatementsNode(57...58)( + [CallNode(57...58)(nil, nil, (57...58), nil, nil, nil, nil, 0, "a")] + ) + ), + WhileNode(77...96)( + (77...82), + LocalVariableWriteNode(83...88)( + :a, + 0, + CallNode(87...88)(nil, nil, (87...88), nil, nil, nil, nil, 0, "b"), + (83...84), + (85...86) + ), + StatementsNode(91...92)([LocalVariableReadNode(91...92)(:a, 0)]) + ), + UntilNode(98...130)( + (100...105), + CallNode(106...130)( + nil, + nil, + (106...107), + (107...108), + ArgumentsNode(108...123)( + [InterpolatedStringNode(108...123)((108...114), [], (119...123))] + ), + (114...115), + BlockNode(116...130)( + [], + nil, + StatementsNode(125...126)( + [CallNode(125...126)( + nil, + nil, + (125...126), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + (116...118), + (127...130) + ), + 0, + "b" + ), + StatementsNode(98...99)([LocalVariableReadNode(98...99)(:a, 0)]) + ), + ModuleNode(132...188)( + [:foo], + (132...138), + ConstantReadNode(139...140)(), + StatementsNode(143...184)( + [LocalVariableWriteNode(143...152)( + :foo, + 0, + CallNode(149...152)( + nil, + nil, + (149...152), + nil, + nil, + nil, + nil, + 0, + "exp" + ), + (143...146), + (147...148) + ), + WhileNode(155...184)( + (155...160), + LocalVariableReadNode(161...164)(:foo, 0), + StatementsNode(169...178)( + [LocalVariableWriteNode(169...178)( + :foo, + 0, + CallNode(175...178)( + nil, + nil, + (175...178), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (169...172), + (173...174) + )] + ) + )] + ), + (185...188) + )] + ) +) diff --git a/test/yarp/snapshots/until.txt b/test/yarp/snapshots/until.txt new file mode 100644 index 0000000000..c9ae1f6fbd --- /dev/null +++ b/test/yarp/snapshots/until.txt @@ -0,0 +1,60 @@ +ProgramNode(0...109)( + [], + StatementsNode(0...109)( + [UntilNode(0...18)( + (0...5), + TrueNode(6...10)(), + StatementsNode(12...13)([IntegerNode(12...13)()]) + ), + UntilNode(20...32)( + (22...27), + TrueNode(28...32)(), + StatementsNode(20...21)([IntegerNode(20...21)()]) + ), + UntilNode(34...50)( + (40...45), + TrueNode(46...50)(), + StatementsNode(34...39)([BreakNode(34...39)(nil, (34...39))]) + ), + UntilNode(52...67)( + (57...62), + TrueNode(63...67)(), + StatementsNode(52...56)([NextNode(52...56)(nil, (52...56))]) + ), + UntilNode(69...86)( + (76...81), + TrueNode(82...86)(), + StatementsNode(69...75)([ReturnNode(69...75)((69...75), nil)]) + ), + UntilNode(88...109)( + (99...104), + CallNode(105...109)( + nil, + nil, + (105...109), + nil, + nil, + nil, + nil, + 0, + "bar?" + ), + StatementsNode(88...98)( + [CallNode(88...98)( + nil, + nil, + (88...91), + nil, + ArgumentsNode(92...98)( + [SymbolNode(92...94)((92...93), (93...94), nil, "a"), + SymbolNode(96...98)((96...97), (97...98), nil, "b")] + ), + nil, + nil, + 0, + "foo" + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/variables.txt b/test/yarp/snapshots/variables.txt new file mode 100644 index 0000000000..8976f74a38 --- /dev/null +++ b/test/yarp/snapshots/variables.txt @@ -0,0 +1,232 @@ +ProgramNode(0...293)( + [:abc, :foo, :bar, :baz], + StatementsNode(0...293)( + [ClassVariableReadNode(0...5)(), + ClassVariableWriteNode(7...16)( + (7...12), + IntegerNode(15...16)(), + (13...14) + ), + MultiWriteNode(18...34)( + [ClassVariableWriteNode(18...23)((18...23), nil, nil), + ClassVariableWriteNode(25...30)((25...30), nil, nil)], + (31...32), + IntegerNode(33...34)(), + nil, + nil + ), + ClassVariableWriteNode(36...48)( + (36...41), + ArrayNode(44...48)( + [IntegerNode(44...45)(), IntegerNode(47...48)()], + nil, + nil + ), + (42...43) + ), + GlobalVariableWriteNode(50...58)( + (50...54), + (55...56), + IntegerNode(57...58)() + ), + GlobalVariableReadNode(60...64)(), + InstanceVariableReadNode(66...70)(), + InstanceVariableWriteNode(72...80)( + (72...76), + IntegerNode(79...80)(), + (77...78) + ), + CallNode(82...83)(nil, nil, (82...83), nil, nil, nil, nil, 0, "a"), + LocalVariableWriteNode(85...92)( + :abc, + 0, + IntegerNode(91...92)(), + (85...88), + (89...90) + ), + MultiWriteNode(94...108)( + [GlobalVariableWriteNode(94...98)((94...98), nil, nil), + GlobalVariableWriteNode(100...104)((100...104), nil, nil)], + (105...106), + IntegerNode(107...108)(), + nil, + nil + ), + GlobalVariableWriteNode(110...121)( + (110...114), + (115...116), + ArrayNode(117...121)( + [IntegerNode(117...118)(), IntegerNode(120...121)()], + nil, + nil + ) + ), + MultiWriteNode(123...137)( + [InstanceVariableWriteNode(123...127)((123...127), nil, nil), + InstanceVariableWriteNode(129...133)((129...133), nil, nil)], + (134...135), + IntegerNode(136...137)(), + nil, + nil + ), + InstanceVariableWriteNode(139...150)( + (139...143), + ArrayNode(146...150)( + [IntegerNode(146...147)(), IntegerNode(149...150)()], + nil, + nil + ), + (144...145) + ), + LocalVariableWriteNode(152...159)( + :foo, + 0, + IntegerNode(158...159)(), + (152...155), + (156...157) + ), + LocalVariableWriteNode(161...171)( + :foo, + 0, + ArrayNode(167...171)( + [IntegerNode(167...168)(), IntegerNode(170...171)()], + nil, + nil + ), + (161...164), + (165...166) + ), + LocalVariableWriteNode(173...183)( + :foo, + 0, + ArrayNode(179...183)( + [IntegerNode(179...180)(), IntegerNode(182...183)()], + nil, + nil + ), + (173...176), + (177...178) + ), + MultiWriteNode(185...198)( + [LocalVariableWriteNode(185...188)(:foo, 0, nil, (185...188), nil), + SplatNode(190...191)((190...191), nil)], + (192...193), + ArrayNode(194...198)( + [IntegerNode(194...195)(), IntegerNode(197...198)()], + nil, + nil + ), + nil, + nil + ), + MultiWriteNode(200...211)( + [LocalVariableWriteNode(200...203)(:foo, 0, nil, (200...203), nil), + SplatNode(203...204)((203...204), nil)], + (205...206), + ArrayNode(207...211)( + [IntegerNode(207...208)(), IntegerNode(210...211)()], + nil, + nil + ), + nil, + nil + ), + MultiWriteNode(213...229)( + [LocalVariableWriteNode(213...216)(:foo, 0, nil, (213...216), nil), + SplatNode(218...222)( + (218...219), + LocalVariableWriteNode(219...222)(:bar, 0, nil, (219...222), nil) + )], + (223...224), + ArrayNode(225...229)( + [IntegerNode(225...226)(), IntegerNode(228...229)()], + nil, + nil + ), + nil, + nil + ), + MultiWriteNode(231...258)( + [LocalVariableWriteNode(231...234)(:foo, 0, nil, (231...234), nil), + MultiWriteNode(237...246)( + [LocalVariableWriteNode(237...240)(:bar, 0, nil, (237...240), nil), + LocalVariableWriteNode(242...245)(:baz, 0, nil, (242...245), nil)], + nil, + nil, + (236...237), + (245...246) + )], + (247...248), + ArrayNode(249...258)( + [IntegerNode(249...250)(), + ArrayNode(252...258)( + [IntegerNode(253...254)(), IntegerNode(256...257)()], + (252...253), + (257...258) + )], + nil, + nil + ), + nil, + nil + ), + LocalVariableWriteNode(260...270)( + :foo, + 0, + SplatNode(266...270)( + (266...267), + LocalVariableReadNode(267...270)(:bar, 0) + ), + (260...263), + (264...265) + ), + ConstantPathWriteNode(272...282)( + ConstantReadNode(272...275)(), + (276...277), + ArrayNode(278...282)( + [IntegerNode(278...279)(), IntegerNode(281...282)()], + nil, + nil + ) + ), + ParenthesesNode(284...293)( + StatementsNode(285...292)( + [CallNode(285...286)( + nil, + nil, + (285...286), + nil, + nil, + nil, + nil, + 0, + "a" + ), + CallNode(288...289)( + nil, + nil, + (288...289), + nil, + nil, + nil, + nil, + 0, + "b" + ), + CallNode(291...292)( + nil, + nil, + (291...292), + nil, + nil, + nil, + nil, + 0, + "c" + )] + ), + (284...285), + (292...293) + )] + ) +) diff --git a/test/yarp/snapshots/while.txt b/test/yarp/snapshots/while.txt new file mode 100644 index 0000000000..4f87258cf9 --- /dev/null +++ b/test/yarp/snapshots/while.txt @@ -0,0 +1,185 @@ +ProgramNode(0...314)( + [], + StatementsNode(0...314)( + [WhileNode(0...18)( + (0...5), + TrueNode(6...10)(), + StatementsNode(12...13)([IntegerNode(12...13)()]) + ), + WhileNode(20...32)( + (22...27), + TrueNode(28...32)(), + StatementsNode(20...21)([IntegerNode(20...21)()]) + ), + WhileNode(34...50)( + (40...45), + TrueNode(46...50)(), + StatementsNode(34...39)([BreakNode(34...39)(nil, (34...39))]) + ), + WhileNode(52...67)( + (57...62), + TrueNode(63...67)(), + StatementsNode(52...56)([NextNode(52...56)(nil, (52...56))]) + ), + WhileNode(69...86)( + (76...81), + TrueNode(82...86)(), + StatementsNode(69...75)([ReturnNode(69...75)((69...75), nil)]) + ), + WhileNode(88...109)( + (99...104), + CallNode(105...109)( + nil, + nil, + (105...109), + nil, + nil, + nil, + nil, + 0, + "bar?" + ), + StatementsNode(88...98)( + [CallNode(88...98)( + nil, + nil, + (88...91), + nil, + ArgumentsNode(92...98)( + [SymbolNode(92...94)((92...93), (93...94), nil, "a"), + SymbolNode(96...98)((96...97), (97...98), nil, "b")] + ), + nil, + nil, + 0, + "foo" + )] + ) + ), + WhileNode(111...161)( + (111...116), + DefNode(117...149)( + (126...129), + SelfNode(121...125)(), + ParametersNode(130...144)( + [], + [OptionalParameterNode(130...144)( + :a, + (130...131), + (132...133), + CallNode(134...144)( + nil, + nil, + (134...137), + nil, + nil, + nil, + BlockNode(138...144)([], nil, nil, (138...140), (141...144)), + 0, + "tap" + ) + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (117...120), + (125...126), + nil, + nil, + nil, + (146...149) + ), + StatementsNode(151...156)([BreakNode(151...156)(nil, (151...156))]) + ), + WhileNode(163...210)( + (163...168), + ClassNode(169...198)( + [:a], + (169...174), + ConstantReadNode(175...178)(), + nil, + nil, + StatementsNode(179...193)( + [LocalVariableWriteNode(179...193)( + :a, + 0, + CallNode(183...193)( + nil, + nil, + (183...186), + nil, + nil, + nil, + BlockNode(187...193)([], nil, nil, (187...189), (190...193)), + 0, + "tap" + ), + (179...180), + (181...182) + )] + ), + (195...198) + ), + StatementsNode(200...205)([BreakNode(200...205)(nil, (200...205))]) + ), + WhileNode(212...260)( + (212...217), + SingletonClassNode(218...248)( + [], + (218...223), + (224...226), + SelfNode(227...231)(), + StatementsNode(233...243)( + [CallNode(233...243)( + nil, + nil, + (233...236), + nil, + nil, + nil, + BlockNode(237...243)([], nil, nil, (237...239), (240...243)), + 0, + "tap" + )] + ), + (245...248) + ), + StatementsNode(250...255)([BreakNode(250...255)(nil, (250...255))]) + ), + WhileNode(262...314)( + (262...267), + SingletonClassNode(268...302)( + [:a], + (268...273), + (274...276), + SelfNode(277...281)(), + StatementsNode(283...297)( + [LocalVariableWriteNode(283...297)( + :a, + 0, + CallNode(287...297)( + nil, + nil, + (287...290), + nil, + nil, + nil, + BlockNode(291...297)([], nil, nil, (291...293), (294...297)), + 0, + "tap" + ), + (283...284), + (285...286) + )] + ), + (299...302) + ), + StatementsNode(304...309)([BreakNode(304...309)(nil, (304...309))]) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/__ENCODING__.txt b/test/yarp/snapshots/whitequark/__ENCODING__.txt new file mode 100644 index 0000000000..2f5aaa5dfc --- /dev/null +++ b/test/yarp/snapshots/whitequark/__ENCODING__.txt @@ -0,0 +1 @@ +ProgramNode(0...12)([], StatementsNode(0...12)([SourceEncodingNode(0...12)()])) diff --git a/test/yarp/snapshots/whitequark/__ENCODING___legacy_.txt b/test/yarp/snapshots/whitequark/__ENCODING___legacy_.txt new file mode 100644 index 0000000000..2f5aaa5dfc --- /dev/null +++ b/test/yarp/snapshots/whitequark/__ENCODING___legacy_.txt @@ -0,0 +1 @@ +ProgramNode(0...12)([], StatementsNode(0...12)([SourceEncodingNode(0...12)()])) diff --git a/test/yarp/snapshots/whitequark/alias.txt b/test/yarp/snapshots/whitequark/alias.txt new file mode 100644 index 0000000000..3960bea48a --- /dev/null +++ b/test/yarp/snapshots/whitequark/alias.txt @@ -0,0 +1,10 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [AliasNode(0...14)( + SymbolNode(6...10)((6...7), (7...10), nil, "foo"), + SymbolNode(11...14)(nil, (11...14), nil, "bar"), + (0...5) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/alias_gvar.txt b/test/yarp/snapshots/whitequark/alias_gvar.txt new file mode 100644 index 0000000000..c615e52655 --- /dev/null +++ b/test/yarp/snapshots/whitequark/alias_gvar.txt @@ -0,0 +1,15 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [AliasNode(0...11)( + GlobalVariableReadNode(6...8)(), + BackReferenceReadNode(9...11)(), + (0...5) + ), + AliasNode(13...24)( + GlobalVariableReadNode(19...21)(), + GlobalVariableReadNode(22...24)(), + (13...18) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ambiuous_quoted_label_in_ternary_operator.txt b/test/yarp/snapshots/whitequark/ambiuous_quoted_label_in_ternary_operator.txt new file mode 100644 index 0000000000..481a9c5f92 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ambiuous_quoted_label_in_ternary_operator.txt @@ -0,0 +1,30 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [IfNode(0...15)( + nil, + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + StatementsNode(4...10)( + [CallNode(4...10)( + CallNode(4...5)(nil, nil, (4...5), nil, nil, nil, nil, 0, "b"), + nil, + (6...7), + nil, + ArgumentsNode(8...10)( + [StringNode(8...10)((8...9), (9...9), (9...10), "")] + ), + nil, + nil, + 0, + "&" + )] + ), + ElseNode(10...15)( + (10...11), + StatementsNode(12...15)([NilNode(12...15)()]), + nil + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/and.txt b/test/yarp/snapshots/whitequark/and.txt new file mode 100644 index 0000000000..6a488935e0 --- /dev/null +++ b/test/yarp/snapshots/whitequark/and.txt @@ -0,0 +1,15 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [AndNode(0...10)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "bar"), + (4...6) + ), + AndNode(12...23)( + CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "foo"), + CallNode(20...23)(nil, nil, (20...23), nil, nil, nil, nil, 0, "bar"), + (16...19) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/and_asgn.txt b/test/yarp/snapshots/whitequark/and_asgn.txt new file mode 100644 index 0000000000..abbaf77617 --- /dev/null +++ b/test/yarp/snapshots/whitequark/and_asgn.txt @@ -0,0 +1,37 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CallOperatorAndWriteNode(0...11)( + CallNode(0...5)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...5), + nil, + nil, + nil, + nil, + 0, + "a=" + ), + (6...9), + IntegerNode(10...11)() + ), + CallOperatorAndWriteNode(13...28)( + CallNode(13...22)( + CallNode(13...16)(nil, nil, (13...16), nil, nil, nil, nil, 0, "foo"), + nil, + (16...22), + (16...17), + ArgumentsNode(17...21)( + [IntegerNode(17...18)(), IntegerNode(20...21)()] + ), + (21...22), + nil, + 0, + "[]=" + ), + (23...26), + IntegerNode(27...28)() + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/and_or_masgn.txt b/test/yarp/snapshots/whitequark/and_or_masgn.txt new file mode 100644 index 0000000000..7fc2e35e04 --- /dev/null +++ b/test/yarp/snapshots/whitequark/and_or_masgn.txt @@ -0,0 +1,61 @@ +ProgramNode(0...40)( + [:a, :b], + StatementsNode(0...40)( + [AndNode(0...19)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + ParenthesesNode(7...19)( + StatementsNode(8...18)( + [MultiWriteNode(8...18)( + [LocalVariableWriteNode(8...9)(:a, 0, nil, (8...9), nil), + LocalVariableWriteNode(11...12)(:b, 0, nil, (11...12), nil)], + (13...14), + CallNode(15...18)( + nil, + nil, + (15...18), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + nil + )] + ), + (7...8), + (18...19) + ), + (4...6) + ), + OrNode(21...40)( + CallNode(21...24)(nil, nil, (21...24), nil, nil, nil, nil, 0, "foo"), + ParenthesesNode(28...40)( + StatementsNode(29...39)( + [MultiWriteNode(29...39)( + [LocalVariableWriteNode(29...30)(:a, 0, nil, (29...30), nil), + LocalVariableWriteNode(32...33)(:b, 0, nil, (32...33), nil)], + (34...35), + CallNode(36...39)( + nil, + nil, + (36...39), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + nil + )] + ), + (28...29), + (39...40) + ), + (25...27) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/anonymous_blockarg.txt b/test/yarp/snapshots/whitequark/anonymous_blockarg.txt new file mode 100644 index 0000000000..d3679ca424 --- /dev/null +++ b/test/yarp/snapshots/whitequark/anonymous_blockarg.txt @@ -0,0 +1,40 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [DefNode(0...23)( + (4...7), + nil, + ParametersNode(8...9)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(8...9)(nil, (8...9)) + ), + StatementsNode(12...18)( + [CallNode(12...18)( + nil, + nil, + (12...15), + (15...16), + ArgumentsNode(16...17)( + [BlockArgumentNode(16...17)(nil, (16...17))] + ), + (17...18), + nil, + 0, + "bar" + )] + ), + [:&], + (0...3), + nil, + (7...8), + (9...10), + nil, + (20...23) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/arg.txt b/test/yarp/snapshots/whitequark/arg.txt new file mode 100644 index 0000000000..403c382cb7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/arg.txt @@ -0,0 +1,48 @@ +ProgramNode(0...37)( + [], + StatementsNode(0...37)( + [DefNode(0...15)( + (4...5), + nil, + ParametersNode(6...9)( + [RequiredParameterNode(6...9)(:foo)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:foo], + (0...3), + nil, + (5...6), + (9...10), + nil, + (12...15) + ), + DefNode(17...37)( + (21...22), + nil, + ParametersNode(23...31)( + [RequiredParameterNode(23...26)(:foo), + RequiredParameterNode(28...31)(:bar)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:foo, :bar], + (17...20), + nil, + (22...23), + (31...32), + nil, + (34...37) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/arg_duplicate_ignored.txt b/test/yarp/snapshots/whitequark/arg_duplicate_ignored.txt new file mode 100644 index 0000000000..5c88c71d50 --- /dev/null +++ b/test/yarp/snapshots/whitequark/arg_duplicate_ignored.txt @@ -0,0 +1,49 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [DefNode(0...18)( + (4...7), + nil, + ParametersNode(8...12)( + [RequiredParameterNode(8...9)(:_), + RequiredParameterNode(11...12)(:_)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:_], + (0...3), + nil, + (7...8), + (12...13), + nil, + (15...18) + ), + DefNode(20...40)( + (24...27), + nil, + ParametersNode(28...34)( + [RequiredParameterNode(28...30)(:_a), + RequiredParameterNode(32...34)(:_a)], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:_a], + (20...23), + nil, + (27...28), + (34...35), + nil, + (37...40) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/arg_label.txt b/test/yarp/snapshots/whitequark/arg_label.txt new file mode 100644 index 0000000000..cfa55d0124 --- /dev/null +++ b/test/yarp/snapshots/whitequark/arg_label.txt @@ -0,0 +1,90 @@ +ProgramNode(0...49)( + [], + StatementsNode(0...49)( + [DefNode(0...16)( + (4...7), + nil, + nil, + StatementsNode(9...12)( + [CallNode(9...12)( + nil, + nil, + (9...10), + nil, + ArgumentsNode(10...12)( + [SymbolNode(10...12)((10...11), (11...12), nil, "b")] + ), + nil, + nil, + 0, + "a" + )] + ), + [], + (0...3), + nil, + nil, + nil, + nil, + (13...16) + ), + DefNode(18...35)( + (22...25), + nil, + nil, + StatementsNode(28...31)( + [CallNode(28...31)( + nil, + nil, + (28...29), + nil, + ArgumentsNode(29...31)( + [SymbolNode(29...31)((29...30), (30...31), nil, "b")] + ), + nil, + nil, + 0, + "a" + )] + ), + [], + (18...21), + nil, + (25...26), + (26...27), + nil, + (32...35) + ), + CallNode(37...49)( + nil, + nil, + (37...38), + nil, + nil, + nil, + BlockNode(39...49)( + [], + BlockParametersNode(41...43)(nil, [], (41...42), (42...43)), + StatementsNode(44...47)( + [CallNode(44...47)( + nil, + nil, + (44...45), + nil, + ArgumentsNode(45...47)( + [SymbolNode(45...47)((45...46), (46...47), nil, "b")] + ), + nil, + nil, + 0, + "a" + )] + ), + (39...40), + (48...49) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/arg_scope.txt b/test/yarp/snapshots/whitequark/arg_scope.txt new file mode 100644 index 0000000000..fd5ae0f61d --- /dev/null +++ b/test/yarp/snapshots/whitequark/arg_scope.txt @@ -0,0 +1,22 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + nil, + nil, + (0...6), + nil, + nil, + nil, + BlockNode(6...13)( + [:a], + BlockParametersNode(7...11)(nil, [(9...10)], (7...8), (10...11)), + StatementsNode(11...12)([LocalVariableReadNode(11...12)(:a, 0)]), + (6...7), + (12...13) + ), + 0, + "lambda" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args.txt b/test/yarp/snapshots/whitequark/args.txt new file mode 100644 index 0000000000..fe899700d2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/args.txt @@ -0,0 +1,776 @@ +ProgramNode(0...690)( + [], + StatementsNode(0...690)( + [DefNode(0...13)( + (4...5), + nil, + ParametersNode(6...8)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(6...8)((7...8), (6...7)) + ), + nil, + [:b], + (0...3), + nil, + nil, + nil, + nil, + (10...13) + ), + DefNode(15...33)( + (19...20), + nil, + ParametersNode(22...27)( + [RequiredDestructuredParameterNode(22...27)( + [RequiredDestructuredParameterNode(23...26)( + [RequiredParameterNode(24...25)(:a)], + (23...24), + (25...26) + )], + (22...23), + (26...27) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (15...18), + nil, + (21...22), + (27...28), + nil, + (30...33) + ), + DefNode(35...51)( + (39...40), + nil, + ParametersNode(42...45)( + [RequiredDestructuredParameterNode(42...45)( + [SplatNode(43...44)((43...44), nil)], + (42...43), + (44...45) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [], + (35...38), + nil, + (41...42), + (45...46), + nil, + (48...51) + ), + DefNode(53...72)( + (57...58), + nil, + ParametersNode(60...66)( + [RequiredDestructuredParameterNode(60...66)( + [SplatNode(61...62)((61...62), nil), + RequiredParameterNode(64...65)(:p)], + (60...61), + (65...66) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:p], + (53...56), + nil, + (59...60), + (66...67), + nil, + (69...72) + ), + DefNode(74...91)( + (78...79), + nil, + ParametersNode(81...85)( + [RequiredDestructuredParameterNode(81...85)( + [SplatNode(82...84)( + (82...83), + RequiredParameterNode(83...84)(:r) + )], + (81...82), + (84...85) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:r], + (74...77), + nil, + (80...81), + (85...86), + nil, + (88...91) + ), + DefNode(93...113)( + (97...98), + nil, + ParametersNode(100...107)( + [RequiredDestructuredParameterNode(100...107)( + [SplatNode(101...103)( + (101...102), + RequiredParameterNode(102...103)(:r) + ), + RequiredParameterNode(105...106)(:p)], + (100...101), + (106...107) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:r, :p], + (93...96), + nil, + (99...100), + (107...108), + nil, + (110...113) + ), + DefNode(115...134)( + (119...120), + nil, + ParametersNode(122...128)( + [RequiredDestructuredParameterNode(122...128)( + [RequiredParameterNode(123...124)(:a), + SplatNode(126...127)((126...127), nil)], + (122...123), + (127...128) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (115...118), + nil, + (121...122), + (128...129), + nil, + (131...134) + ), + DefNode(136...158)( + (140...141), + nil, + ParametersNode(143...152)( + [RequiredDestructuredParameterNode(143...152)( + [RequiredParameterNode(144...145)(:a), + SplatNode(147...148)((147...148), nil), + RequiredParameterNode(150...151)(:p)], + (143...144), + (151...152) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a, :p], + (136...139), + nil, + (142...143), + (152...153), + nil, + (155...158) + ), + DefNode(160...180)( + (164...165), + nil, + ParametersNode(167...174)( + [RequiredDestructuredParameterNode(167...174)( + [RequiredParameterNode(168...169)(:a), + SplatNode(171...173)( + (171...172), + RequiredParameterNode(172...173)(:r) + )], + (167...168), + (173...174) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a, :r], + (160...163), + nil, + (166...167), + (174...175), + nil, + (177...180) + ), + DefNode(182...205)( + (186...187), + nil, + ParametersNode(189...199)( + [RequiredDestructuredParameterNode(189...199)( + [RequiredParameterNode(190...191)(:a), + SplatNode(193...195)( + (193...194), + RequiredParameterNode(194...195)(:r) + ), + RequiredParameterNode(197...198)(:p)], + (189...190), + (198...199) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a, :r, :p], + (182...185), + nil, + (188...189), + (199...200), + nil, + (202...205) + ), + DefNode(207...227)( + (211...212), + nil, + ParametersNode(214...221)( + [RequiredDestructuredParameterNode(214...221)( + [RequiredParameterNode(215...216)(:a), + RequiredParameterNode(218...220)(:a1)], + (214...215), + (220...221) + )], + [], + [], + nil, + [], + nil, + nil + ), + nil, + [:a, :a1], + (207...210), + nil, + (213...214), + (221...222), + nil, + (224...227) + ), + DefNode(229...252)( + (233...234), + nil, + ParametersNode(236...246)( + [], + [], + [], + nil, + [KeywordParameterNode(236...242)( + (236...240), + IntegerNode(241...242)() + )], + nil, + BlockParameterNode(244...246)((245...246), (244...245)) + ), + nil, + [:foo, :b], + (229...232), + nil, + (235...236), + (246...247), + nil, + (249...252) + ), + DefNode(254...292)( + (258...259), + nil, + ParametersNode(261...286)( + [], + [], + [], + nil, + [KeywordParameterNode(261...267)( + (261...265), + IntegerNode(266...267)() + ), + KeywordParameterNode(269...275)( + (269...273), + IntegerNode(274...275)() + )], + KeywordRestParameterNode(277...282)((277...279), (279...282)), + BlockParameterNode(284...286)((285...286), (284...285)) + ), + nil, + [:foo, :bar, :baz, :b], + (254...257), + nil, + (260...261), + (286...287), + nil, + (289...292) + ), + DefNode(294...314)( + (298...299), + nil, + ParametersNode(300...309)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(300...305)((300...302), (302...305)), + BlockParameterNode(307...309)((308...309), (307...308)) + ), + nil, + [:baz, :b], + (294...297), + nil, + nil, + nil, + nil, + (311...314) + ), + DefNode(316...332)( + (320...321), + nil, + ParametersNode(322...327)( + [], + [], + [], + RestParameterNode(322...323)((322...323), nil), + [], + KeywordRestParameterNode(325...327)((325...327), nil), + nil + ), + nil, + [:*, :**], + (316...319), + nil, + nil, + nil, + nil, + (329...332) + ), + DefNode(334...351)( + (338...339), + nil, + ParametersNode(340...346)( + [], + [], + [], + RestParameterNode(340...342)((340...341), (341...342)), + [], + nil, + BlockParameterNode(344...346)((345...346), (344...345)) + ), + nil, + [:r, :b], + (334...337), + nil, + nil, + nil, + nil, + (348...351) + ), + DefNode(353...373)( + (357...358), + nil, + ParametersNode(359...368)( + [], + [], + [RequiredParameterNode(363...364)(:p)], + RestParameterNode(359...361)((359...360), (360...361)), + [], + nil, + BlockParameterNode(366...368)((367...368), (366...367)) + ), + nil, + [:r, :p, :b], + (353...356), + nil, + nil, + nil, + nil, + (370...373) + ), + DefNode(375...386)( + (379...380), + nil, + nil, + nil, + [], + (375...378), + nil, + nil, + nil, + nil, + (383...386) + ), + DefNode(388...404)( + (392...393), + nil, + ParametersNode(394...399)( + [RequiredParameterNode(394...395)(:a)], + [], + [], + nil, + [], + nil, + BlockParameterNode(397...399)((398...399), (397...398)) + ), + nil, + [:a, :b], + (388...391), + nil, + nil, + nil, + nil, + (401...404) + ), + DefNode(406...426)( + (410...411), + nil, + ParametersNode(412...421)( + [RequiredParameterNode(412...413)(:a)], + [], + [], + RestParameterNode(415...417)((415...416), (416...417)), + [], + nil, + BlockParameterNode(419...421)((420...421), (419...420)) + ), + nil, + [:a, :r, :b], + (406...409), + nil, + nil, + nil, + nil, + (423...426) + ), + DefNode(428...451)( + (432...433), + nil, + ParametersNode(434...446)( + [RequiredParameterNode(434...435)(:a)], + [], + [RequiredParameterNode(441...442)(:p)], + RestParameterNode(437...439)((437...438), (438...439)), + [], + nil, + BlockParameterNode(444...446)((445...446), (444...445)) + ), + nil, + [:a, :r, :p, :b], + (428...431), + nil, + nil, + nil, + nil, + (448...451) + ), + DefNode(453...474)( + (457...458), + nil, + ParametersNode(459...469)( + [RequiredParameterNode(459...460)(:a)], + [OptionalParameterNode(462...465)( + :o, + (462...463), + (463...464), + IntegerNode(464...465)() + )], + [], + nil, + [], + nil, + BlockParameterNode(467...469)((468...469), (467...468)) + ), + nil, + [:a, :o, :b], + (453...456), + nil, + nil, + nil, + nil, + (471...474) + ), + DefNode(476...501)( + (480...481), + nil, + ParametersNode(482...496)( + [RequiredParameterNode(482...483)(:a)], + [OptionalParameterNode(485...488)( + :o, + (485...486), + (486...487), + IntegerNode(487...488)() + )], + [], + RestParameterNode(490...492)((490...491), (491...492)), + [], + nil, + BlockParameterNode(494...496)((495...496), (494...495)) + ), + nil, + [:a, :o, :r, :b], + (476...479), + nil, + nil, + nil, + nil, + (498...501) + ), + DefNode(503...531)( + (507...508), + nil, + ParametersNode(509...526)( + [RequiredParameterNode(509...510)(:a)], + [OptionalParameterNode(512...515)( + :o, + (512...513), + (513...514), + IntegerNode(514...515)() + )], + [RequiredParameterNode(521...522)(:p)], + RestParameterNode(517...519)((517...518), (518...519)), + [], + nil, + BlockParameterNode(524...526)((525...526), (524...525)) + ), + nil, + [:a, :o, :r, :p, :b], + (503...506), + nil, + nil, + nil, + nil, + (528...531) + ), + DefNode(533...557)( + (537...538), + nil, + ParametersNode(539...552)( + [RequiredParameterNode(539...540)(:a)], + [OptionalParameterNode(542...545)( + :o, + (542...543), + (543...544), + IntegerNode(544...545)() + )], + [RequiredParameterNode(547...548)(:p)], + nil, + [], + nil, + BlockParameterNode(550...552)((551...552), (550...551)) + ), + nil, + [:a, :o, :p, :b], + (533...536), + nil, + nil, + nil, + nil, + (554...557) + ), + DefNode(559...575)( + (563...564), + nil, + ParametersNode(565...569)( + [], + [], + [], + nil, + [KeywordParameterNode(565...569)((565...569), nil)], + nil, + nil + ), + nil, + [:foo], + (559...562), + nil, + nil, + nil, + nil, + (572...575) + ), + DefNode(577...596)( + (581...582), + nil, + ParametersNode(583...590)( + [], + [], + [], + nil, + [KeywordParameterNode(583...590)( + (583...587), + CallNode(588...590)( + IntegerNode(589...590)(), + nil, + (588...589), + nil, + nil, + nil, + nil, + 0, + "-@" + ) + )], + nil, + nil + ), + nil, + [:foo], + (577...580), + nil, + nil, + nil, + nil, + (593...596) + ), + DefNode(598...616)( + (602...603), + nil, + ParametersNode(604...611)( + [], + [OptionalParameterNode(604...607)( + :o, + (604...605), + (605...606), + IntegerNode(606...607)() + )], + [], + nil, + [], + nil, + BlockParameterNode(609...611)((610...611), (609...610)) + ), + nil, + [:o, :b], + (598...601), + nil, + nil, + nil, + nil, + (613...616) + ), + DefNode(618...640)( + (622...623), + nil, + ParametersNode(624...635)( + [], + [OptionalParameterNode(624...627)( + :o, + (624...625), + (625...626), + IntegerNode(626...627)() + )], + [], + RestParameterNode(629...631)((629...630), (630...631)), + [], + nil, + BlockParameterNode(633...635)((634...635), (633...634)) + ), + nil, + [:o, :r, :b], + (618...621), + nil, + nil, + nil, + nil, + (637...640) + ), + DefNode(642...667)( + (646...647), + nil, + ParametersNode(648...662)( + [], + [OptionalParameterNode(648...651)( + :o, + (648...649), + (649...650), + IntegerNode(650...651)() + )], + [RequiredParameterNode(657...658)(:p)], + RestParameterNode(653...655)((653...654), (654...655)), + [], + nil, + BlockParameterNode(660...662)((661...662), (660...661)) + ), + nil, + [:o, :r, :p, :b], + (642...645), + nil, + nil, + nil, + nil, + (664...667) + ), + DefNode(669...690)( + (673...674), + nil, + ParametersNode(675...685)( + [], + [OptionalParameterNode(675...678)( + :o, + (675...676), + (676...677), + IntegerNode(677...678)() + )], + [RequiredParameterNode(680...681)(:p)], + nil, + [], + nil, + BlockParameterNode(683...685)((684...685), (683...684)) + ), + nil, + [:o, :p, :b], + (669...672), + nil, + nil, + nil, + nil, + (687...690) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_args_assocs.txt b/test/yarp/snapshots/whitequark/args_args_assocs.txt new file mode 100644 index 0000000000..ee787d08a2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_args_assocs.txt @@ -0,0 +1,59 @@ +ProgramNode(0...46)( + [], + StatementsNode(0...46)( + [CallNode(0...19)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...18)( + [CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "foo"), + KeywordHashNode(9...18)( + [AssocNode(9...18)( + SymbolNode(9...13)((9...10), (10...13), nil, "foo"), + IntegerNode(17...18)(), + (14...16) + )] + )] + ), + (18...19), + nil, + 0, + "fun" + ), + CallNode(21...46)( + nil, + nil, + (21...24), + (24...25), + ArgumentsNode(25...45)( + [CallNode(25...28)(nil, nil, (25...28), nil, nil, nil, nil, 0, "foo"), + KeywordHashNode(30...39)( + [AssocNode(30...39)( + SymbolNode(30...34)((30...31), (31...34), nil, "foo"), + IntegerNode(38...39)(), + (35...37) + )] + ), + BlockArgumentNode(41...45)( + CallNode(42...45)( + nil, + nil, + (42...45), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (41...42) + )] + ), + (45...46), + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_args_assocs_comma.txt b/test/yarp/snapshots/whitequark/args_args_assocs_comma.txt new file mode 100644 index 0000000000..fead72a533 --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_args_assocs_comma.txt @@ -0,0 +1,25 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [CallNode(0...20)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...20), + (3...4), + ArgumentsNode(4...18)( + [CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "bar"), + KeywordHashNode(9...18)( + [AssocNode(9...18)( + SymbolNode(9...13)((9...10), (10...13), nil, "baz"), + IntegerNode(17...18)(), + (14...16) + )] + )] + ), + (19...20), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_args_comma.txt b/test/yarp/snapshots/whitequark/args_args_comma.txt new file mode 100644 index 0000000000..ff53a58eca --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_args_comma.txt @@ -0,0 +1,18 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...9), + (3...4), + ArgumentsNode(4...7)( + [CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "bar")] + ), + (8...9), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_args_star.txt b/test/yarp/snapshots/whitequark/args_args_star.txt new file mode 100644 index 0000000000..52b2c41202 --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_args_star.txt @@ -0,0 +1,73 @@ +ProgramNode(0...36)( + [], + StatementsNode(0...36)( + [CallNode(0...14)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...13)( + [CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "foo"), + SplatNode(9...13)( + (9...10), + CallNode(10...13)( + nil, + nil, + (10...13), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + )] + ), + (13...14), + nil, + 0, + "fun" + ), + CallNode(16...36)( + nil, + nil, + (16...19), + (19...20), + ArgumentsNode(20...35)( + [CallNode(20...23)(nil, nil, (20...23), nil, nil, nil, nil, 0, "foo"), + SplatNode(25...29)( + (25...26), + CallNode(26...29)( + nil, + nil, + (26...29), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + ), + BlockArgumentNode(31...35)( + CallNode(32...35)( + nil, + nil, + (32...35), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (31...32) + )] + ), + (35...36), + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_assocs.txt b/test/yarp/snapshots/whitequark/args_assocs.txt new file mode 100644 index 0000000000..8905c41d17 --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_assocs.txt @@ -0,0 +1,125 @@ +ProgramNode(0...114)( + [], + StatementsNode(0...114)( + [CallNode(0...14)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...13)( + [KeywordHashNode(4...13)( + [AssocNode(4...13)( + SymbolNode(4...8)((4...5), (5...8), nil, "foo"), + IntegerNode(12...13)(), + (9...11) + )] + )] + ), + (13...14), + nil, + 0, + "fun" + ), + CallNode(16...36)( + nil, + nil, + (16...19), + (19...20), + ArgumentsNode(20...35)( + [KeywordHashNode(20...29)( + [AssocNode(20...29)( + SymbolNode(20...24)((20...21), (21...24), nil, "foo"), + IntegerNode(28...29)(), + (25...27) + )] + ), + BlockArgumentNode(31...35)( + CallNode(32...35)( + nil, + nil, + (32...35), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (31...32) + )] + ), + (35...36), + nil, + 0, + "fun" + ), + CallNode(38...59)( + SelfNode(38...42)(), + (42...43), + (43...46), + nil, + ArgumentsNode(47...59)( + [CallNode(47...50)(nil, nil, (47...50), nil, nil, nil, nil, 0, "foo"), + KeywordHashNode(52...59)( + [AssocNode(52...59)( + SymbolNode(52...54)((52...53), (53...54), nil, "a"), + IntegerNode(58...59)(), + (55...57) + )] + )] + ), + nil, + nil, + 0, + "[]=" + ), + CallNode(61...76)( + SelfNode(61...65)(), + nil, + (65...76), + (65...66), + ArgumentsNode(66...75)( + [KeywordHashNode(66...75)( + [AssocNode(66...75)( + SymbolNode(66...70)((66...67), (67...70), nil, "bar"), + IntegerNode(74...75)(), + (71...73) + )] + )] + ), + (75...76), + nil, + 0, + "[]" + ), + SuperNode(78...95)( + (78...83), + (83...84), + ArgumentsNode(84...94)( + [KeywordHashNode(84...94)( + [AssocNode(84...94)( + SymbolNode(84...88)((84...85), (85...88), nil, "foo"), + IntegerNode(92...94)(), + (89...91) + )] + )] + ), + (94...95), + nil + ), + YieldNode(97...114)( + (97...102), + (102...103), + ArgumentsNode(103...113)( + [KeywordHashNode(103...113)( + [AssocNode(103...113)( + SymbolNode(103...107)((103...104), (104...107), nil, "foo"), + IntegerNode(111...113)(), + (108...110) + )] + )] + ), + (113...114) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_assocs_comma.txt b/test/yarp/snapshots/whitequark/args_assocs_comma.txt new file mode 100644 index 0000000000..0989a82c63 --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_assocs_comma.txt @@ -0,0 +1,24 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...15)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...15), + (3...4), + ArgumentsNode(4...13)( + [KeywordHashNode(4...13)( + [AssocNode(4...13)( + SymbolNode(4...8)((4...5), (5...8), nil, "baz"), + IntegerNode(12...13)(), + (9...11) + )] + )] + ), + (14...15), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_assocs_legacy.txt b/test/yarp/snapshots/whitequark/args_assocs_legacy.txt new file mode 100644 index 0000000000..8905c41d17 --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_assocs_legacy.txt @@ -0,0 +1,125 @@ +ProgramNode(0...114)( + [], + StatementsNode(0...114)( + [CallNode(0...14)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...13)( + [KeywordHashNode(4...13)( + [AssocNode(4...13)( + SymbolNode(4...8)((4...5), (5...8), nil, "foo"), + IntegerNode(12...13)(), + (9...11) + )] + )] + ), + (13...14), + nil, + 0, + "fun" + ), + CallNode(16...36)( + nil, + nil, + (16...19), + (19...20), + ArgumentsNode(20...35)( + [KeywordHashNode(20...29)( + [AssocNode(20...29)( + SymbolNode(20...24)((20...21), (21...24), nil, "foo"), + IntegerNode(28...29)(), + (25...27) + )] + ), + BlockArgumentNode(31...35)( + CallNode(32...35)( + nil, + nil, + (32...35), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (31...32) + )] + ), + (35...36), + nil, + 0, + "fun" + ), + CallNode(38...59)( + SelfNode(38...42)(), + (42...43), + (43...46), + nil, + ArgumentsNode(47...59)( + [CallNode(47...50)(nil, nil, (47...50), nil, nil, nil, nil, 0, "foo"), + KeywordHashNode(52...59)( + [AssocNode(52...59)( + SymbolNode(52...54)((52...53), (53...54), nil, "a"), + IntegerNode(58...59)(), + (55...57) + )] + )] + ), + nil, + nil, + 0, + "[]=" + ), + CallNode(61...76)( + SelfNode(61...65)(), + nil, + (65...76), + (65...66), + ArgumentsNode(66...75)( + [KeywordHashNode(66...75)( + [AssocNode(66...75)( + SymbolNode(66...70)((66...67), (67...70), nil, "bar"), + IntegerNode(74...75)(), + (71...73) + )] + )] + ), + (75...76), + nil, + 0, + "[]" + ), + SuperNode(78...95)( + (78...83), + (83...84), + ArgumentsNode(84...94)( + [KeywordHashNode(84...94)( + [AssocNode(84...94)( + SymbolNode(84...88)((84...85), (85...88), nil, "foo"), + IntegerNode(92...94)(), + (89...91) + )] + )] + ), + (94...95), + nil + ), + YieldNode(97...114)( + (97...102), + (102...103), + ArgumentsNode(103...113)( + [KeywordHashNode(103...113)( + [AssocNode(103...113)( + SymbolNode(103...107)((103...104), (104...107), nil, "foo"), + IntegerNode(111...113)(), + (108...110) + )] + )] + ), + (113...114) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_block_pass.txt b/test/yarp/snapshots/whitequark/args_block_pass.txt new file mode 100644 index 0000000000..548019ab2f --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_block_pass.txt @@ -0,0 +1,21 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...8)( + [BlockArgumentNode(4...8)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "bar"), + (4...5) + )] + ), + (8...9), + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_cmd.txt b/test/yarp/snapshots/whitequark/args_cmd.txt new file mode 100644 index 0000000000..cbb8ec0769 --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_cmd.txt @@ -0,0 +1,40 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallNode(0...10)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...9)( + [CallNode(4...9)( + nil, + nil, + (4...5), + nil, + ArgumentsNode(6...9)( + [CallNode(6...9)( + nil, + nil, + (6...9), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + 0, + "f" + )] + ), + (9...10), + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/args_star.txt b/test/yarp/snapshots/whitequark/args_star.txt new file mode 100644 index 0000000000..160865108b --- /dev/null +++ b/test/yarp/snapshots/whitequark/args_star.txt @@ -0,0 +1,61 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [CallNode(0...9)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...8)( + [SplatNode(4...8)( + (4...5), + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "bar") + )] + ), + (8...9), + nil, + 0, + "fun" + ), + CallNode(11...26)( + nil, + nil, + (11...14), + (14...15), + ArgumentsNode(15...25)( + [SplatNode(15...19)( + (15...16), + CallNode(16...19)( + nil, + nil, + (16...19), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + ), + BlockArgumentNode(21...25)( + CallNode(22...25)( + nil, + nil, + (22...25), + nil, + nil, + nil, + nil, + 0, + "baz" + ), + (21...22) + )] + ), + (25...26), + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_assocs.txt b/test/yarp/snapshots/whitequark/array_assocs.txt new file mode 100644 index 0000000000..6dc20662ca --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_assocs.txt @@ -0,0 +1,28 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [ArrayNode(0...10)( + [KeywordHashNode(2...8)( + [AssocNode(2...8)( + IntegerNode(2...3)(), + IntegerNode(7...8)(), + (4...6) + )] + )], + (0...1), + (9...10) + ), + ArrayNode(12...25)( + [IntegerNode(14...15)(), + KeywordHashNode(17...23)( + [AssocNode(17...23)( + IntegerNode(17...18)(), + IntegerNode(22...23)(), + (19...21) + )] + )], + (12...13), + (24...25) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_plain.txt b/test/yarp/snapshots/whitequark/array_plain.txt new file mode 100644 index 0000000000..d8c89ba8b9 --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_plain.txt @@ -0,0 +1,10 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [ArrayNode(0...6)( + [IntegerNode(1...2)(), IntegerNode(4...5)()], + (0...1), + (5...6) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_splat.txt b/test/yarp/snapshots/whitequark/array_splat.txt new file mode 100644 index 0000000000..a691e67405 --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_splat.txt @@ -0,0 +1,32 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [ArrayNode(0...6)( + [SplatNode(1...5)( + (1...2), + CallNode(2...5)(nil, nil, (2...5), nil, nil, nil, nil, 0, "foo") + )], + (0...1), + (5...6) + ), + ArrayNode(8...20)( + [IntegerNode(9...10)(), + SplatNode(12...16)( + (12...13), + CallNode(13...16)(nil, nil, (13...16), nil, nil, nil, nil, 0, "foo") + ), + IntegerNode(18...19)()], + (8...9), + (19...20) + ), + ArrayNode(22...31)( + [IntegerNode(23...24)(), + SplatNode(26...30)( + (26...27), + CallNode(27...30)(nil, nil, (27...30), nil, nil, nil, nil, 0, "foo") + )], + (22...23), + (30...31) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_symbols.txt b/test/yarp/snapshots/whitequark/array_symbols.txt new file mode 100644 index 0000000000..9d036af7cf --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_symbols.txt @@ -0,0 +1,11 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [ArrayNode(0...11)( + [SymbolNode(3...6)(nil, (3...6), nil, "foo"), + SymbolNode(7...10)(nil, (7...10), nil, "bar")], + (0...3), + (10...11) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_symbols_empty.txt b/test/yarp/snapshots/whitequark/array_symbols_empty.txt new file mode 100644 index 0000000000..ce2b82c914 --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_symbols_empty.txt @@ -0,0 +1,7 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [ArrayNode(0...4)([], (0...3), (3...4)), + ArrayNode(6...10)([], (6...9), (9...10))] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_symbols_interp.txt b/test/yarp/snapshots/whitequark/array_symbols_interp.txt new file mode 100644 index 0000000000..204ee1372d --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_symbols_interp.txt @@ -0,0 +1,57 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [ArrayNode(0...14)( + [SymbolNode(3...6)(nil, (3...6), nil, "foo"), + InterpolatedSymbolNode(7...13)( + nil, + [EmbeddedStatementsNode(7...13)( + (7...9), + StatementsNode(9...12)( + [CallNode(9...12)( + nil, + nil, + (9...12), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (12...13) + )], + nil + )], + (0...3), + (13...14) + ), + ArrayNode(16...29)( + [InterpolatedSymbolNode(19...28)( + nil, + [StringNode(19...22)(nil, (19...22), nil, "foo"), + EmbeddedStatementsNode(22...28)( + (22...24), + StatementsNode(24...27)( + [CallNode(24...27)( + nil, + nil, + (24...27), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (27...28) + )], + nil + )], + (16...19), + (28...29) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_words.txt b/test/yarp/snapshots/whitequark/array_words.txt new file mode 100644 index 0000000000..3308b6b7f2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_words.txt @@ -0,0 +1,11 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [ArrayNode(0...11)( + [StringNode(3...6)(nil, (3...6), nil, "foo"), + StringNode(7...10)(nil, (7...10), nil, "bar")], + (0...3), + (10...11) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_words_empty.txt b/test/yarp/snapshots/whitequark/array_words_empty.txt new file mode 100644 index 0000000000..ce2b82c914 --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_words_empty.txt @@ -0,0 +1,7 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [ArrayNode(0...4)([], (0...3), (3...4)), + ArrayNode(6...10)([], (6...9), (9...10))] + ) +) diff --git a/test/yarp/snapshots/whitequark/array_words_interp.txt b/test/yarp/snapshots/whitequark/array_words_interp.txt new file mode 100644 index 0000000000..e90e20d5e2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/array_words_interp.txt @@ -0,0 +1,62 @@ +ProgramNode(0...38)( + [], + StatementsNode(0...38)( + [ArrayNode(0...14)( + [StringNode(3...6)(nil, (3...6), nil, "foo"), + InterpolatedStringNode(0...13)( + nil, + [EmbeddedStatementsNode(7...13)( + (7...9), + StatementsNode(9...12)( + [CallNode(9...12)( + nil, + nil, + (9...12), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (12...13) + )], + nil + )], + (0...3), + (13...14) + ), + ArrayNode(16...38)( + [StringNode(19...22)(nil, (19...22), nil, "foo"), + InterpolatedStringNode(0...37)( + nil, + [EmbeddedStatementsNode(23...29)( + (23...25), + StatementsNode(25...28)( + [CallNode(25...28)( + nil, + nil, + (25...28), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (28...29) + ), + StringNode(29...32)(nil, (29...32), nil, "foo"), + EmbeddedVariableNode(32...37)( + (32...33), + InstanceVariableReadNode(33...37)() + )], + nil + )], + (16...19), + (37...38) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/asgn_cmd.txt b/test/yarp/snapshots/whitequark/asgn_cmd.txt new file mode 100644 index 0000000000..218c28dc0f --- /dev/null +++ b/test/yarp/snapshots/whitequark/asgn_cmd.txt @@ -0,0 +1,45 @@ +ProgramNode(0...30)( + [:foo, :bar], + StatementsNode(0...30)( + [LocalVariableWriteNode(0...17)( + :foo, + 0, + LocalVariableWriteNode(6...17)( + :bar, + 0, + CallNode(12...17)( + nil, + nil, + (12...13), + nil, + ArgumentsNode(14...17)([LocalVariableReadNode(14...17)(:foo, 0)]), + nil, + nil, + 0, + "m" + ), + (6...9), + (10...11) + ), + (0...3), + (4...5) + ), + LocalVariableWriteNode(19...30)( + :foo, + 0, + CallNode(25...30)( + nil, + nil, + (25...26), + nil, + ArgumentsNode(27...30)([LocalVariableReadNode(27...30)(:foo, 0)]), + nil, + nil, + 0, + "m" + ), + (19...22), + (23...24) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/asgn_mrhs.txt b/test/yarp/snapshots/whitequark/asgn_mrhs.txt new file mode 100644 index 0000000000..947c8e4450 --- /dev/null +++ b/test/yarp/snapshots/whitequark/asgn_mrhs.txt @@ -0,0 +1,52 @@ +ProgramNode(0...41)( + [:foo], + StatementsNode(0...41)( + [LocalVariableWriteNode(0...10)( + :foo, + 0, + SplatNode(6...10)( + (6...7), + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "bar") + ), + (0...3), + (4...5) + ), + LocalVariableWriteNode(12...24)( + :foo, + 0, + ArrayNode(18...24)( + [CallNode(18...21)(nil, nil, (18...21), nil, nil, nil, nil, 0, "bar"), + IntegerNode(23...24)()], + nil, + nil + ), + (12...15), + (16...17) + ), + LocalVariableWriteNode(26...41)( + :foo, + 0, + ArrayNode(32...41)( + [CallNode(32...35)(nil, nil, (32...35), nil, nil, nil, nil, 0, "baz"), + SplatNode(37...41)( + (37...38), + CallNode(38...41)( + nil, + nil, + (38...41), + nil, + nil, + nil, + nil, + 0, + "bar" + ) + )], + nil, + nil + ), + (26...29), + (30...31) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/back_ref.txt b/test/yarp/snapshots/whitequark/back_ref.txt new file mode 100644 index 0000000000..d072409376 --- /dev/null +++ b/test/yarp/snapshots/whitequark/back_ref.txt @@ -0,0 +1 @@ +ProgramNode(0...2)([], StatementsNode(0...2)([BackReferenceReadNode(0...2)()])) diff --git a/test/yarp/snapshots/whitequark/bang.txt b/test/yarp/snapshots/whitequark/bang.txt new file mode 100644 index 0000000000..25f3da6f04 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bang.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + CallNode(1...4)(nil, nil, (1...4), nil, nil, nil, nil, 0, "foo"), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bang_cmd.txt b/test/yarp/snapshots/whitequark/bang_cmd.txt new file mode 100644 index 0000000000..3e5080cebd --- /dev/null +++ b/test/yarp/snapshots/whitequark/bang_cmd.txt @@ -0,0 +1,28 @@ +ProgramNode(0...6)( + [], + StatementsNode(0...6)( + [CallNode(0...6)( + CallNode(1...6)( + nil, + nil, + (1...2), + nil, + ArgumentsNode(3...6)( + [CallNode(3...6)(nil, nil, (3...6), nil, nil, nil, nil, 0, "foo")] + ), + nil, + nil, + 0, + "m" + ), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/begin_cmdarg.txt b/test/yarp/snapshots/whitequark/begin_cmdarg.txt new file mode 100644 index 0000000000..2d1d4e53e5 --- /dev/null +++ b/test/yarp/snapshots/whitequark/begin_cmdarg.txt @@ -0,0 +1,43 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CallNode(0...28)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...28)( + [BeginNode(2...28)( + (2...7), + StatementsNode(8...24)( + [CallNode(8...24)( + IntegerNode(8...9)(), + (9...10), + (10...15), + nil, + nil, + nil, + BlockNode(16...24)( + [], + nil, + StatementsNode(19...20)([IntegerNode(19...20)()]), + (16...18), + (21...24) + ), + 0, + "times" + )] + ), + nil, + nil, + nil, + (25...28) + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/beginless_erange_after_newline.txt b/test/yarp/snapshots/whitequark/beginless_erange_after_newline.txt new file mode 100644 index 0000000000..50383976f2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/beginless_erange_after_newline.txt @@ -0,0 +1,7 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + RangeNode(4...10)(nil, IntegerNode(7...10)(), (4...7), 1)] + ) +) diff --git a/test/yarp/snapshots/whitequark/beginless_irange_after_newline.txt b/test/yarp/snapshots/whitequark/beginless_irange_after_newline.txt new file mode 100644 index 0000000000..a49985c762 --- /dev/null +++ b/test/yarp/snapshots/whitequark/beginless_irange_after_newline.txt @@ -0,0 +1,7 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + RangeNode(4...9)(nil, IntegerNode(6...9)(), (4...6), 0)] + ) +) diff --git a/test/yarp/snapshots/whitequark/beginless_range.txt b/test/yarp/snapshots/whitequark/beginless_range.txt new file mode 100644 index 0000000000..3750508629 --- /dev/null +++ b/test/yarp/snapshots/whitequark/beginless_range.txt @@ -0,0 +1,7 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [RangeNode(0...6)(nil, IntegerNode(3...6)(), (0...3), 1), + RangeNode(8...13)(nil, IntegerNode(10...13)(), (8...10), 0)] + ) +) diff --git a/test/yarp/snapshots/whitequark/blockarg.txt b/test/yarp/snapshots/whitequark/blockarg.txt new file mode 100644 index 0000000000..544b14f8bb --- /dev/null +++ b/test/yarp/snapshots/whitequark/blockarg.txt @@ -0,0 +1,26 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [DefNode(0...18)( + (4...5), + nil, + ParametersNode(6...12)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(6...12)((7...12), (6...7)) + ), + nil, + [:block], + (0...3), + nil, + (5...6), + (12...13), + nil, + (15...18) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/blockargs.txt b/test/yarp/snapshots/whitequark/blockargs.txt new file mode 100644 index 0000000000..3115c58df1 --- /dev/null +++ b/test/yarp/snapshots/whitequark/blockargs.txt @@ -0,0 +1,1052 @@ +ProgramNode(0...550)( + [], + StatementsNode(0...550)( + [CallNode(0...5)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(1...5)([], nil, nil, (1...2), (4...5)), + 0, + "f" + ), + CallNode(7...15)( + nil, + nil, + (7...8), + nil, + nil, + nil, + BlockNode(8...15)( + [], + BlockParametersNode(10...13)(nil, [], (10...11), (12...13)), + nil, + (8...9), + (14...15) + ), + 0, + "f" + ), + CallNode(17...26)( + nil, + nil, + (17...18), + nil, + nil, + nil, + BlockNode(18...26)( + [:b], + BlockParametersNode(20...24)( + ParametersNode(21...23)( + [], + [], + [], + nil, + [], + nil, + BlockParameterNode(21...23)((22...23), (21...22)) + ), + [], + (20...21), + (23...24) + ), + nil, + (18...19), + (25...26) + ), + 0, + "f" + ), + CallNode(28...44)( + nil, + nil, + (28...29), + nil, + nil, + nil, + BlockNode(29...44)( + [:baz, :b], + BlockParametersNode(31...42)( + ParametersNode(32...41)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(32...37)((32...34), (34...37)), + BlockParameterNode(39...41)((40...41), (39...40)) + ), + [], + (31...32), + (41...42) + ), + nil, + (29...30), + (43...44) + ), + 0, + "f" + ), + CallNode(46...58)( + nil, + nil, + (46...47), + nil, + nil, + nil, + BlockNode(47...58)( + [:*, :b], + BlockParametersNode(49...56)( + ParametersNode(50...55)( + [], + [], + [], + RestParameterNode(50...51)((50...51), nil), + [], + nil, + BlockParameterNode(53...55)((54...55), (53...54)) + ), + [], + (49...50), + (55...56) + ), + nil, + (47...48), + (57...58) + ), + 0, + "f" + ), + CallNode(60...76)( + nil, + nil, + (60...61), + nil, + nil, + nil, + BlockNode(61...76)( + [:r, :p, :b], + BlockParametersNode(63...74)( + ParametersNode(64...73)( + [], + [], + [RequiredParameterNode(68...69)(:p)], + RestParameterNode(64...66)((64...65), (65...66)), + [], + nil, + BlockParameterNode(71...73)((72...73), (71...72)) + ), + [], + (63...64), + (73...74) + ), + nil, + (61...62), + (75...76) + ), + 0, + "f" + ), + CallNode(78...91)( + nil, + nil, + (78...79), + nil, + nil, + nil, + BlockNode(79...91)( + [:s, :b], + BlockParametersNode(81...89)( + ParametersNode(82...88)( + [], + [], + [], + RestParameterNode(82...84)((82...83), (83...84)), + [], + nil, + BlockParameterNode(86...88)((87...88), (86...87)) + ), + [], + (81...82), + (88...89) + ), + nil, + (79...80), + (90...91) + ), + 0, + "f" + ), + CallNode(93...102)( + nil, + nil, + (93...94), + nil, + nil, + nil, + BlockNode(94...102)( + [:s], + BlockParametersNode(96...100)( + ParametersNode(97...99)( + [], + [], + [], + RestParameterNode(97...99)((97...98), (98...99)), + [], + nil, + nil + ), + [], + (96...97), + (99...100) + ), + nil, + (94...95), + (101...102) + ), + 0, + "f" + ), + CallNode(104...112)( + nil, + nil, + (104...105), + nil, + nil, + nil, + BlockNode(105...112)( + [:*], + BlockParametersNode(107...110)( + ParametersNode(108...109)( + [], + [], + [], + RestParameterNode(108...109)((108...109), nil), + [], + nil, + nil + ), + [], + (107...108), + (109...110) + ), + nil, + (105...106), + (111...112) + ), + 0, + "f" + ), + CallNode(114...125)( + nil, + nil, + (114...115), + nil, + nil, + nil, + BlockNode(115...125)( + [:a], + BlockParametersNode(117...123)( + nil, + [(120...121)], + (117...118), + (122...123) + ), + nil, + (115...116), + (124...125) + ), + 0, + "f" + ), + CallNode(127...136)( + nil, + nil, + (127...128), + nil, + nil, + nil, + BlockNode(128...136)( + [:a], + BlockParametersNode(130...134)( + nil, + [(132...133)], + (130...131), + (133...134) + ), + nil, + (128...129), + (135...136) + ), + 0, + "f" + ), + CallNode(138...150)( + nil, + nil, + (138...139), + nil, + nil, + nil, + BlockNode(139...150)( + [:a, :b], + BlockParametersNode(141...148)( + ParametersNode(142...147)( + [RequiredParameterNode(142...143)(:a)], + [], + [], + nil, + [], + nil, + BlockParameterNode(145...147)((146...147), (145...146)) + ), + [], + (141...142), + (147...148) + ), + nil, + (139...140), + (149...150) + ), + 0, + "f" + ), + CallNode(152...167)( + nil, + nil, + (152...153), + nil, + nil, + nil, + BlockNode(153...167)( + [:a, :*, :b], + BlockParametersNode(155...165)( + ParametersNode(156...164)( + [RequiredParameterNode(156...157)(:a)], + [], + [], + RestParameterNode(159...160)((159...160), nil), + [], + nil, + BlockParameterNode(162...164)((163...164), (162...163)) + ), + [], + (155...156), + (164...165) + ), + nil, + (153...154), + (166...167) + ), + 0, + "f" + ), + CallNode(169...188)( + nil, + nil, + (169...170), + nil, + nil, + nil, + BlockNode(170...188)( + [:a, :r, :p, :b], + BlockParametersNode(172...186)( + ParametersNode(173...185)( + [RequiredParameterNode(173...174)(:a)], + [], + [RequiredParameterNode(180...181)(:p)], + RestParameterNode(176...178)((176...177), (177...178)), + [], + nil, + BlockParameterNode(183...185)((184...185), (183...184)) + ), + [], + (172...173), + (185...186) + ), + nil, + (170...171), + (187...188) + ), + 0, + "f" + ), + CallNode(190...206)( + nil, + nil, + (190...191), + nil, + nil, + nil, + BlockNode(191...206)( + [:a, :s, :b], + BlockParametersNode(193...204)( + ParametersNode(194...203)( + [RequiredParameterNode(194...195)(:a)], + [], + [], + RestParameterNode(197...199)((197...198), (198...199)), + [], + nil, + BlockParameterNode(201...203)((202...203), (201...202)) + ), + [], + (193...194), + (203...204) + ), + nil, + (191...192), + (205...206) + ), + 0, + "f" + ), + CallNode(208...220)( + nil, + nil, + (208...209), + nil, + nil, + nil, + BlockNode(209...220)( + [:a, :s], + BlockParametersNode(211...218)( + ParametersNode(212...217)( + [RequiredParameterNode(212...213)(:a)], + [], + [], + RestParameterNode(215...217)((215...216), (216...217)), + [], + nil, + nil + ), + [], + (211...212), + (217...218) + ), + nil, + (209...210), + (219...220) + ), + 0, + "f" + ), + CallNode(222...233)( + nil, + nil, + (222...223), + nil, + nil, + nil, + BlockNode(223...233)( + [:a, :*], + BlockParametersNode(225...231)( + ParametersNode(226...230)( + [RequiredParameterNode(226...227)(:a)], + [], + [], + RestParameterNode(229...230)((229...230), nil), + [], + nil, + nil + ), + [], + (225...226), + (230...231) + ), + nil, + (223...224), + (232...233) + ), + 0, + "f" + ), + CallNode(235...247)( + nil, + nil, + (235...236), + nil, + nil, + nil, + BlockNode(236...247)( + [:a, :b], + BlockParametersNode(238...245)( + ParametersNode(239...244)( + [RequiredParameterNode(239...240)(:a), + RequiredParameterNode(242...243)(:b)], + [], + [], + RestParameterNode(243...244)((243...244), nil), + [], + nil, + nil + ), + [], + (238...239), + (244...245) + ), + nil, + (236...237), + (246...247) + ), + 0, + "f" + ), + CallNode(249...260)( + nil, + nil, + (249...250), + nil, + nil, + nil, + BlockNode(250...260)( + [:a, :c], + BlockParametersNode(252...258)( + ParametersNode(253...257)( + [RequiredParameterNode(253...254)(:a), + RequiredParameterNode(256...257)(:c)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (252...253), + (257...258) + ), + nil, + (250...251), + (259...260) + ), + 0, + "f" + ), + CallNode(262...279)( + nil, + nil, + (262...263), + nil, + nil, + nil, + BlockNode(263...279)( + [:a, :o, :b], + BlockParametersNode(265...277)( + ParametersNode(266...276)( + [RequiredParameterNode(266...267)(:a)], + [OptionalParameterNode(269...272)( + :o, + (269...270), + (270...271), + IntegerNode(271...272)() + )], + [], + nil, + [], + nil, + BlockParameterNode(274...276)((275...276), (274...275)) + ), + [], + (265...266), + (276...277) + ), + nil, + (263...264), + (278...279) + ), + 0, + "f" + ), + CallNode(281...305)( + nil, + nil, + (281...282), + nil, + nil, + nil, + BlockNode(282...305)( + [:a, :o, :r, :p, :b], + BlockParametersNode(284...303)( + ParametersNode(285...302)( + [RequiredParameterNode(285...286)(:a)], + [OptionalParameterNode(288...291)( + :o, + (288...289), + (289...290), + IntegerNode(290...291)() + )], + [RequiredParameterNode(297...298)(:p)], + RestParameterNode(293...295)((293...294), (294...295)), + [], + nil, + BlockParameterNode(300...302)((301...302), (300...301)) + ), + [], + (284...285), + (302...303) + ), + nil, + (282...283), + (304...305) + ), + 0, + "f" + ), + CallNode(307...334)( + nil, + nil, + (307...308), + nil, + nil, + nil, + BlockNode(308...334)( + [:a, :o, :o1, :r, :b], + BlockParametersNode(310...332)( + ParametersNode(311...331)( + [RequiredParameterNode(311...312)(:a)], + [OptionalParameterNode(314...317)( + :o, + (314...315), + (315...316), + IntegerNode(316...317)() + ), + OptionalParameterNode(319...323)( + :o1, + (319...321), + (321...322), + IntegerNode(322...323)() + )], + [], + RestParameterNode(325...327)((325...326), (326...327)), + [], + nil, + BlockParameterNode(329...331)((330...331), (329...330)) + ), + [], + (310...311), + (331...332) + ), + nil, + (308...309), + (333...334) + ), + 0, + "f" + ), + CallNode(336...356)( + nil, + nil, + (336...337), + nil, + nil, + nil, + BlockNode(337...356)( + [:a, :o, :p, :b], + BlockParametersNode(339...354)( + ParametersNode(340...353)( + [RequiredParameterNode(340...341)(:a)], + [OptionalParameterNode(343...346)( + :o, + (343...344), + (344...345), + IntegerNode(345...346)() + )], + [RequiredParameterNode(348...349)(:p)], + nil, + [], + nil, + BlockParameterNode(351...353)((352...353), (351...352)) + ), + [], + (339...340), + (353...354) + ), + nil, + (337...338), + (355...356) + ), + 0, + "f" + ), + CallNode(358...367)( + nil, + nil, + (358...359), + nil, + nil, + nil, + BlockNode(359...367)( + [:a], + BlockParametersNode(361...365)( + ParametersNode(362...364)( + [RequiredParameterNode(362...363)(:a)], + [], + [], + RestParameterNode(363...364)((363...364), nil), + [], + nil, + nil + ), + [], + (361...362), + (364...365) + ), + nil, + (359...360), + (366...367) + ), + 0, + "f" + ), + CallNode(369...377)( + nil, + nil, + (369...370), + nil, + nil, + nil, + BlockNode(370...377)( + [:a], + BlockParametersNode(372...375)( + ParametersNode(373...374)( + [RequiredParameterNode(373...374)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (372...373), + (374...375) + ), + nil, + (370...371), + (376...377) + ), + 0, + "f" + ), + CallNode(379...387)( + nil, + nil, + (379...380), + nil, + nil, + nil, + BlockNode(380...387)( + [:a], + BlockParametersNode(382...385)( + ParametersNode(383...384)( + [RequiredParameterNode(383...384)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (382...383), + (384...385) + ), + nil, + (380...381), + (386...387) + ), + 0, + "f" + ), + CallNode(389...397)( + nil, + nil, + (389...390), + nil, + nil, + nil, + BlockNode(390...397)( + [:a], + BlockParametersNode(392...395)( + ParametersNode(393...394)( + [RequiredParameterNode(393...394)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (392...393), + (394...395) + ), + nil, + (390...391), + (396...397) + ), + 0, + "f" + ), + CallNode(399...416)( + nil, + nil, + (399...400), + nil, + nil, + nil, + BlockNode(400...416)( + [:foo, :b], + BlockParametersNode(402...414)( + ParametersNode(403...413)( + [], + [], + [], + nil, + [KeywordParameterNode(403...409)( + (403...407), + IntegerNode(408...409)() + )], + nil, + BlockParameterNode(411...413)((412...413), (411...412)) + ), + [], + (402...403), + (413...414) + ), + nil, + (400...401), + (415...416) + ), + 0, + "f" + ), + CallNode(418...450)( + nil, + nil, + (418...419), + nil, + nil, + nil, + BlockNode(419...450)( + [:foo, :bar, :baz, :b], + BlockParametersNode(421...448)( + ParametersNode(422...447)( + [], + [], + [], + nil, + [KeywordParameterNode(422...428)( + (422...426), + IntegerNode(427...428)() + ), + KeywordParameterNode(430...436)( + (430...434), + IntegerNode(435...436)() + )], + KeywordRestParameterNode(438...443)((438...440), (440...443)), + BlockParameterNode(445...447)((446...447), (445...446)) + ), + [], + (421...422), + (447...448) + ), + nil, + (419...420), + (449...450) + ), + 0, + "f" + ), + CallNode(452...463)( + nil, + nil, + (452...453), + nil, + nil, + nil, + BlockNode(453...463)( + [:foo], + BlockParametersNode(455...461)( + ParametersNode(456...460)( + [], + [], + [], + nil, + [KeywordParameterNode(456...460)((456...460), nil)], + nil, + nil + ), + [], + (455...456), + (460...461) + ), + nil, + (453...454), + (462...463) + ), + 0, + "f" + ), + CallNode(465...479)( + nil, + nil, + (465...466), + nil, + nil, + nil, + BlockNode(466...479)( + [:o, :b], + BlockParametersNode(468...477)( + ParametersNode(469...476)( + [], + [OptionalParameterNode(469...472)( + :o, + (469...470), + (470...471), + IntegerNode(471...472)() + )], + [], + nil, + [], + nil, + BlockParameterNode(474...476)((475...476), (474...475)) + ), + [], + (468...469), + (476...477) + ), + nil, + (466...467), + (478...479) + ), + 0, + "f" + ), + CallNode(481...499)( + nil, + nil, + (481...482), + nil, + nil, + nil, + BlockNode(482...499)( + [:o, :r, :b], + BlockParametersNode(484...497)( + ParametersNode(485...496)( + [], + [OptionalParameterNode(485...488)( + :o, + (485...486), + (486...487), + IntegerNode(487...488)() + )], + [], + RestParameterNode(490...492)((490...491), (491...492)), + [], + nil, + BlockParameterNode(494...496)((495...496), (494...495)) + ), + [], + (484...485), + (496...497) + ), + nil, + (482...483), + (498...499) + ), + 0, + "f" + ), + CallNode(501...522)( + nil, + nil, + (501...502), + nil, + nil, + nil, + BlockNode(502...522)( + [:o, :r, :p, :b], + BlockParametersNode(504...520)( + ParametersNode(505...519)( + [], + [OptionalParameterNode(505...508)( + :o, + (505...506), + (506...507), + IntegerNode(507...508)() + )], + [RequiredParameterNode(514...515)(:p)], + RestParameterNode(510...512)((510...511), (511...512)), + [], + nil, + BlockParameterNode(517...519)((518...519), (517...518)) + ), + [], + (504...505), + (519...520) + ), + nil, + (502...503), + (521...522) + ), + 0, + "f" + ), + CallNode(524...541)( + nil, + nil, + (524...525), + nil, + nil, + nil, + BlockNode(525...541)( + [:o, :p, :b], + BlockParametersNode(527...539)( + ParametersNode(528...538)( + [], + [OptionalParameterNode(528...531)( + :o, + (528...529), + (529...530), + IntegerNode(530...531)() + )], + [RequiredParameterNode(533...534)(:p)], + nil, + [], + nil, + BlockParameterNode(536...538)((537...538), (536...537)) + ), + [], + (527...528), + (538...539) + ), + nil, + (525...526), + (540...541) + ), + 0, + "f" + ), + CallNode(543...550)( + nil, + nil, + (543...544), + nil, + nil, + nil, + BlockNode(544...550)( + [], + BlockParametersNode(546...548)(nil, [], (546...547), (547...548)), + nil, + (544...545), + (549...550) + ), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/break.txt b/test/yarp/snapshots/whitequark/break.txt new file mode 100644 index 0000000000..df24567c4d --- /dev/null +++ b/test/yarp/snapshots/whitequark/break.txt @@ -0,0 +1,40 @@ +ProgramNode(0...37)( + [], + StatementsNode(0...37)( + [BreakNode(0...5)(nil, (0...5)), + BreakNode(7...16)( + ArgumentsNode(13...16)( + [CallNode(13...16)(nil, nil, (13...16), nil, nil, nil, nil, 0, "foo")] + ), + (7...12) + ), + BreakNode(18...25)( + ArgumentsNode(23...25)( + [ParenthesesNode(23...25)(nil, (23...24), (24...25))] + ), + (18...23) + ), + BreakNode(27...37)( + ArgumentsNode(32...37)( + [ParenthesesNode(32...37)( + StatementsNode(33...36)( + [CallNode(33...36)( + nil, + nil, + (33...36), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (32...33), + (36...37) + )] + ), + (27...32) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/break_block.txt b/test/yarp/snapshots/whitequark/break_block.txt new file mode 100644 index 0000000000..41e083f25f --- /dev/null +++ b/test/yarp/snapshots/whitequark/break_block.txt @@ -0,0 +1,33 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [BreakNode(0...20)( + ArgumentsNode(6...20)( + [CallNode(6...20)( + nil, + nil, + (6...9), + nil, + ArgumentsNode(10...13)( + [CallNode(10...13)( + nil, + nil, + (10...13), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + BlockNode(14...20)([], nil, nil, (14...16), (17...20)), + 0, + "fun" + )] + ), + (0...5) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_435.txt b/test/yarp/snapshots/whitequark/bug_435.txt new file mode 100644 index 0000000000..ed5a985e3a --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_435.txt @@ -0,0 +1,34 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [InterpolatedStringNode(0...14)( + (0...1), + [EmbeddedStatementsNode(1...13)( + (1...3), + StatementsNode(3...12)( + [LambdaNode(3...12)( + [:foo], + (3...5), + BlockParametersNode(6...9)( + ParametersNode(6...9)( + [RequiredParameterNode(6...9)(:foo)], + [], + [], + nil, + [], + nil, + nil + ), + [], + nil, + nil + ), + nil + )] + ), + (12...13) + )], + (13...14) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_447.txt b/test/yarp/snapshots/whitequark/bug_447.txt new file mode 100644 index 0000000000..3903748cec --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_447.txt @@ -0,0 +1,29 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [CallNode(0...11)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...4)([ArrayNode(2...4)([], (2...3), (3...4))]), + nil, + BlockNode(5...11)([], nil, nil, (5...7), (8...11)), + 0, + "m" + ), + CallNode(13...27)( + nil, + nil, + (13...14), + nil, + ArgumentsNode(15...20)( + [ArrayNode(15...17)([], (15...16), (16...17)), IntegerNode(19...20)()] + ), + nil, + BlockNode(21...27)([], nil, nil, (21...23), (24...27)), + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_452.txt b/test/yarp/snapshots/whitequark/bug_452.txt new file mode 100644 index 0000000000..78fc5f28a2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_452.txt @@ -0,0 +1,43 @@ +ProgramNode(0...37)( + [], + StatementsNode(0...37)( + [CallNode(0...21)( + nil, + nil, + (0...2), + nil, + ArgumentsNode(3...21)( + [CallNode(3...21)( + ParenthesesNode(3...10)( + StatementsNode(4...9)([IntegerNode(4...9)()]), + (3...4), + (9...10) + ), + (10...11), + (11...19), + (19...20), + nil, + (20...21), + nil, + 0, + "toString" + )] + ), + nil, + nil, + 0, + "td" + ), + CallNode(23...37)( + CallNode(23...25)(nil, nil, (23...25), nil, nil, nil, nil, 0, "td"), + (25...26), + (26...29), + nil, + nil, + nil, + BlockNode(30...37)([], nil, nil, (30...32), (34...37)), + 0, + "num" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_466.txt b/test/yarp/snapshots/whitequark/bug_466.txt new file mode 100644 index 0000000000..3b153e4995 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_466.txt @@ -0,0 +1,54 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [CallNode(0...27)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...19)( + [InterpolatedStringNode(4...19)( + (4...5), + [EmbeddedStatementsNode(5...18)( + (5...7), + StatementsNode(7...17)( + [CallNode(7...17)( + ParenthesesNode(7...12)( + StatementsNode(8...11)( + [CallNode(8...11)( + IntegerNode(8...9)(), + nil, + (9...10), + nil, + ArgumentsNode(10...11)([IntegerNode(10...11)()]), + nil, + nil, + 0, + "+" + )] + ), + (7...8), + (11...12) + ), + (12...13), + (13...17), + nil, + nil, + nil, + nil, + 0, + "to_i" + )] + ), + (17...18) + )], + (18...19) + )] + ), + nil, + BlockNode(20...27)([], nil, nil, (20...22), (24...27)), + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_473.txt b/test/yarp/snapshots/whitequark/bug_473.txt new file mode 100644 index 0000000000..a9978db50d --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_473.txt @@ -0,0 +1,26 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...9)( + [InterpolatedStringNode(2...9)( + (2...3), + [EmbeddedStatementsNode(3...8)( + (3...5), + StatementsNode(5...7)([ArrayNode(5...7)([], (5...6), (6...7))]), + (7...8) + )], + (8...9) + )] + ), + nil, + nil, + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_480.txt b/test/yarp/snapshots/whitequark/bug_480.txt new file mode 100644 index 0000000000..8457cefa86 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_480.txt @@ -0,0 +1,29 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...12)( + [InterpolatedStringNode(2...12)( + (2...3), + [EmbeddedStatementsNode(3...6)((3...5), nil, (5...6)), + EmbeddedStatementsNode(6...11)( + (6...8), + StatementsNode(8...10)( + [ParenthesesNode(8...10)(nil, (8...9), (9...10))] + ), + (10...11) + )], + (11...12) + )] + ), + nil, + nil, + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_481.txt b/test/yarp/snapshots/whitequark/bug_481.txt new file mode 100644 index 0000000000..1bd74e1235 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_481.txt @@ -0,0 +1,41 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...14)( + [DefNode(2...14)( + (6...7), + nil, + nil, + nil, + [], + (2...5), + nil, + (7...8), + (8...9), + nil, + (11...14) + )] + ), + nil, + nil, + 0, + "m" + ), + CallNode(16...28)( + IntegerNode(16...17)(), + (17...18), + (18...21), + nil, + nil, + nil, + BlockNode(22...28)([], nil, nil, (22...24), (25...28)), + 0, + "tap" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_ascii_8bit_in_literal.txt b/test/yarp/snapshots/whitequark/bug_ascii_8bit_in_literal.txt new file mode 100644 index 0000000000..40251879fc --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_ascii_8bit_in_literal.txt @@ -0,0 +1,6 @@ +ProgramNode(24...90)( + [], + StatementsNode(24...90)( + [StringNode(24...90)((24...25), (25...89), (89...90), "проверка")] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_cmd_string_lookahead.txt b/test/yarp/snapshots/whitequark/bug_cmd_string_lookahead.txt new file mode 100644 index 0000000000..0004e1a758 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_cmd_string_lookahead.txt @@ -0,0 +1,18 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...4), + nil, + ArgumentsNode(5...10)( + [StringNode(5...10)((5...6), (6...9), (9...10), "foo")] + ), + nil, + BlockNode(11...17)([], nil, nil, (11...13), (14...17)), + 0, + "desc" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_cmdarg.txt b/test/yarp/snapshots/whitequark/bug_cmdarg.txt new file mode 100644 index 0000000000..bfce248782 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_cmdarg.txt @@ -0,0 +1,83 @@ +ProgramNode(0...56)( + [], + StatementsNode(0...56)( + [CallNode(0...15)( + nil, + nil, + (0...6), + nil, + ArgumentsNode(7...15)( + [KeywordHashNode(7...15)( + [AssocNode(7...15)( + SymbolNode(7...10)(nil, (7...9), (9...10), "do"), + TrueNode(11...15)(), + nil + )] + )] + ), + nil, + nil, + 0, + "assert" + ), + CallNode(17...28)( + nil, + nil, + (17...23), + nil, + ArgumentsNode(24...28)( + [CallNode(24...28)( + nil, + nil, + (24...28), + nil, + nil, + nil, + nil, + 0, + "dogs" + )] + ), + nil, + nil, + 0, + "assert" + ), + CallNode(30...56)( + nil, + nil, + (30...31), + nil, + ArgumentsNode(32...56)( + [KeywordHashNode(32...56)( + [AssocNode(32...56)( + SymbolNode(32...34)(nil, (32...33), (33...34), "x"), + LambdaNode(35...56)( + [], + (35...37), + nil, + StatementsNode(41...52)( + [CallNode(41...52)( + nil, + nil, + (41...45), + nil, + nil, + nil, + BlockNode(46...52)([], nil, nil, (46...48), (49...52)), + 0, + "meth" + )] + ) + ), + nil + )] + )] + ), + nil, + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_def_no_paren_eql_begin.txt b/test/yarp/snapshots/whitequark/bug_def_no_paren_eql_begin.txt new file mode 100644 index 0000000000..12efa14109 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_def_no_paren_eql_begin.txt @@ -0,0 +1,18 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [DefNode(0...23)( + (4...7), + nil, + nil, + nil, + [], + (0...3), + nil, + nil, + nil, + nil, + (20...23) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_do_block_in_call_args.txt b/test/yarp/snapshots/whitequark/bug_do_block_in_call_args.txt new file mode 100644 index 0000000000..555819dfbd --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_do_block_in_call_args.txt @@ -0,0 +1,42 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [CallNode(0...33)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...33)( + [DefNode(4...33)( + (8...11), + nil, + nil, + StatementsNode(13...29)( + [CallNode(13...29)( + SelfNode(13...17)(), + (17...18), + (18...22), + nil, + nil, + nil, + BlockNode(23...29)([], nil, nil, (23...25), (26...29)), + 0, + "each" + )] + ), + [], + (4...7), + nil, + nil, + nil, + nil, + (30...33) + )] + ), + nil, + nil, + 0, + "bar" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_do_block_in_cmdarg.txt b/test/yarp/snapshots/whitequark/bug_do_block_in_cmdarg.txt new file mode 100644 index 0000000000..81fa1d3609 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_do_block_in_cmdarg.txt @@ -0,0 +1,34 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...17)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...17)( + [ParenthesesNode(4...17)( + StatementsNode(5...16)( + [CallNode(5...16)( + nil, + nil, + (5...9), + nil, + nil, + nil, + BlockNode(10...16)([], nil, nil, (10...12), (13...16)), + 0, + "proc" + )] + ), + (4...5), + (16...17) + )] + ), + nil, + nil, + 0, + "tap" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_do_block_in_hash_brace.txt b/test/yarp/snapshots/whitequark/bug_do_block_in_hash_brace.txt new file mode 100644 index 0000000000..bce92ea25b --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_do_block_in_hash_brace.txt @@ -0,0 +1,249 @@ +ProgramNode(0...225)( + [], + StatementsNode(0...225)( + [CallNode(0...42)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...42)( + [SymbolNode(2...6)((2...3), (3...6), nil, "foo"), + HashNode(8...42)( + (8...9), + [AssocNode(9...25)( + SymbolNode(9...13)((9...10), (10...11), (11...13), "a"), + CallNode(14...25)( + nil, + nil, + (14...18), + nil, + nil, + nil, + BlockNode(19...25)([], nil, nil, (19...21), (22...25)), + 0, + "proc" + ), + nil + ), + AssocNode(27...41)( + SymbolNode(27...29)(nil, (27...28), (28...29), "b"), + CallNode(30...41)( + nil, + nil, + (30...34), + nil, + nil, + nil, + BlockNode(35...41)([], nil, nil, (35...37), (38...41)), + 0, + "proc" + ), + nil + )], + (41...42) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(44...84)( + nil, + nil, + (44...45), + nil, + ArgumentsNode(46...84)( + [SymbolNode(46...50)((46...47), (47...50), nil, "foo"), + HashNode(52...84)( + (52...53), + [AssocSplatNode(53...67)( + CallNode(56...67)( + nil, + nil, + (56...60), + nil, + nil, + nil, + BlockNode(61...67)([], nil, nil, (61...63), (64...67)), + 0, + "proc" + ), + (53...55) + ), + AssocNode(69...83)( + SymbolNode(69...71)(nil, (69...70), (70...71), "b"), + CallNode(72...83)( + nil, + nil, + (72...76), + nil, + nil, + nil, + BlockNode(77...83)([], nil, nil, (77...79), (80...83)), + 0, + "proc" + ), + nil + )], + (83...84) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(86...129)( + nil, + nil, + (86...87), + nil, + ArgumentsNode(88...129)( + [SymbolNode(88...92)((88...89), (89...92), nil, "foo"), + HashNode(94...129)( + (94...95), + [AssocNode(95...112)( + SymbolNode(95...97)((95...96), (96...97), nil, "a"), + CallNode(101...112)( + nil, + nil, + (101...105), + nil, + nil, + nil, + BlockNode(106...112)([], nil, nil, (106...108), (109...112)), + 0, + "proc" + ), + (98...100) + ), + AssocNode(114...128)( + SymbolNode(114...116)(nil, (114...115), (115...116), "b"), + CallNode(117...128)( + nil, + nil, + (117...121), + nil, + nil, + nil, + BlockNode(122...128)([], nil, nil, (122...124), (125...128)), + 0, + "proc" + ), + nil + )], + (128...129) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(131...171)( + nil, + nil, + (131...132), + nil, + ArgumentsNode(133...171)( + [SymbolNode(133...137)((133...134), (134...137), nil, "foo"), + HashNode(139...171)( + (139...140), + [AssocNode(140...154)( + SymbolNode(140...142)(nil, (140...141), (141...142), "a"), + CallNode(143...154)( + nil, + nil, + (143...147), + nil, + nil, + nil, + BlockNode(148...154)([], nil, nil, (148...150), (151...154)), + 0, + "proc" + ), + nil + ), + AssocNode(156...170)( + SymbolNode(156...158)(nil, (156...157), (157...158), "b"), + CallNode(159...170)( + nil, + nil, + (159...163), + nil, + nil, + nil, + BlockNode(164...170)([], nil, nil, (164...166), (167...170)), + 0, + "proc" + ), + nil + )], + (170...171) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(173...225)( + nil, + nil, + (173...174), + nil, + ArgumentsNode(175...225)( + [SymbolNode(175...179)((175...176), (176...179), nil, "foo"), + HashNode(181...225)( + (181...182), + [AssocNode(182...208)( + CallNode(182...193)( + nil, + nil, + (182...186), + nil, + nil, + nil, + BlockNode(187...193)([], nil, nil, (187...189), (190...193)), + 0, + "proc" + ), + CallNode(197...208)( + nil, + nil, + (197...201), + nil, + nil, + nil, + BlockNode(202...208)([], nil, nil, (202...204), (205...208)), + 0, + "proc" + ), + (194...196) + ), + AssocNode(210...224)( + SymbolNode(210...212)(nil, (210...211), (211...212), "b"), + CallNode(213...224)( + nil, + nil, + (213...217), + nil, + nil, + nil, + BlockNode(218...224)([], nil, nil, (218...220), (221...224)), + 0, + "proc" + ), + nil + )], + (224...225) + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_heredoc_do.txt b/test/yarp/snapshots/whitequark/bug_heredoc_do.txt new file mode 100644 index 0000000000..b3ca8ffab1 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_heredoc_do.txt @@ -0,0 +1,18 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [CallNode(0...23)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...20)( + [InterpolatedStringNode(2...20)((2...10), [], (14...20))] + ), + nil, + BlockNode(11...23)([], nil, nil, (11...13), (20...23)), + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_interp_single.txt b/test/yarp/snapshots/whitequark/bug_interp_single.txt new file mode 100644 index 0000000000..abfa2dfe89 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_interp_single.txt @@ -0,0 +1,27 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [InterpolatedStringNode(0...6)( + (0...1), + [EmbeddedStatementsNode(1...5)( + (1...3), + StatementsNode(3...4)([IntegerNode(3...4)()]), + (4...5) + )], + (5...6) + ), + ArrayNode(8...16)( + [InterpolatedStringNode(0...15)( + nil, + [EmbeddedStatementsNode(11...15)( + (11...13), + StatementsNode(13...14)([IntegerNode(13...14)()]), + (14...15) + )], + nil + )], + (8...11), + (15...16) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_lambda_leakage.txt b/test/yarp/snapshots/whitequark/bug_lambda_leakage.txt new file mode 100644 index 0000000000..4fac00cf34 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_lambda_leakage.txt @@ -0,0 +1,25 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [LambdaNode(0...12)( + [:scope], + (0...2), + BlockParametersNode(2...9)( + ParametersNode(3...8)( + [RequiredParameterNode(3...8)(:scope)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (2...3), + (8...9) + ), + nil + ), + CallNode(14...19)(nil, nil, (14...19), nil, nil, nil, nil, 0, "scope")] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_regex_verification.txt b/test/yarp/snapshots/whitequark/bug_regex_verification.txt new file mode 100644 index 0000000000..e1fc0ec0e6 --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_regex_verification.txt @@ -0,0 +1,6 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [RegularExpressionNode(0...5)((0...1), (1...3), (3...5), "#)", 4)] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_rescue_empty_else.txt b/test/yarp/snapshots/whitequark/bug_rescue_empty_else.txt new file mode 100644 index 0000000000..83ea8818ee --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_rescue_empty_else.txt @@ -0,0 +1,20 @@ +ProgramNode(0...34)( + [], + StatementsNode(0...34)( + [BeginNode(0...34)( + (0...5), + nil, + RescueNode(7...23)( + (7...13), + [ConstantReadNode(14...23)()], + nil, + nil, + nil, + nil + ), + ElseNode(25...34)((25...29), nil, (31...34)), + nil, + (31...34) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/bug_while_not_parens_do.txt b/test/yarp/snapshots/whitequark/bug_while_not_parens_do.txt new file mode 100644 index 0000000000..26c198608c --- /dev/null +++ b/test/yarp/snapshots/whitequark/bug_while_not_parens_do.txt @@ -0,0 +1,24 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [WhileNode(0...23)( + (0...5), + CallNode(6...16)( + ParenthesesNode(10...16)( + StatementsNode(11...15)([TrueNode(11...15)()]), + (10...11), + (15...16) + ), + nil, + (6...9), + nil, + nil, + nil, + nil, + 0, + "!" + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/case_cond.txt b/test/yarp/snapshots/whitequark/case_cond.txt new file mode 100644 index 0000000000..4fbc69e3ba --- /dev/null +++ b/test/yarp/snapshots/whitequark/case_cond.txt @@ -0,0 +1,28 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [CaseNode(0...26)( + nil, + [WhenNode(6...21)( + (6...10), + [CallNode(11...14)( + nil, + nil, + (11...14), + nil, + nil, + nil, + nil, + 0, + "foo" + )], + StatementsNode(16...21)( + [StringNode(16...21)((16...17), (17...20), (20...21), "foo")] + ) + )], + nil, + (0...4), + (23...26) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/case_cond_else.txt b/test/yarp/snapshots/whitequark/case_cond_else.txt new file mode 100644 index 0000000000..c4a035f178 --- /dev/null +++ b/test/yarp/snapshots/whitequark/case_cond_else.txt @@ -0,0 +1,34 @@ +ProgramNode(0...38)( + [], + StatementsNode(0...38)( + [CaseNode(0...38)( + nil, + [WhenNode(6...21)( + (6...10), + [CallNode(11...14)( + nil, + nil, + (11...14), + nil, + nil, + nil, + nil, + 0, + "foo" + )], + StatementsNode(16...21)( + [StringNode(16...21)((16...17), (17...20), (20...21), "foo")] + ) + )], + ElseNode(23...38)( + (23...27), + StatementsNode(28...33)( + [StringNode(28...33)((28...29), (29...32), (32...33), "bar")] + ), + (35...38) + ), + (0...4), + (35...38) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/case_expr.txt b/test/yarp/snapshots/whitequark/case_expr.txt new file mode 100644 index 0000000000..22763ee9fe --- /dev/null +++ b/test/yarp/snapshots/whitequark/case_expr.txt @@ -0,0 +1,28 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [CaseNode(0...30)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo"), + [WhenNode(10...25)( + (10...14), + [StringNode(15...20)((15...16), (16...19), (19...20), "bar")], + StatementsNode(22...25)( + [CallNode(22...25)( + nil, + nil, + (22...25), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + )], + nil, + (0...4), + (27...30) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/case_expr_else.txt b/test/yarp/snapshots/whitequark/case_expr_else.txt new file mode 100644 index 0000000000..9782ba04cb --- /dev/null +++ b/test/yarp/snapshots/whitequark/case_expr_else.txt @@ -0,0 +1,44 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [CaseNode(0...40)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo"), + [WhenNode(10...25)( + (10...14), + [StringNode(15...20)((15...16), (16...19), (19...20), "bar")], + StatementsNode(22...25)( + [CallNode(22...25)( + nil, + nil, + (22...25), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + )], + ElseNode(27...40)( + (27...31), + StatementsNode(32...35)( + [CallNode(32...35)( + nil, + nil, + (32...35), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (37...40) + ), + (0...4), + (37...40) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/casgn_scoped.txt b/test/yarp/snapshots/whitequark/casgn_scoped.txt new file mode 100644 index 0000000000..4f3dbf682e --- /dev/null +++ b/test/yarp/snapshots/whitequark/casgn_scoped.txt @@ -0,0 +1,14 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [ConstantPathWriteNode(0...13)( + ConstantPathNode(0...8)( + ConstantReadNode(0...3)(), + ConstantReadNode(5...8)(), + (3...5) + ), + (9...10), + IntegerNode(11...13)() + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/casgn_toplevel.txt b/test/yarp/snapshots/whitequark/casgn_toplevel.txt new file mode 100644 index 0000000000..50d683b366 --- /dev/null +++ b/test/yarp/snapshots/whitequark/casgn_toplevel.txt @@ -0,0 +1,10 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [ConstantPathWriteNode(0...10)( + ConstantPathNode(0...5)(nil, ConstantReadNode(2...5)(), (0...2)), + (6...7), + IntegerNode(8...10)() + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/casgn_unscoped.txt b/test/yarp/snapshots/whitequark/casgn_unscoped.txt new file mode 100644 index 0000000000..3687e38891 --- /dev/null +++ b/test/yarp/snapshots/whitequark/casgn_unscoped.txt @@ -0,0 +1,10 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [ConstantPathWriteNode(0...8)( + ConstantReadNode(0...3)(), + (4...5), + IntegerNode(6...8)() + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/character.txt b/test/yarp/snapshots/whitequark/character.txt new file mode 100644 index 0000000000..7865df42fa --- /dev/null +++ b/test/yarp/snapshots/whitequark/character.txt @@ -0,0 +1,4 @@ +ProgramNode(0...2)( + [], + StatementsNode(0...2)([StringNode(0...2)((0...1), (1...2), nil, "a")]) +) diff --git a/test/yarp/snapshots/whitequark/class.txt b/test/yarp/snapshots/whitequark/class.txt new file mode 100644 index 0000000000..0061b34a8a --- /dev/null +++ b/test/yarp/snapshots/whitequark/class.txt @@ -0,0 +1,23 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [ClassNode(0...13)( + [], + (0...5), + ConstantReadNode(6...9)(), + nil, + nil, + nil, + (10...13) + ), + ClassNode(15...29)( + [], + (15...20), + ConstantReadNode(21...24)(), + nil, + nil, + nil, + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/class_definition_in_while_cond.txt b/test/yarp/snapshots/whitequark/class_definition_in_while_cond.txt new file mode 100644 index 0000000000..95b3caf5c7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/class_definition_in_while_cond.txt @@ -0,0 +1,115 @@ +ProgramNode(0...197)( + [], + StatementsNode(0...197)( + [WhileNode(0...52)( + (0...5), + SingletonClassNode(6...40)( + [:a], + (6...11), + (12...14), + SelfNode(15...19)(), + StatementsNode(21...35)( + [LocalVariableWriteNode(21...35)( + :a, + 0, + CallNode(25...35)( + nil, + nil, + (25...28), + nil, + nil, + nil, + BlockNode(29...35)([], nil, nil, (29...31), (32...35)), + 0, + "tap" + ), + (21...22), + (23...24) + )] + ), + (37...40) + ), + StatementsNode(42...47)([BreakNode(42...47)(nil, (42...47))]) + ), + WhileNode(54...102)( + (54...59), + SingletonClassNode(60...90)( + [], + (60...65), + (66...68), + SelfNode(69...73)(), + StatementsNode(75...85)( + [CallNode(75...85)( + nil, + nil, + (75...78), + nil, + nil, + nil, + BlockNode(79...85)([], nil, nil, (79...81), (82...85)), + 0, + "tap" + )] + ), + (87...90) + ), + StatementsNode(92...97)([BreakNode(92...97)(nil, (92...97))]) + ), + WhileNode(104...151)( + (104...109), + ClassNode(110...139)( + [:a], + (110...115), + ConstantReadNode(116...119)(), + nil, + nil, + StatementsNode(120...134)( + [LocalVariableWriteNode(120...134)( + :a, + 0, + CallNode(124...134)( + nil, + nil, + (124...127), + nil, + nil, + nil, + BlockNode(128...134)([], nil, nil, (128...130), (131...134)), + 0, + "tap" + ), + (120...121), + (122...123) + )] + ), + (136...139) + ), + StatementsNode(141...146)([BreakNode(141...146)(nil, (141...146))]) + ), + WhileNode(153...197)( + (153...158), + ClassNode(159...185)( + [], + (159...164), + ConstantReadNode(165...168)(), + nil, + nil, + StatementsNode(170...180)( + [CallNode(170...180)( + nil, + nil, + (170...173), + nil, + nil, + nil, + BlockNode(174...180)([], nil, nil, (174...176), (177...180)), + 0, + "tap" + )] + ), + (182...185) + ), + StatementsNode(187...192)([BreakNode(187...192)(nil, (187...192))]) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/class_super.txt b/test/yarp/snapshots/whitequark/class_super.txt new file mode 100644 index 0000000000..aa2845a13e --- /dev/null +++ b/test/yarp/snapshots/whitequark/class_super.txt @@ -0,0 +1,14 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [ClassNode(0...20)( + [], + (0...5), + ConstantReadNode(6...9)(), + (10...11), + ConstantReadNode(12...15)(), + nil, + (17...20) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/class_super_label.txt b/test/yarp/snapshots/whitequark/class_super_label.txt new file mode 100644 index 0000000000..ae6759c1e4 --- /dev/null +++ b/test/yarp/snapshots/whitequark/class_super_label.txt @@ -0,0 +1,26 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [ClassNode(0...20)( + [], + (0...5), + ConstantReadNode(6...9)(), + (10...11), + CallNode(12...15)( + nil, + nil, + (12...13), + nil, + ArgumentsNode(13...15)( + [SymbolNode(13...15)((13...14), (14...15), nil, "b")] + ), + nil, + nil, + 0, + "a" + ), + nil, + (17...20) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/comments_before_leading_dot__27.txt b/test/yarp/snapshots/whitequark/comments_before_leading_dot__27.txt new file mode 100644 index 0000000000..08dc7c2f5c --- /dev/null +++ b/test/yarp/snapshots/whitequark/comments_before_leading_dot__27.txt @@ -0,0 +1,49 @@ +ProgramNode(0...55)( + [], + StatementsNode(0...55)( + [CallNode(0...13)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (8...10), + (10...13), + nil, + nil, + nil, + nil, + 1, + "foo" + ), + CallNode(16...28)( + CallNode(16...17)(nil, nil, (16...17), nil, nil, nil, nil, 0, "a"), + (24...25), + (25...28), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + CallNode(31...42)( + CallNode(31...32)(nil, nil, (31...32), nil, nil, nil, nil, 0, "a"), + (37...39), + (39...42), + nil, + nil, + nil, + nil, + 1, + "foo" + ), + CallNode(45...55)( + CallNode(45...46)(nil, nil, (45...46), nil, nil, nil, nil, 0, "a"), + (51...52), + (52...55), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/complex.txt b/test/yarp/snapshots/whitequark/complex.txt new file mode 100644 index 0000000000..f8273f3806 --- /dev/null +++ b/test/yarp/snapshots/whitequark/complex.txt @@ -0,0 +1,9 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [ImaginaryNode(0...5)(FloatNode(0...4)()), + ImaginaryNode(7...13)(RationalNode(7...12)(FloatNode(7...11)())), + ImaginaryNode(15...18)(IntegerNode(15...17)()), + ImaginaryNode(20...24)(RationalNode(20...23)(IntegerNode(20...22)()))] + ) +) diff --git a/test/yarp/snapshots/whitequark/cond_begin.txt b/test/yarp/snapshots/whitequark/cond_begin.txt new file mode 100644 index 0000000000..0d378e24c9 --- /dev/null +++ b/test/yarp/snapshots/whitequark/cond_begin.txt @@ -0,0 +1,20 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [IfNode(0...18)( + (0...2), + ParenthesesNode(3...8)( + StatementsNode(4...7)( + [CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "bar")] + ), + (3...4), + (7...8) + ), + StatementsNode(10...13)( + [CallNode(10...13)(nil, nil, (10...13), nil, nil, nil, nil, 0, "foo")] + ), + nil, + (15...18) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/cond_begin_masgn.txt b/test/yarp/snapshots/whitequark/cond_begin_masgn.txt new file mode 100644 index 0000000000..17a0cd4141 --- /dev/null +++ b/test/yarp/snapshots/whitequark/cond_begin_masgn.txt @@ -0,0 +1,36 @@ +ProgramNode(0...25)( + [:a, :b], + StatementsNode(0...25)( + [IfNode(0...25)( + (0...2), + ParenthesesNode(3...20)( + StatementsNode(4...19)( + [CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "bar"), + MultiWriteNode(9...19)( + [LocalVariableWriteNode(9...10)(:a, 0, nil, (9...10), nil), + LocalVariableWriteNode(12...13)(:b, 0, nil, (12...13), nil)], + (14...15), + CallNode(16...19)( + nil, + nil, + (16...19), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + nil + )] + ), + (3...4), + (19...20) + ), + nil, + nil, + (22...25) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/cond_eflipflop.txt b/test/yarp/snapshots/whitequark/cond_eflipflop.txt new file mode 100644 index 0000000000..6e1e6718d5 --- /dev/null +++ b/test/yarp/snapshots/whitequark/cond_eflipflop.txt @@ -0,0 +1,49 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [CallNode(0...12)( + ParenthesesNode(1...12)( + StatementsNode(2...11)( + [RangeNode(2...11)( + CallNode(2...5)(nil, nil, (2...5), nil, nil, nil, nil, 0, "foo"), + CallNode(8...11)( + nil, + nil, + (8...11), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (5...8), + 1 + )] + ), + (1...2), + (11...12) + ), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + ), + IfNode(14...31)( + (14...16), + RangeNode(17...26)( + CallNode(17...20)(nil, nil, (17...20), nil, nil, nil, nil, 0, "foo"), + CallNode(23...26)(nil, nil, (23...26), nil, nil, nil, nil, 0, "bar"), + (20...23), + 1 + ), + nil, + nil, + (28...31) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/cond_iflipflop.txt b/test/yarp/snapshots/whitequark/cond_iflipflop.txt new file mode 100644 index 0000000000..e45eec8922 --- /dev/null +++ b/test/yarp/snapshots/whitequark/cond_iflipflop.txt @@ -0,0 +1,49 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [CallNode(0...11)( + ParenthesesNode(1...11)( + StatementsNode(2...10)( + [RangeNode(2...10)( + CallNode(2...5)(nil, nil, (2...5), nil, nil, nil, nil, 0, "foo"), + CallNode(7...10)( + nil, + nil, + (7...10), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (5...7), + 0 + )] + ), + (1...2), + (10...11) + ), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + ), + IfNode(13...29)( + (13...15), + RangeNode(16...24)( + CallNode(16...19)(nil, nil, (16...19), nil, nil, nil, nil, 0, "foo"), + CallNode(21...24)(nil, nil, (21...24), nil, nil, nil, nil, 0, "bar"), + (19...21), + 0 + ), + nil, + nil, + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/cond_match_current_line.txt b/test/yarp/snapshots/whitequark/cond_match_current_line.txt new file mode 100644 index 0000000000..02bceef3d7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/cond_match_current_line.txt @@ -0,0 +1,29 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [CallNode(0...6)( + RegularExpressionNode(1...6)((1...2), (2...5), (5...6), "wat", 0), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + ), + IfNode(8...21)( + (8...10), + RegularExpressionNode(11...16)( + (11...12), + (12...15), + (15...16), + "wat", + 0 + ), + nil, + nil, + (18...21) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/const_op_asgn.txt b/test/yarp/snapshots/whitequark/const_op_asgn.txt new file mode 100644 index 0000000000..ef5e755c8e --- /dev/null +++ b/test/yarp/snapshots/whitequark/const_op_asgn.txt @@ -0,0 +1,73 @@ +ProgramNode(0...77)( + [], + StatementsNode(0...77)( + [ConstantPathOperatorWriteNode(0...8)( + ConstantPathNode(0...3)(nil, ConstantReadNode(2...3)(), (0...2)), + (4...6), + IntegerNode(7...8)(), + :+ + ), + ConstantOperatorWriteNode(10...16)( + (10...11), + (12...14), + IntegerNode(15...16)(), + :+ + ), + ConstantPathOperatorWriteNode(18...27)( + ConstantPathNode(18...22)( + ConstantReadNode(18...19)(), + ConstantReadNode(21...22)(), + (19...21) + ), + (23...25), + IntegerNode(26...27)(), + :+ + ), + DefNode(29...50)( + (33...34), + nil, + nil, + StatementsNode(36...45)( + [ConstantPathOperatorOrWriteNode(36...45)( + ConstantPathNode(36...39)( + nil, + ConstantReadNode(38...39)(), + (36...38) + ), + (40...43), + IntegerNode(44...45)() + )] + ), + [], + (29...32), + nil, + nil, + nil, + nil, + (47...50) + ), + DefNode(52...77)( + (56...57), + nil, + nil, + StatementsNode(59...72)( + [ConstantPathOperatorOrWriteNode(59...72)( + ConstantPathNode(59...66)( + SelfNode(59...63)(), + ConstantReadNode(65...66)(), + (63...65) + ), + (67...70), + IntegerNode(71...72)() + )] + ), + [], + (52...55), + nil, + nil, + nil, + nil, + (74...77) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/const_scoped.txt b/test/yarp/snapshots/whitequark/const_scoped.txt new file mode 100644 index 0000000000..8aa53922cd --- /dev/null +++ b/test/yarp/snapshots/whitequark/const_scoped.txt @@ -0,0 +1,10 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [ConstantPathNode(0...8)( + ConstantReadNode(0...3)(), + ConstantReadNode(5...8)(), + (3...5) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/const_toplevel.txt b/test/yarp/snapshots/whitequark/const_toplevel.txt new file mode 100644 index 0000000000..248b407e67 --- /dev/null +++ b/test/yarp/snapshots/whitequark/const_toplevel.txt @@ -0,0 +1,6 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [ConstantPathNode(0...5)(nil, ConstantReadNode(2...5)(), (0...2))] + ) +) diff --git a/test/yarp/snapshots/whitequark/const_unscoped.txt b/test/yarp/snapshots/whitequark/const_unscoped.txt new file mode 100644 index 0000000000..8b8198ef49 --- /dev/null +++ b/test/yarp/snapshots/whitequark/const_unscoped.txt @@ -0,0 +1 @@ +ProgramNode(0...3)([], StatementsNode(0...3)([ConstantReadNode(0...3)()])) diff --git a/test/yarp/snapshots/whitequark/cpath.txt b/test/yarp/snapshots/whitequark/cpath.txt new file mode 100644 index 0000000000..94714a1ac6 --- /dev/null +++ b/test/yarp/snapshots/whitequark/cpath.txt @@ -0,0 +1,23 @@ +ProgramNode(0...39)( + [], + StatementsNode(0...39)( + [ModuleNode(0...17)( + [], + (0...6), + ConstantPathNode(7...12)(nil, ConstantReadNode(9...12)(), (7...9)), + nil, + (14...17) + ), + ModuleNode(19...39)( + [], + (19...25), + ConstantPathNode(26...34)( + ConstantReadNode(26...29)(), + ConstantReadNode(31...34)(), + (29...31) + ), + nil, + (36...39) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/cvar.txt b/test/yarp/snapshots/whitequark/cvar.txt new file mode 100644 index 0000000000..069ff24b17 --- /dev/null +++ b/test/yarp/snapshots/whitequark/cvar.txt @@ -0,0 +1 @@ +ProgramNode(0...5)([], StatementsNode(0...5)([ClassVariableReadNode(0...5)()])) diff --git a/test/yarp/snapshots/whitequark/cvasgn.txt b/test/yarp/snapshots/whitequark/cvasgn.txt new file mode 100644 index 0000000000..b972caaab7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/cvasgn.txt @@ -0,0 +1,6 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [ClassVariableWriteNode(0...10)((0...5), IntegerNode(8...10)(), (6...7))] + ) +) diff --git a/test/yarp/snapshots/whitequark/dedenting_heredoc.txt b/test/yarp/snapshots/whitequark/dedenting_heredoc.txt new file mode 100644 index 0000000000..8db35f7228 --- /dev/null +++ b/test/yarp/snapshots/whitequark/dedenting_heredoc.txt @@ -0,0 +1,323 @@ +ProgramNode(0...327)( + [], + StatementsNode(0...327)( + [CallNode(0...28)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...28)( + [InterpolatedStringNode(2...28)( + (2...8), + [StringNode(9...17)(nil, (9...17), nil, " x\n"), + EmbeddedStatementsNode(17...25)( + (17...19), + StatementsNode(19...24)( + [StringNode(19...24)((19...20), (20...23), (23...24), " y")] + ), + (24...25) + ), + StringNode(25...26)(nil, (25...26), nil, "\n")], + (26...28) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(29...55)( + nil, + nil, + (29...30), + nil, + ArgumentsNode(31...55)( + [InterpolatedStringNode(31...55)( + (31...37), + [StringNode(38...46)(nil, (38...46), nil, " x\n"), + EmbeddedStatementsNode(46...52)( + (46...48), + StatementsNode(48...51)( + [CallNode(48...51)( + nil, + nil, + (48...51), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (51...52) + ), + StringNode(52...53)(nil, (52...53), nil, "\n")], + (53...55) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(56...78)( + nil, + nil, + (56...57), + nil, + ArgumentsNode(58...78)( + [InterpolatedStringNode(58...78)( + (58...62), + [StringNode(63...76)(nil, (63...76), nil, "x\n" + "y\n")], + (76...78) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(79...97)( + nil, + nil, + (79...80), + nil, + ArgumentsNode(81...97)( + [InterpolatedStringNode(81...97)( + (81...85), + [StringNode(86...95)(nil, (86...95), nil, "\tx\n" + "y\n")], + (95...97) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(98...124)( + nil, + nil, + (98...99), + nil, + ArgumentsNode(100...124)( + [InterpolatedStringNode(100...124)( + (100...104), + [StringNode(105...122)(nil, (105...122), nil, "x\n" + "y\n")], + (122...124) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(125...148)( + nil, + nil, + (125...126), + nil, + ArgumentsNode(127...148)( + [InterpolatedStringNode(127...148)( + (127...131), + [StringNode(132...146)(nil, (132...146), nil, "\tx\n" + "y\n")], + (146...148) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(149...170)( + nil, + nil, + (149...150), + nil, + ArgumentsNode(151...170)( + [InterpolatedStringNode(151...170)( + (151...155), + [StringNode(156...168)(nil, (156...168), nil, " x\n" + "\ty\n")], + (168...170) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(171...193)( + nil, + nil, + (171...172), + nil, + ArgumentsNode(173...193)( + [InterpolatedStringNode(173...193)( + (173...177), + [StringNode(178...191)(nil, (178...191), nil, " x\n" + " y\n")], + (191...193) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(194...205)( + nil, + nil, + (194...195), + nil, + ArgumentsNode(196...205)( + [InterpolatedStringNode(196...205)((196...200), [], (201...205))] + ), + nil, + nil, + 0, + "p" + ), + CallNode(206...222)( + nil, + nil, + (206...207), + nil, + ArgumentsNode(208...222)( + [InterpolatedStringNode(208...222)( + (208...212), + [StringNode(213...220)( + nil, + (213...220), + nil, + " x\n" + "\n" + "y\n" + )], + (220...222) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(223...241)( + nil, + nil, + (223...224), + nil, + ArgumentsNode(225...241)( + [InterpolatedStringNode(225...241)( + (225...229), + [StringNode(230...239)( + nil, + (230...239), + nil, + "x\n" + "\n" + "y\n" + )], + (239...241) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(242...261)( + nil, + nil, + (242...243), + nil, + ArgumentsNode(244...261)( + [InterpolatedStringNode(244...261)( + (244...248), + [StringNode(249...259)(nil, (249...259), nil, "x\n" + " y\n")], + (259...261) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(262...275)( + nil, + nil, + (262...263), + nil, + ArgumentsNode(264...275)( + [InterpolatedStringNode(264...275)( + (264...268), + [StringNode(269...273)(nil, (269...273), nil, "x\n")], + (273...275) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(276...290)( + nil, + nil, + (276...277), + nil, + ArgumentsNode(278...290)( + [InterpolatedStringNode(278...290)( + (278...282), + [StringNode(283...288)(nil, (283...288), nil, "ð\n")], + (288...290) + )] + ), + nil, + nil, + 0, + "p" + ), + CallNode(291...300)( + nil, + nil, + (291...292), + nil, + ArgumentsNode(293...300)( + [InterpolatedStringNode(293...300)((293...297), [], (298...300))] + ), + nil, + nil, + 0, + "p" + ), + CallNode(301...327)( + nil, + nil, + (301...302), + nil, + ArgumentsNode(303...327)( + [InterpolatedXStringNode(303...327)( + (303...309), + [StringNode(310...318)(nil, (310...318), nil, " x\n"), + EmbeddedStatementsNode(318...324)( + (318...320), + StatementsNode(320...323)( + [CallNode(320...323)( + nil, + nil, + (320...323), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (323...324) + ), + StringNode(324...325)(nil, (324...325), nil, "\n")], + (325...327) + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt b/test/yarp/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt new file mode 100644 index 0000000000..57cd4345c4 --- /dev/null +++ b/test/yarp/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt @@ -0,0 +1,10 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [InterpolatedStringNode(0...27)( + (0...8), + [StringNode(9...23)(nil, (9...23), nil, "baz\\\n" + "qux\n")], + (23...27) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt b/test/yarp/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt new file mode 100644 index 0000000000..eea236db48 --- /dev/null +++ b/test/yarp/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt @@ -0,0 +1,10 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [InterpolatedStringNode(0...26)( + (0...8), + [StringNode(9...22)(nil, (9...22), nil, "baz\\\n" + "qux\n")], + (22...26) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/def.txt b/test/yarp/snapshots/whitequark/def.txt new file mode 100644 index 0000000000..f745476533 --- /dev/null +++ b/test/yarp/snapshots/whitequark/def.txt @@ -0,0 +1,83 @@ +ProgramNode(0...93)( + [], + StatementsNode(0...93)( + [DefNode(0...14)( + (4...9), + nil, + nil, + nil, + [], + (0...3), + nil, + nil, + nil, + nil, + (11...14) + ), + DefNode(16...28)( + (20...23), + nil, + nil, + nil, + [], + (16...19), + nil, + nil, + nil, + nil, + (25...28) + ), + DefNode(30...45)( + (34...40), + nil, + nil, + nil, + [], + (30...33), + nil, + nil, + nil, + nil, + (42...45) + ), + DefNode(47...63)( + (51...58), + nil, + nil, + nil, + [], + (47...50), + nil, + nil, + nil, + nil, + (60...63) + ), + DefNode(65...77)( + (69...72), + nil, + nil, + nil, + [], + (65...68), + nil, + nil, + nil, + nil, + (74...77) + ), + DefNode(79...93)( + (83...88), + nil, + nil, + nil, + [], + (79...82), + nil, + nil, + nil, + nil, + (90...93) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/defined.txt b/test/yarp/snapshots/whitequark/defined.txt new file mode 100644 index 0000000000..8dc2e5493e --- /dev/null +++ b/test/yarp/snapshots/whitequark/defined.txt @@ -0,0 +1,23 @@ +ProgramNode(0...42)( + [], + StatementsNode(0...42)( + [DefinedNode(0...13)( + nil, + InstanceVariableReadNode(9...13)(), + nil, + (0...8) + ), + DefinedNode(15...27)( + nil, + CallNode(24...27)(nil, nil, (24...27), nil, nil, nil, nil, 0, "foo"), + nil, + (15...23) + ), + DefinedNode(29...42)( + (37...38), + CallNode(38...41)(nil, nil, (38...41), nil, nil, nil, nil, 0, "foo"), + (41...42), + (29...37) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/defs.txt b/test/yarp/snapshots/whitequark/defs.txt new file mode 100644 index 0000000000..d27de42bf2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/defs.txt @@ -0,0 +1,74 @@ +ProgramNode(0...100)( + [], + StatementsNode(0...100)( + [DefNode(0...18)( + (10...13), + ParenthesesNode(4...9)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo"), + (4...5), + (8...9) + ), + nil, + nil, + [], + (0...3), + (9...10), + nil, + nil, + nil, + (15...18) + ), + DefNode(20...39)( + (31...34), + ConstantReadNode(24...30)(), + nil, + nil, + [], + (20...23), + (30...31), + nil, + nil, + nil, + (36...39) + ), + DefNode(41...61)( + (53...56), + ConstantReadNode(45...51)(), + nil, + nil, + [], + (41...44), + (51...53), + nil, + nil, + nil, + (58...61) + ), + DefNode(63...80)( + (72...75), + SelfNode(67...71)(), + nil, + nil, + [], + (63...66), + (71...72), + nil, + nil, + nil, + (77...80) + ), + DefNode(82...100)( + (92...95), + SelfNode(86...90)(), + nil, + nil, + [], + (82...85), + (90...92), + nil, + nil, + nil, + (97...100) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/empty_stmt.txt b/test/yarp/snapshots/whitequark/empty_stmt.txt new file mode 100644 index 0000000000..bd3eaf5ff4 --- /dev/null +++ b/test/yarp/snapshots/whitequark/empty_stmt.txt @@ -0,0 +1 @@ +ProgramNode(0...0)([], StatementsNode(0...0)([])) diff --git a/test/yarp/snapshots/whitequark/endless_comparison_method.txt b/test/yarp/snapshots/whitequark/endless_comparison_method.txt new file mode 100644 index 0000000000..47f43e8235 --- /dev/null +++ b/test/yarp/snapshots/whitequark/endless_comparison_method.txt @@ -0,0 +1,203 @@ +ProgramNode(0...179)( + [], + StatementsNode(0...179)( + [DefNode(0...28)( + (4...6), + nil, + ParametersNode(7...12)( + [RequiredParameterNode(7...12)(:other)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(16...28)( + [CallNode(16...28)( + nil, + nil, + (16...28), + nil, + nil, + nil, + nil, + 0, + "do_something" + )] + ), + [:other], + (0...3), + nil, + (6...7), + (12...13), + (14...15), + nil + ), + DefNode(30...58)( + (34...36), + nil, + ParametersNode(37...42)( + [RequiredParameterNode(37...42)(:other)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(46...58)( + [CallNode(46...58)( + nil, + nil, + (46...58), + nil, + nil, + nil, + nil, + 0, + "do_something" + )] + ), + [:other], + (30...33), + nil, + (36...37), + (42...43), + (44...45), + nil + ), + DefNode(60...88)( + (64...66), + nil, + ParametersNode(67...72)( + [RequiredParameterNode(67...72)(:other)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(76...88)( + [CallNode(76...88)( + nil, + nil, + (76...88), + nil, + nil, + nil, + nil, + 0, + "do_something" + )] + ), + [:other], + (60...63), + nil, + (66...67), + (72...73), + (74...75), + nil + ), + DefNode(90...118)( + (94...96), + nil, + ParametersNode(97...102)( + [RequiredParameterNode(97...102)(:other)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(106...118)( + [CallNode(106...118)( + nil, + nil, + (106...118), + nil, + nil, + nil, + nil, + 0, + "do_something" + )] + ), + [:other], + (90...93), + nil, + (96...97), + (102...103), + (104...105), + nil + ), + DefNode(120...149)( + (124...127), + nil, + ParametersNode(128...133)( + [RequiredParameterNode(128...133)(:other)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(137...149)( + [CallNode(137...149)( + nil, + nil, + (137...149), + nil, + nil, + nil, + nil, + 0, + "do_something" + )] + ), + [:other], + (120...123), + nil, + (127...128), + (133...134), + (135...136), + nil + ), + DefNode(151...179)( + (155...157), + nil, + ParametersNode(158...163)( + [RequiredParameterNode(158...163)(:other)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(167...179)( + [CallNode(167...179)( + nil, + nil, + (167...179), + nil, + nil, + nil, + nil, + 0, + "do_something" + )] + ), + [:other], + (151...154), + nil, + (157...158), + (163...164), + (165...166), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/endless_method.txt b/test/yarp/snapshots/whitequark/endless_method.txt new file mode 100644 index 0000000000..24bd704d3c --- /dev/null +++ b/test/yarp/snapshots/whitequark/endless_method.txt @@ -0,0 +1,97 @@ +ProgramNode(0...78)( + [], + StatementsNode(0...78)( + [DefNode(0...14)( + (4...7), + nil, + nil, + StatementsNode(12...14)([IntegerNode(12...14)()]), + [], + (0...3), + nil, + (7...8), + (8...9), + (10...11), + nil + ), + DefNode(16...34)( + (20...23), + nil, + ParametersNode(24...25)( + [RequiredParameterNode(24...25)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(29...34)( + [CallNode(29...34)( + LocalVariableReadNode(29...30)(:x, 0), + nil, + (31...32), + nil, + ArgumentsNode(33...34)([IntegerNode(33...34)()]), + nil, + nil, + 0, + "+" + )] + ), + [:x], + (16...19), + nil, + (23...24), + (25...26), + (27...28), + nil + ), + DefNode(36...54)( + (44...47), + CallNode(40...43)(nil, nil, (40...43), nil, nil, nil, nil, 0, "obj"), + nil, + StatementsNode(52...54)([IntegerNode(52...54)()]), + [], + (36...39), + (43...44), + (47...48), + (48...49), + (50...51), + nil + ), + DefNode(56...78)( + (64...67), + CallNode(60...63)(nil, nil, (60...63), nil, nil, nil, nil, 0, "obj"), + ParametersNode(68...69)( + [RequiredParameterNode(68...69)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(73...78)( + [CallNode(73...78)( + LocalVariableReadNode(73...74)(:x, 0), + nil, + (75...76), + nil, + ArgumentsNode(77...78)([IntegerNode(77...78)()]), + nil, + nil, + 0, + "+" + )] + ), + [:x], + (56...59), + (63...64), + (67...68), + (69...70), + (71...72), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/endless_method_command_syntax.txt b/test/yarp/snapshots/whitequark/endless_method_command_syntax.txt new file mode 100644 index 0000000000..476b6f34f6 --- /dev/null +++ b/test/yarp/snapshots/whitequark/endless_method_command_syntax.txt @@ -0,0 +1,316 @@ +ProgramNode(0...278)( + [], + StatementsNode(0...278)( + [DefNode(0...22)( + (4...7), + nil, + nil, + StatementsNode(10...22)( + [CallNode(10...22)( + nil, + nil, + (10...14), + nil, + ArgumentsNode(15...22)( + [StringNode(15...22)((15...16), (16...21), (21...22), "Hello")] + ), + nil, + nil, + 0, + "puts" + )] + ), + [], + (0...3), + nil, + nil, + nil, + (8...9), + nil + ), + DefNode(24...48)( + (28...31), + nil, + nil, + StatementsNode(36...48)( + [CallNode(36...48)( + nil, + nil, + (36...40), + nil, + ArgumentsNode(41...48)( + [StringNode(41...48)((41...42), (42...47), (47...48), "Hello")] + ), + nil, + nil, + 0, + "puts" + )] + ), + [], + (24...27), + nil, + (31...32), + (32...33), + (34...35), + nil + ), + DefNode(50...69)( + (54...57), + nil, + ParametersNode(58...59)( + [RequiredParameterNode(58...59)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(63...69)( + [CallNode(63...69)( + nil, + nil, + (63...67), + nil, + ArgumentsNode(68...69)([LocalVariableReadNode(68...69)(:x, 0)]), + nil, + nil, + 0, + "puts" + )] + ), + [:x], + (50...53), + nil, + (57...58), + (59...60), + (61...62), + nil + ), + DefNode(71...97)( + (79...82), + CallNode(75...78)(nil, nil, (75...78), nil, nil, nil, nil, 0, "obj"), + nil, + StatementsNode(85...97)( + [CallNode(85...97)( + nil, + nil, + (85...89), + nil, + ArgumentsNode(90...97)( + [StringNode(90...97)((90...91), (91...96), (96...97), "Hello")] + ), + nil, + nil, + 0, + "puts" + )] + ), + [], + (71...74), + (78...79), + nil, + nil, + (83...84), + nil + ), + DefNode(99...127)( + (107...110), + CallNode(103...106)( + nil, + nil, + (103...106), + nil, + nil, + nil, + nil, + 0, + "obj" + ), + nil, + StatementsNode(115...127)( + [CallNode(115...127)( + nil, + nil, + (115...119), + nil, + ArgumentsNode(120...127)( + [StringNode(120...127)( + (120...121), + (121...126), + (126...127), + "Hello" + )] + ), + nil, + nil, + 0, + "puts" + )] + ), + [], + (99...102), + (106...107), + (110...111), + (111...112), + (113...114), + nil + ), + DefNode(129...152)( + (137...140), + CallNode(133...136)( + nil, + nil, + (133...136), + nil, + nil, + nil, + nil, + 0, + "obj" + ), + ParametersNode(141...142)( + [RequiredParameterNode(141...142)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(146...152)( + [CallNode(146...152)( + nil, + nil, + (146...150), + nil, + ArgumentsNode(151...152)( + [LocalVariableReadNode(151...152)(:x, 0)] + ), + nil, + nil, + 0, + "puts" + )] + ), + [:x], + (129...132), + (136...137), + (140...141), + (142...143), + (144...145), + nil + ), + DefNode(154...214)( + (158...165), + nil, + ParametersNode(166...167)( + [RequiredParameterNode(166...167)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(171...214)( + [CallNode(171...214)( + nil, + nil, + (171...176), + nil, + ArgumentsNode(177...214)( + [RescueModifierNode(177...214)( + StringNode(177...191)( + (177...178), + (178...190), + (190...191), + "to be caught" + ), + (192...198), + InterpolatedStringNode(199...214)( + (199...200), + [StringNode(200...209)(nil, (200...209), nil, "instance "), + EmbeddedStatementsNode(209...213)( + (209...211), + StatementsNode(211...212)( + [LocalVariableReadNode(211...212)(:x, 0)] + ), + (212...213) + )], + (213...214) + ) + )] + ), + nil, + nil, + 0, + "raise" + )] + ), + [:x], + (154...157), + nil, + (165...166), + (167...168), + (169...170), + nil + ), + DefNode(216...278)( + (225...232), + SelfNode(220...224)(), + ParametersNode(233...234)( + [RequiredParameterNode(233...234)(:x)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(238...278)( + [CallNode(238...278)( + nil, + nil, + (238...243), + nil, + ArgumentsNode(244...278)( + [RescueModifierNode(244...278)( + StringNode(244...258)( + (244...245), + (245...257), + (257...258), + "to be caught" + ), + (259...265), + InterpolatedStringNode(266...278)( + (266...267), + [StringNode(267...273)(nil, (267...273), nil, "class "), + EmbeddedStatementsNode(273...277)( + (273...275), + StatementsNode(275...276)( + [LocalVariableReadNode(275...276)(:x, 0)] + ), + (276...277) + )], + (277...278) + ) + )] + ), + nil, + nil, + 0, + "raise" + )] + ), + [:x], + (216...219), + (224...225), + (232...233), + (234...235), + (236...237), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/endless_method_forwarded_args_legacy.txt b/test/yarp/snapshots/whitequark/endless_method_forwarded_args_legacy.txt new file mode 100644 index 0000000000..87c50ca846 --- /dev/null +++ b/test/yarp/snapshots/whitequark/endless_method_forwarded_args_legacy.txt @@ -0,0 +1,38 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [DefNode(0...23)( + (4...7), + nil, + ParametersNode(8...11)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(8...11)(), + nil + ), + StatementsNode(15...23)( + [CallNode(15...23)( + nil, + nil, + (15...18), + (18...19), + ArgumentsNode(19...22)([ForwardingArgumentsNode(19...22)()]), + (22...23), + nil, + 0, + "bar" + )] + ), + [:"..."], + (0...3), + nil, + (7...8), + (11...12), + (13...14), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/endless_method_with_rescue_mod.txt b/test/yarp/snapshots/whitequark/endless_method_with_rescue_mod.txt new file mode 100644 index 0000000000..ac757efdbb --- /dev/null +++ b/test/yarp/snapshots/whitequark/endless_method_with_rescue_mod.txt @@ -0,0 +1,43 @@ +ProgramNode(0...47)( + [], + StatementsNode(0...47)( + [DefNode(0...20)( + (4...5), + nil, + nil, + StatementsNode(10...20)( + [RescueModifierNode(10...20)( + IntegerNode(10...11)(), + (12...18), + IntegerNode(19...20)() + )] + ), + [], + (0...3), + nil, + (5...6), + (6...7), + (8...9), + nil + ), + DefNode(22...47)( + (31...32), + SelfNode(26...30)(), + nil, + StatementsNode(37...47)( + [RescueModifierNode(37...47)( + IntegerNode(37...38)(), + (39...45), + IntegerNode(46...47)() + )] + ), + [], + (22...25), + (30...31), + (32...33), + (33...34), + (35...36), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/endless_method_without_args.txt b/test/yarp/snapshots/whitequark/endless_method_without_args.txt new file mode 100644 index 0000000000..778c2b595b --- /dev/null +++ b/test/yarp/snapshots/whitequark/endless_method_without_args.txt @@ -0,0 +1,69 @@ +ProgramNode(0...86)( + [], + StatementsNode(0...86)( + [DefNode(0...12)( + (4...7), + nil, + nil, + StatementsNode(10...12)([IntegerNode(10...12)()]), + [], + (0...3), + nil, + nil, + nil, + (8...9), + nil + ), + DefNode(14...37)( + (18...21), + nil, + nil, + StatementsNode(24...37)( + [RescueModifierNode(24...37)( + IntegerNode(24...26)(), + (27...33), + NilNode(34...37)() + )] + ), + [], + (14...17), + nil, + nil, + nil, + (22...23), + nil + ), + DefNode(39...56)( + (48...51), + SelfNode(43...47)(), + nil, + StatementsNode(54...56)([IntegerNode(54...56)()]), + [], + (39...42), + (47...48), + nil, + nil, + (52...53), + nil + ), + DefNode(58...86)( + (67...70), + SelfNode(62...66)(), + nil, + StatementsNode(73...86)( + [RescueModifierNode(73...86)( + IntegerNode(73...75)(), + (76...82), + NilNode(83...86)() + )] + ), + [], + (58...61), + (66...67), + nil, + nil, + (71...72), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ensure.txt b/test/yarp/snapshots/whitequark/ensure.txt new file mode 100644 index 0000000000..2306cc754d --- /dev/null +++ b/test/yarp/snapshots/whitequark/ensure.txt @@ -0,0 +1,31 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [BeginNode(0...29)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + nil, + nil, + EnsureNode(13...29)( + (13...19), + StatementsNode(21...24)( + [CallNode(21...24)( + nil, + nil, + (21...24), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (26...29) + ), + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ensure_empty.txt b/test/yarp/snapshots/whitequark/ensure_empty.txt new file mode 100644 index 0000000000..39ac8bfea1 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ensure_empty.txt @@ -0,0 +1,13 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [BeginNode(0...16)( + (0...5), + nil, + nil, + nil, + EnsureNode(6...16)((6...12), nil, (13...16)), + (13...16) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/false.txt b/test/yarp/snapshots/whitequark/false.txt new file mode 100644 index 0000000000..b435f45a62 --- /dev/null +++ b/test/yarp/snapshots/whitequark/false.txt @@ -0,0 +1 @@ +ProgramNode(0...5)([], StatementsNode(0...5)([FalseNode(0...5)()])) diff --git a/test/yarp/snapshots/whitequark/float.txt b/test/yarp/snapshots/whitequark/float.txt new file mode 100644 index 0000000000..6ad50dfc58 --- /dev/null +++ b/test/yarp/snapshots/whitequark/float.txt @@ -0,0 +1,17 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...5)( + FloatNode(1...5)(), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + FloatNode(7...11)()] + ) +) diff --git a/test/yarp/snapshots/whitequark/for.txt b/test/yarp/snapshots/whitequark/for.txt new file mode 100644 index 0000000000..cb99b7854e --- /dev/null +++ b/test/yarp/snapshots/whitequark/for.txt @@ -0,0 +1,59 @@ +ProgramNode(0...48)( + [:a], + StatementsNode(0...48)( + [ForNode(0...24)( + MultiWriteNode(4...5)( + [LocalVariableWriteNode(4...5)(:a, 0, nil, (4...5), nil)], + nil, + nil, + nil, + nil + ), + CallNode(9...12)(nil, nil, (9...12), nil, nil, nil, nil, 0, "foo"), + StatementsNode(16...19)( + [CallNode(16...19)( + nil, + nil, + (16...17), + nil, + ArgumentsNode(18...19)([LocalVariableReadNode(18...19)(:a, 0)]), + nil, + nil, + 0, + "p" + )] + ), + (0...3), + (6...8), + (13...15), + (21...24) + ), + ForNode(26...48)( + MultiWriteNode(30...31)( + [LocalVariableWriteNode(30...31)(:a, 0, nil, (30...31), nil)], + nil, + nil, + nil, + nil + ), + CallNode(35...38)(nil, nil, (35...38), nil, nil, nil, nil, 0, "foo"), + StatementsNode(40...43)( + [CallNode(40...43)( + nil, + nil, + (40...41), + nil, + ArgumentsNode(42...43)([LocalVariableReadNode(42...43)(:a, 0)]), + nil, + nil, + 0, + "p" + )] + ), + (26...29), + (32...34), + nil, + (45...48) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/for_mlhs.txt b/test/yarp/snapshots/whitequark/for_mlhs.txt new file mode 100644 index 0000000000..53e5f67750 --- /dev/null +++ b/test/yarp/snapshots/whitequark/for_mlhs.txt @@ -0,0 +1,36 @@ +ProgramNode(0...28)( + [:a, :b], + StatementsNode(0...28)( + [ForNode(0...28)( + MultiWriteNode(4...8)( + [LocalVariableWriteNode(4...5)(:a, 0, nil, (4...5), nil), + LocalVariableWriteNode(7...8)(:b, 0, nil, (7...8), nil)], + nil, + nil, + nil, + nil + ), + CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "foo"), + StatementsNode(17...23)( + [CallNode(17...23)( + nil, + nil, + (17...18), + nil, + ArgumentsNode(19...23)( + [LocalVariableReadNode(19...20)(:a, 0), + LocalVariableReadNode(22...23)(:b, 0)] + ), + nil, + nil, + 0, + "p" + )] + ), + (0...3), + (9...11), + nil, + (25...28) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/forward_arg.txt b/test/yarp/snapshots/whitequark/forward_arg.txt new file mode 100644 index 0000000000..449db10831 --- /dev/null +++ b/test/yarp/snapshots/whitequark/forward_arg.txt @@ -0,0 +1,38 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [DefNode(0...27)( + (4...7), + nil, + ParametersNode(8...11)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(8...11)(), + nil + ), + StatementsNode(14...22)( + [CallNode(14...22)( + nil, + nil, + (14...17), + (17...18), + ArgumentsNode(18...21)([ForwardingArgumentsNode(18...21)()]), + (21...22), + nil, + 0, + "bar" + )] + ), + [:"..."], + (0...3), + nil, + (7...8), + (11...12), + nil, + (24...27) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/forward_arg_with_open_args.txt b/test/yarp/snapshots/whitequark/forward_arg_with_open_args.txt new file mode 100644 index 0000000000..55352e9d70 --- /dev/null +++ b/test/yarp/snapshots/whitequark/forward_arg_with_open_args.txt @@ -0,0 +1,338 @@ +ProgramNode(0...292)( + [], + StatementsNode(0...292)( + [ParenthesesNode(0...28)( + StatementsNode(1...27)( + [DefNode(1...27)( + (5...8), + nil, + ParametersNode(9...12)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(9...12)(), + nil + ), + StatementsNode(15...23)( + [CallNode(15...23)( + nil, + nil, + (15...18), + (18...19), + ArgumentsNode(19...22)([ForwardingArgumentsNode(19...22)()]), + (22...23), + nil, + 0, + "bar" + )] + ), + [:"..."], + (1...4), + nil, + nil, + nil, + nil, + (24...27) + )] + ), + (0...1), + (27...28) + ), + ParenthesesNode(30...58)( + StatementsNode(31...57)( + [DefNode(31...57)( + (35...38), + nil, + ParametersNode(39...42)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(39...42)(), + nil + ), + StatementsNode(44...52)( + [CallNode(44...52)( + nil, + nil, + (44...47), + (47...48), + ArgumentsNode(48...51)([ForwardingArgumentsNode(48...51)()]), + (51...52), + nil, + 0, + "bar" + )] + ), + [:"..."], + (31...34), + nil, + nil, + nil, + nil, + (54...57) + )] + ), + (30...31), + (57...58) + ), + DefNode(60...75)( + (64...67), + nil, + ParametersNode(68...71)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(68...71)(), + nil + ), + nil, + [:"..."], + (60...63), + nil, + nil, + nil, + nil, + (72...75) + ), + DefNode(77...103)( + (81...84), + nil, + ParametersNode(85...88)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(85...88)(), + nil + ), + StatementsNode(90...98)( + [CallNode(90...98)( + nil, + nil, + (90...93), + (93...94), + ArgumentsNode(94...97)([ForwardingArgumentsNode(94...97)()]), + (97...98), + nil, + 0, + "bar" + )] + ), + [:"..."], + (77...80), + nil, + nil, + nil, + nil, + (100...103) + ), + DefNode(105...134)( + (109...112), + nil, + ParametersNode(113...119)( + [RequiredParameterNode(113...114)(:a)], + [], + [], + nil, + [], + ForwardingParameterNode(116...119)(), + nil + ), + StatementsNode(122...130)( + [CallNode(122...130)( + nil, + nil, + (122...125), + (125...126), + ArgumentsNode(126...129)([ForwardingArgumentsNode(126...129)()]), + (129...130), + nil, + 0, + "bar" + )] + ), + [:a, :"..."], + (105...108), + nil, + nil, + nil, + nil, + (131...134) + ), + DefNode(136...165)( + (140...143), + nil, + ParametersNode(144...150)( + [RequiredParameterNode(144...145)(:a)], + [], + [], + nil, + [], + ForwardingParameterNode(147...150)(), + nil + ), + StatementsNode(152...160)( + [CallNode(152...160)( + nil, + nil, + (152...155), + (155...156), + ArgumentsNode(156...159)([ForwardingArgumentsNode(156...159)()]), + (159...160), + nil, + 0, + "bar" + )] + ), + [:a, :"..."], + (136...139), + nil, + nil, + nil, + nil, + (162...165) + ), + DefNode(167...192)( + (171...174), + nil, + ParametersNode(175...188)( + [RequiredParameterNode(175...176)(:a)], + [OptionalParameterNode(178...183)( + :b, + (178...179), + (180...181), + IntegerNode(182...183)() + )], + [], + nil, + [], + ForwardingParameterNode(185...188)(), + nil + ), + nil, + [:a, :b, :"..."], + (167...170), + nil, + nil, + nil, + nil, + (189...192) + ), + DefNode(194...227)( + (198...201), + nil, + ParametersNode(202...212)( + [], + [OptionalParameterNode(202...207)( + :b, + (202...203), + (204...205), + IntegerNode(206...207)() + )], + [], + nil, + [], + ForwardingParameterNode(209...212)(), + nil + ), + StatementsNode(215...223)( + [CallNode(215...223)( + nil, + nil, + (215...218), + (218...219), + ArgumentsNode(219...222)([ForwardingArgumentsNode(219...222)()]), + (222...223), + nil, + 0, + "bar" + )] + ), + [:b, :"..."], + (194...197), + nil, + nil, + nil, + nil, + (224...227) + ), + DefNode(229...262)( + (233...236), + nil, + ParametersNode(237...247)( + [], + [OptionalParameterNode(237...242)( + :b, + (237...238), + (239...240), + IntegerNode(241...242)() + )], + [], + nil, + [], + ForwardingParameterNode(244...247)(), + nil + ), + StatementsNode(249...257)( + [CallNode(249...257)( + nil, + nil, + (249...252), + (252...253), + ArgumentsNode(253...256)([ForwardingArgumentsNode(253...256)()]), + (256...257), + nil, + 0, + "bar" + )] + ), + [:b, :"..."], + (229...232), + nil, + nil, + nil, + nil, + (259...262) + ), + DefNode(264...292)( + (268...271), + nil, + ParametersNode(272...278)( + [RequiredParameterNode(272...273)(:a)], + [], + [], + nil, + [], + ForwardingParameterNode(275...278)(), + nil + ), + StatementsNode(280...288)( + [CallNode(280...288)( + nil, + nil, + (280...283), + (283...284), + ArgumentsNode(284...287)([ForwardingArgumentsNode(284...287)()]), + (287...288), + nil, + 0, + "bar" + )] + ), + [:a, :"..."], + (264...267), + nil, + (271...272), + (278...279), + nil, + (289...292) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/forward_args_legacy.txt b/test/yarp/snapshots/whitequark/forward_args_legacy.txt new file mode 100644 index 0000000000..eeaf4f1d53 --- /dev/null +++ b/test/yarp/snapshots/whitequark/forward_args_legacy.txt @@ -0,0 +1,88 @@ +ProgramNode(0...77)( + [], + StatementsNode(0...77)( + [DefNode(0...27)( + (4...7), + nil, + ParametersNode(8...11)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(8...11)(), + nil + ), + StatementsNode(14...22)( + [CallNode(14...22)( + nil, + nil, + (14...17), + (17...18), + ArgumentsNode(18...21)([ForwardingArgumentsNode(18...21)()]), + (21...22), + nil, + 0, + "bar" + )] + ), + [:"..."], + (0...3), + nil, + (7...8), + (11...12), + nil, + (24...27) + ), + DefNode(29...46)( + (33...36), + nil, + ParametersNode(37...40)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(37...40)(), + nil + ), + nil, + [:"..."], + (29...32), + nil, + (36...37), + (40...41), + nil, + (43...46) + ), + DefNode(48...77)( + (52...55), + nil, + ParametersNode(56...59)( + [], + [], + [], + nil, + [], + ForwardingParameterNode(56...59)(), + nil + ), + StatementsNode(62...72)( + [SuperNode(62...72)( + (62...67), + (67...68), + ArgumentsNode(68...71)([ForwardingArgumentsNode(68...71)()]), + (71...72), + nil + )] + ), + [:"..."], + (48...51), + nil, + (55...56), + (59...60), + nil, + (74...77) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt b/test/yarp/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt new file mode 100644 index 0000000000..a751f923c1 --- /dev/null +++ b/test/yarp/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt @@ -0,0 +1,43 @@ +ProgramNode(0...45)( + [], + StatementsNode(0...45)( + [DefNode(0...45)( + (4...7), + nil, + ParametersNode(8...20)( + [RequiredParameterNode(8...16)(:argument)], + [], + [], + nil, + [], + KeywordRestParameterNode(18...20)((18...20), nil), + nil + ), + StatementsNode(23...40)( + [CallNode(23...40)( + nil, + nil, + (23...26), + (26...27), + ArgumentsNode(27...39)( + [LocalVariableReadNode(27...35)(:argument, 0), + KeywordHashNode(37...39)( + [AssocSplatNode(37...39)(nil, (37...39))] + )] + ), + (39...40), + nil, + 0, + "bar" + )] + ), + [:argument, :**], + (0...3), + nil, + (7...8), + (20...21), + nil, + (42...45) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/forwarded_argument_with_restarg.txt b/test/yarp/snapshots/whitequark/forwarded_argument_with_restarg.txt new file mode 100644 index 0000000000..ff0602c398 --- /dev/null +++ b/test/yarp/snapshots/whitequark/forwarded_argument_with_restarg.txt @@ -0,0 +1,41 @@ +ProgramNode(0...43)( + [], + StatementsNode(0...43)( + [DefNode(0...43)( + (4...7), + nil, + ParametersNode(8...19)( + [RequiredParameterNode(8...16)(:argument)], + [], + [], + RestParameterNode(18...19)((18...19), nil), + [], + nil, + nil + ), + StatementsNode(22...38)( + [CallNode(22...38)( + nil, + nil, + (22...25), + (25...26), + ArgumentsNode(26...37)( + [LocalVariableReadNode(26...34)(:argument, 0), + SplatNode(36...37)((36...37), nil)] + ), + (37...38), + nil, + 0, + "bar" + )] + ), + [:argument, :*], + (0...3), + nil, + (7...8), + (19...20), + nil, + (40...43) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/forwarded_kwrestarg.txt b/test/yarp/snapshots/whitequark/forwarded_kwrestarg.txt new file mode 100644 index 0000000000..0fcac6a298 --- /dev/null +++ b/test/yarp/snapshots/whitequark/forwarded_kwrestarg.txt @@ -0,0 +1,42 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [DefNode(0...25)( + (4...7), + nil, + ParametersNode(8...10)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(8...10)((8...10), nil), + nil + ), + StatementsNode(13...20)( + [CallNode(13...20)( + nil, + nil, + (13...16), + (16...17), + ArgumentsNode(17...19)( + [KeywordHashNode(17...19)( + [AssocSplatNode(17...19)(nil, (17...19))] + )] + ), + (19...20), + nil, + 0, + "bar" + )] + ), + [:**], + (0...3), + nil, + (7...8), + (10...11), + nil, + (22...25) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt b/test/yarp/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt new file mode 100644 index 0000000000..65f75e723a --- /dev/null +++ b/test/yarp/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt @@ -0,0 +1,47 @@ +ProgramNode(0...41)( + [], + StatementsNode(0...41)( + [DefNode(0...41)( + (4...7), + nil, + ParametersNode(8...10)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(8...10)((8...10), nil), + nil + ), + StatementsNode(13...36)( + [CallNode(13...36)( + nil, + nil, + (13...16), + (16...17), + ArgumentsNode(17...35)( + [KeywordHashNode(17...35)( + [AssocSplatNode(17...19)(nil, (17...19)), + AssocNode(21...35)( + SymbolNode(21...30)(nil, (21...29), (29...30), "from_foo"), + TrueNode(31...35)(), + nil + )] + )] + ), + (35...36), + nil, + 0, + "bar" + )] + ), + [:**], + (0...3), + nil, + (7...8), + (10...11), + nil, + (38...41) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/forwarded_restarg.txt b/test/yarp/snapshots/whitequark/forwarded_restarg.txt new file mode 100644 index 0000000000..d45b60fc0a --- /dev/null +++ b/test/yarp/snapshots/whitequark/forwarded_restarg.txt @@ -0,0 +1,38 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [DefNode(0...23)( + (4...7), + nil, + ParametersNode(8...9)( + [], + [], + [], + RestParameterNode(8...9)((8...9), nil), + [], + nil, + nil + ), + StatementsNode(12...18)( + [CallNode(12...18)( + nil, + nil, + (12...15), + (15...16), + ArgumentsNode(16...17)([SplatNode(16...17)((16...17), nil)]), + (17...18), + nil, + 0, + "bar" + )] + ), + [:*], + (0...3), + nil, + (7...8), + (9...10), + nil, + (20...23) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/gvar.txt b/test/yarp/snapshots/whitequark/gvar.txt new file mode 100644 index 0000000000..2ac61ed4f4 --- /dev/null +++ b/test/yarp/snapshots/whitequark/gvar.txt @@ -0,0 +1,4 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)([GlobalVariableReadNode(0...4)()]) +) diff --git a/test/yarp/snapshots/whitequark/gvasgn.txt b/test/yarp/snapshots/whitequark/gvasgn.txt new file mode 100644 index 0000000000..d6a5327590 --- /dev/null +++ b/test/yarp/snapshots/whitequark/gvasgn.txt @@ -0,0 +1,6 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [GlobalVariableWriteNode(0...9)((0...4), (5...6), IntegerNode(7...9)())] + ) +) diff --git a/test/yarp/snapshots/whitequark/hash_empty.txt b/test/yarp/snapshots/whitequark/hash_empty.txt new file mode 100644 index 0000000000..b06b9d299b --- /dev/null +++ b/test/yarp/snapshots/whitequark/hash_empty.txt @@ -0,0 +1,4 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)([HashNode(0...3)((0...1), [], (2...3))]) +) diff --git a/test/yarp/snapshots/whitequark/hash_hashrocket.txt b/test/yarp/snapshots/whitequark/hash_hashrocket.txt new file mode 100644 index 0000000000..9b96268c01 --- /dev/null +++ b/test/yarp/snapshots/whitequark/hash_hashrocket.txt @@ -0,0 +1,24 @@ +ProgramNode(0...37)( + [], + StatementsNode(0...37)( + [HashNode(0...10)( + (0...1), + [AssocNode(2...8)(IntegerNode(2...3)(), IntegerNode(7...8)(), (4...6))], + (9...10) + ), + HashNode(12...37)( + (12...13), + [AssocNode(14...20)( + IntegerNode(14...15)(), + IntegerNode(19...20)(), + (16...18) + ), + AssocNode(22...35)( + SymbolNode(22...26)((22...23), (23...26), nil, "foo"), + StringNode(30...35)((30...31), (31...34), (34...35), "bar"), + (27...29) + )], + (36...37) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/hash_kwsplat.txt b/test/yarp/snapshots/whitequark/hash_kwsplat.txt new file mode 100644 index 0000000000..ee33876082 --- /dev/null +++ b/test/yarp/snapshots/whitequark/hash_kwsplat.txt @@ -0,0 +1,18 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [HashNode(0...17)( + (0...1), + [AssocNode(2...8)( + SymbolNode(2...6)(nil, (2...5), (5...6), "foo"), + IntegerNode(7...8)(), + nil + ), + AssocSplatNode(10...15)( + CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "bar"), + (10...12) + )], + (16...17) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/hash_label.txt b/test/yarp/snapshots/whitequark/hash_label.txt new file mode 100644 index 0000000000..cfebb4b70c --- /dev/null +++ b/test/yarp/snapshots/whitequark/hash_label.txt @@ -0,0 +1,14 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [HashNode(0...10)( + (0...1), + [AssocNode(2...8)( + SymbolNode(2...6)(nil, (2...5), (5...6), "foo"), + IntegerNode(7...8)(), + nil + )], + (9...10) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/hash_label_end.txt b/test/yarp/snapshots/whitequark/hash_label_end.txt new file mode 100644 index 0000000000..7e208d4d84 --- /dev/null +++ b/test/yarp/snapshots/whitequark/hash_label_end.txt @@ -0,0 +1,53 @@ +ProgramNode(0...50)( + [], + StatementsNode(0...50)( + [CallNode(0...12)( + nil, + nil, + (0...1), + (1...2), + ArgumentsNode(2...11)( + [IfNode(2...11)( + nil, + CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "a"), + StatementsNode(6...9)( + [StringNode(6...9)((6...7), (7...8), (8...9), "a")] + ), + ElseNode(9...11)( + (9...10), + StatementsNode(10...11)([IntegerNode(10...11)()]), + nil + ), + nil + )] + ), + (11...12), + nil, + 0, + "f" + ), + HashNode(14...26)( + (14...15), + [AssocNode(16...24)( + SymbolNode(16...22)((16...17), (17...20), (20...22), "foo"), + IntegerNode(23...24)(), + nil + )], + (25...26) + ), + HashNode(28...50)( + (28...29), + [AssocNode(30...38)( + SymbolNode(30...36)((30...31), (31...34), (34...36), "foo"), + IntegerNode(37...38)(), + nil + ), + AssocNode(40...49)( + SymbolNode(40...46)((40...41), (41...44), (44...46), "bar"), + HashNode(47...49)((47...48), [], (48...49)), + nil + )], + (49...50) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/hash_pair_value_omission.txt b/test/yarp/snapshots/whitequark/hash_pair_value_omission.txt new file mode 100644 index 0000000000..825fe1beaa --- /dev/null +++ b/test/yarp/snapshots/whitequark/hash_pair_value_omission.txt @@ -0,0 +1,37 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [HashNode(0...6)( + (0...1), + [AssocNode(1...5)( + SymbolNode(1...5)(nil, (1...4), (4...5), "BAR"), + nil, + nil + )], + (5...6) + ), + HashNode(8...16)( + (8...9), + [AssocNode(9...11)( + SymbolNode(9...11)(nil, (9...10), (10...11), "a"), + nil, + nil + ), + AssocNode(13...15)( + SymbolNode(13...15)(nil, (13...14), (14...15), "b"), + nil, + nil + )], + (15...16) + ), + HashNode(18...25)( + (18...19), + [AssocNode(19...24)( + SymbolNode(19...24)(nil, (19...23), (23...24), "puts"), + nil, + nil + )], + (24...25) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/heredoc.txt b/test/yarp/snapshots/whitequark/heredoc.txt new file mode 100644 index 0000000000..ca45278d3c --- /dev/null +++ b/test/yarp/snapshots/whitequark/heredoc.txt @@ -0,0 +1,20 @@ +ProgramNode(0...66)( + [], + StatementsNode(0...66)( + [InterpolatedStringNode(0...22)( + (0...8), + [StringNode(9...17)(nil, (9...17), nil, "foo\n" + "bar\n")], + (17...22) + ), + InterpolatedStringNode(23...43)( + (23...29), + [StringNode(30...38)(nil, (30...38), nil, "foo\n" + "bar\n")], + (38...43) + ), + InterpolatedXStringNode(44...66)( + (44...52), + [StringNode(53...61)(nil, (53...61), nil, "foo\n" + "bar\n")], + (61...66) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/if.txt b/test/yarp/snapshots/whitequark/if.txt new file mode 100644 index 0000000000..4d830abafe --- /dev/null +++ b/test/yarp/snapshots/whitequark/if.txt @@ -0,0 +1,23 @@ +ProgramNode(0...38)( + [], + StatementsNode(0...38)( + [IfNode(0...20)( + (0...2), + CallNode(3...6)(nil, nil, (3...6), nil, nil, nil, nil, 0, "foo"), + StatementsNode(12...15)( + [CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "bar")] + ), + nil, + (17...20) + ), + IfNode(22...38)( + (22...24), + CallNode(25...28)(nil, nil, (25...28), nil, nil, nil, nil, 0, "foo"), + StatementsNode(30...33)( + [CallNode(30...33)(nil, nil, (30...33), nil, nil, nil, nil, 0, "bar")] + ), + nil, + (35...38) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/if_else.txt b/test/yarp/snapshots/whitequark/if_else.txt new file mode 100644 index 0000000000..936195e8da --- /dev/null +++ b/test/yarp/snapshots/whitequark/if_else.txt @@ -0,0 +1,55 @@ +ProgramNode(0...58)( + [], + StatementsNode(0...58)( + [IfNode(0...30)( + (0...2), + CallNode(3...6)(nil, nil, (3...6), nil, nil, nil, nil, 0, "foo"), + StatementsNode(12...15)( + [CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "bar")] + ), + ElseNode(17...30)( + (17...21), + StatementsNode(22...25)( + [CallNode(22...25)( + nil, + nil, + (22...25), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (27...30) + ), + (27...30) + ), + IfNode(32...58)( + (32...34), + CallNode(35...38)(nil, nil, (35...38), nil, nil, nil, nil, 0, "foo"), + StatementsNode(40...43)( + [CallNode(40...43)(nil, nil, (40...43), nil, nil, nil, nil, 0, "bar")] + ), + ElseNode(45...58)( + (45...49), + StatementsNode(50...53)( + [CallNode(50...53)( + nil, + nil, + (50...53), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (55...58) + ), + (55...58) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/if_elsif.txt b/test/yarp/snapshots/whitequark/if_elsif.txt new file mode 100644 index 0000000000..35add80565 --- /dev/null +++ b/test/yarp/snapshots/whitequark/if_elsif.txt @@ -0,0 +1,24 @@ +ProgramNode(0...38)( + [], + StatementsNode(0...38)( + [IfNode(0...38)( + (0...2), + CallNode(3...6)(nil, nil, (3...6), nil, nil, nil, nil, 0, "foo"), + StatementsNode(8...11)( + [CallNode(8...11)(nil, nil, (8...11), nil, nil, nil, nil, 0, "bar")] + ), + IfNode(13...38)( + (13...18), + CallNode(19...22)(nil, nil, (19...22), nil, nil, nil, nil, 0, "baz"), + StatementsNode(24...25)([IntegerNode(24...25)()]), + ElseNode(27...38)( + (27...31), + StatementsNode(32...33)([IntegerNode(32...33)()]), + (35...38) + ), + (35...38) + ), + (35...38) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/if_masgn__24.txt b/test/yarp/snapshots/whitequark/if_masgn__24.txt new file mode 100644 index 0000000000..59b556f604 --- /dev/null +++ b/test/yarp/snapshots/whitequark/if_masgn__24.txt @@ -0,0 +1,35 @@ +ProgramNode(0...20)( + [:a, :b], + StatementsNode(0...20)( + [IfNode(0...20)( + (0...2), + ParenthesesNode(3...15)( + StatementsNode(4...14)( + [MultiWriteNode(4...14)( + [LocalVariableWriteNode(4...5)(:a, 0, nil, (4...5), nil), + LocalVariableWriteNode(7...8)(:b, 0, nil, (7...8), nil)], + (9...10), + CallNode(11...14)( + nil, + nil, + (11...14), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + nil + )] + ), + (3...4), + (14...15) + ), + nil, + nil, + (17...20) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/if_mod.txt b/test/yarp/snapshots/whitequark/if_mod.txt new file mode 100644 index 0000000000..5325b8660a --- /dev/null +++ b/test/yarp/snapshots/whitequark/if_mod.txt @@ -0,0 +1,14 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [IfNode(0...10)( + (4...6), + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "foo"), + StatementsNode(0...3)( + [CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "bar")] + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/if_nl_then.txt b/test/yarp/snapshots/whitequark/if_nl_then.txt new file mode 100644 index 0000000000..0dae26ffdf --- /dev/null +++ b/test/yarp/snapshots/whitequark/if_nl_then.txt @@ -0,0 +1,14 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [IfNode(0...19)( + (0...2), + CallNode(3...6)(nil, nil, (3...6), nil, nil, nil, nil, 0, "foo"), + StatementsNode(12...15)( + [CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "bar")] + ), + nil, + (16...19) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/if_while_after_class__since_32.txt b/test/yarp/snapshots/whitequark/if_while_after_class__since_32.txt new file mode 100644 index 0000000000..afa047c4f8 --- /dev/null +++ b/test/yarp/snapshots/whitequark/if_while_after_class__since_32.txt @@ -0,0 +1,83 @@ +ProgramNode(0...178)( + [], + StatementsNode(0...178)( + [ClassNode(0...38)( + [], + (0...5), + ConstantPathNode(6...33)( + IfNode(6...25)( + (6...8), + TrueNode(9...13)(), + StatementsNode(15...21)([ConstantReadNode(15...21)()]), + nil, + (22...25) + ), + ConstantReadNode(27...33)(), + (25...27) + ), + nil, + nil, + nil, + (35...38) + ), + ClassNode(40...87)( + [], + (40...45), + ConstantPathNode(46...82)( + WhileNode(46...74)( + (46...51), + TrueNode(52...56)(), + StatementsNode(58...70)( + [BreakNode(58...70)( + ArgumentsNode(64...70)([ConstantReadNode(64...70)()]), + (58...63) + )] + ) + ), + ConstantReadNode(76...82)(), + (74...76) + ), + nil, + nil, + nil, + (84...87) + ), + ModuleNode(89...128)( + [], + (89...95), + ConstantPathNode(96...123)( + IfNode(96...115)( + (96...98), + TrueNode(99...103)(), + StatementsNode(105...111)([ConstantReadNode(105...111)()]), + nil, + (112...115) + ), + ConstantReadNode(117...123)(), + (115...117) + ), + nil, + (125...128) + ), + ModuleNode(130...178)( + [], + (130...136), + ConstantPathNode(137...173)( + WhileNode(137...165)( + (137...142), + TrueNode(143...147)(), + StatementsNode(149...161)( + [BreakNode(149...161)( + ArgumentsNode(155...161)([ConstantReadNode(155...161)()]), + (149...154) + )] + ) + ), + ConstantReadNode(167...173)(), + (165...167) + ), + nil, + (175...178) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/int.txt b/test/yarp/snapshots/whitequark/int.txt new file mode 100644 index 0000000000..c388070c41 --- /dev/null +++ b/test/yarp/snapshots/whitequark/int.txt @@ -0,0 +1,18 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [IntegerNode(0...3)(), + CallNode(5...8)( + IntegerNode(6...8)(), + nil, + (5...6), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + IntegerNode(10...12)()] + ) +) diff --git a/test/yarp/snapshots/whitequark/int___LINE__.txt b/test/yarp/snapshots/whitequark/int___LINE__.txt new file mode 100644 index 0000000000..0f6e7aa884 --- /dev/null +++ b/test/yarp/snapshots/whitequark/int___LINE__.txt @@ -0,0 +1 @@ +ProgramNode(0...8)([], StatementsNode(0...8)([SourceLineNode(0...8)()])) diff --git a/test/yarp/snapshots/whitequark/interp_digit_var.txt b/test/yarp/snapshots/whitequark/interp_digit_var.txt new file mode 100644 index 0000000000..0cf76b470b --- /dev/null +++ b/test/yarp/snapshots/whitequark/interp_digit_var.txt @@ -0,0 +1,131 @@ +ProgramNode(1...444)( + [], + StatementsNode(1...444)( + [StringNode(1...6)((1...2), (2...5), (5...6), "\#@1"), + StringNode(9...15)((9...10), (10...14), (14...15), "\#@@1"), + ArrayNode(18...25)( + [SymbolNode(21...24)(nil, (21...24), nil, "\#@1")], + (18...21), + (24...25) + ), + ArrayNode(28...36)( + [SymbolNode(31...35)(nil, (31...35), nil, "\#@@1")], + (28...31), + (35...36) + ), + StringNode(39...46)((39...42), (42...45), (45...46), "\#@1"), + StringNode(49...57)((49...52), (52...56), (56...57), "\#@@1"), + ArrayNode(60...67)( + [StringNode(63...66)(nil, (63...66), nil, "\#@1")], + (60...63), + (66...67) + ), + ArrayNode(70...78)( + [StringNode(73...77)(nil, (73...77), nil, "\#@@1")], + (70...73), + (77...78) + ), + ArrayNode(81...90)( + [SymbolNode(85...88)(nil, (85...88), nil, "\#@1")], + (81...84), + (89...90) + ), + ArrayNode(93...103)( + [SymbolNode(97...101)(nil, (97...101), nil, "\#@@1")], + (93...96), + (102...103) + ), + StringNode(106...113)((106...109), (109...112), (112...113), "\#@1"), + StringNode(116...124)((116...119), (119...123), (123...124), "\#@@1"), + RegularExpressionNode(127...134)( + (127...130), + (130...133), + (133...134), + "\#@1", + 0 + ), + RegularExpressionNode(137...145)( + (137...140), + (140...144), + (144...145), + "\#@@1", + 0 + ), + SymbolNode(148...155)((148...151), (151...154), (154...155), "\#@1"), + SymbolNode(158...166)((158...161), (161...165), (165...166), "\#@@1"), + ArrayNode(169...178)( + [StringNode(173...176)(nil, (173...176), nil, "\#@1")], + (169...172), + (177...178) + ), + ArrayNode(181...191)( + [StringNode(185...189)(nil, (185...189), nil, "\#@@1")], + (181...184), + (190...191) + ), + XStringNode(194...201)((194...197), (197...200), (200...201), "\#@1"), + XStringNode(204...212)((204...207), (207...211), (211...212), "\#@@1"), + StringNode(215...221)((215...217), (217...220), (220...221), "\#@1"), + StringNode(224...231)((224...226), (226...230), (230...231), "\#@@1"), + StringNode(234...239)((234...235), (235...238), (238...239), "\#@1"), + StringNode(242...248)((242...243), (243...247), (247...248), "\#@@1"), + RegularExpressionNode(251...256)( + (251...252), + (252...255), + (255...256), + "\#@1", + 0 + ), + RegularExpressionNode(259...265)( + (259...260), + (260...264), + (264...265), + "\#@@1", + 0 + ), + InterpolatedSymbolNode(268...274)( + (268...270), + [StringNode(270...273)(nil, (270...273), nil, "\#@1")], + (273...274) + ), + InterpolatedSymbolNode(277...284)( + (277...279), + [StringNode(279...283)(nil, (279...283), nil, "\#@@1")], + (283...284) + ), + SymbolNode(287...293)((287...289), (289...292), (292...293), "\#@1"), + SymbolNode(296...303)((296...298), (298...302), (302...303), "\#@@1"), + XStringNode(306...311)((306...307), (307...310), (310...311), "\#@1"), + XStringNode(314...320)((314...315), (315...319), (319...320), "\#@@1"), + InterpolatedStringNode(322...341)( + (322...331), + [StringNode(332...336)(nil, (332...336), nil, "\#@1\n")], + (336...341) + ), + InterpolatedStringNode(342...362)( + (342...351), + [StringNode(352...357)(nil, (352...357), nil, "\#@@1\n")], + (357...362) + ), + InterpolatedStringNode(363...382)( + (363...372), + [StringNode(373...377)(nil, (373...377), nil, "\#@1\n")], + (377...382) + ), + InterpolatedStringNode(383...403)( + (383...392), + [StringNode(393...398)(nil, (393...398), nil, "\#@@1\n")], + (398...403) + ), + InterpolatedXStringNode(404...423)( + (404...413), + [StringNode(414...418)(nil, (414...418), nil, "\#@1\n")], + (418...423) + ), + InterpolatedXStringNode(424...444)( + (424...433), + [StringNode(434...439)(nil, (434...439), nil, "\#@@1\n")], + (439...444) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ivar.txt b/test/yarp/snapshots/whitequark/ivar.txt new file mode 100644 index 0000000000..88bb2ace35 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ivar.txt @@ -0,0 +1,4 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)([InstanceVariableReadNode(0...4)()]) +) diff --git a/test/yarp/snapshots/whitequark/ivasgn.txt b/test/yarp/snapshots/whitequark/ivasgn.txt new file mode 100644 index 0000000000..4f6f90bbd7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ivasgn.txt @@ -0,0 +1,6 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [InstanceVariableWriteNode(0...9)((0...4), IntegerNode(7...9)(), (5...6))] + ) +) diff --git a/test/yarp/snapshots/whitequark/keyword_argument_omission.txt b/test/yarp/snapshots/whitequark/keyword_argument_omission.txt new file mode 100644 index 0000000000..c1b3b8800d --- /dev/null +++ b/test/yarp/snapshots/whitequark/keyword_argument_omission.txt @@ -0,0 +1,29 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...11)( + nil, + nil, + (0...3), + (3...4), + ArgumentsNode(4...10)( + [KeywordHashNode(4...10)( + [AssocNode(4...6)( + SymbolNode(4...6)(nil, (4...5), (5...6), "a"), + nil, + nil + ), + AssocNode(8...10)( + SymbolNode(8...10)(nil, (8...9), (9...10), "b"), + nil, + nil + )] + )] + ), + (10...11), + nil, + 0, + "foo" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/kwarg.txt b/test/yarp/snapshots/whitequark/kwarg.txt new file mode 100644 index 0000000000..d096caece0 --- /dev/null +++ b/test/yarp/snapshots/whitequark/kwarg.txt @@ -0,0 +1,26 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [DefNode(0...16)( + (4...5), + nil, + ParametersNode(6...10)( + [], + [], + [], + nil, + [KeywordParameterNode(6...10)((6...10), nil)], + nil, + nil + ), + nil, + [:foo], + (0...3), + nil, + (5...6), + (10...11), + nil, + (13...16) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/kwbegin_compstmt.txt b/test/yarp/snapshots/whitequark/kwbegin_compstmt.txt new file mode 100644 index 0000000000..0d05407aad --- /dev/null +++ b/test/yarp/snapshots/whitequark/kwbegin_compstmt.txt @@ -0,0 +1,26 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [BeginNode(0...20)( + (0...5), + StatementsNode(6...16)( + [CallNode(6...10)(nil, nil, (6...10), nil, nil, nil, nil, 0, "foo!"), + CallNode(12...16)( + nil, + nil, + (12...16), + nil, + nil, + nil, + nil, + 0, + "bar!" + )] + ), + nil, + nil, + nil, + (17...20) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/kwnilarg.txt b/test/yarp/snapshots/whitequark/kwnilarg.txt new file mode 100644 index 0000000000..d7ca269299 --- /dev/null +++ b/test/yarp/snapshots/whitequark/kwnilarg.txt @@ -0,0 +1,75 @@ +ProgramNode(0...46)( + [], + StatementsNode(0...46)( + [LambdaNode(0...12)( + [], + (0...2), + BlockParametersNode(2...9)( + ParametersNode(3...8)( + [], + [], + [], + nil, + [], + NoKeywordsParameterNode(3...8)((3...5), (5...8)), + nil + ), + [], + (2...3), + (8...9) + ), + nil + ), + DefNode(14...31)( + (18...19), + nil, + ParametersNode(20...25)( + [], + [], + [], + nil, + [], + NoKeywordsParameterNode(20...25)((20...22), (22...25)), + nil + ), + nil, + [], + (14...17), + nil, + (19...20), + (25...26), + nil, + (28...31) + ), + CallNode(33...46)( + nil, + nil, + (33...34), + nil, + nil, + nil, + BlockNode(35...46)( + [], + BlockParametersNode(37...44)( + ParametersNode(38...43)( + [], + [], + [], + nil, + [], + NoKeywordsParameterNode(38...43)((38...40), (40...43)), + nil + ), + [], + (37...38), + (43...44) + ), + nil, + (35...36), + (45...46) + ), + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/kwoptarg.txt b/test/yarp/snapshots/whitequark/kwoptarg.txt new file mode 100644 index 0000000000..9514567387 --- /dev/null +++ b/test/yarp/snapshots/whitequark/kwoptarg.txt @@ -0,0 +1,26 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [DefNode(0...18)( + (4...5), + nil, + ParametersNode(6...12)( + [], + [], + [], + nil, + [KeywordParameterNode(6...12)((6...10), IntegerNode(11...12)())], + nil, + nil + ), + nil, + [:foo], + (0...3), + nil, + (5...6), + (12...13), + nil, + (15...18) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt b/test/yarp/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt new file mode 100644 index 0000000000..14fd8da395 --- /dev/null +++ b/test/yarp/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt @@ -0,0 +1,42 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [DefNode(0...28)( + (4...5), + nil, + ParametersNode(6...16)( + [], + [], + [], + nil, + [KeywordParameterNode(6...12)((6...8), NilNode(9...12)())], + KeywordRestParameterNode(14...16)((14...16), nil), + nil + ), + StatementsNode(19...24)( + [CallNode(19...24)( + nil, + nil, + (19...20), + (20...21), + ArgumentsNode(21...23)( + [KeywordHashNode(21...23)( + [AssocSplatNode(21...23)(nil, (21...23))] + )] + ), + (23...24), + nil, + 0, + "b" + )] + ), + [:a, :**], + (0...3), + nil, + (5...6), + (16...17), + nil, + (25...28) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/kwrestarg_named.txt b/test/yarp/snapshots/whitequark/kwrestarg_named.txt new file mode 100644 index 0000000000..591c59dfba --- /dev/null +++ b/test/yarp/snapshots/whitequark/kwrestarg_named.txt @@ -0,0 +1,26 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [DefNode(0...17)( + (4...5), + nil, + ParametersNode(6...11)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(6...11)((6...8), (8...11)), + nil + ), + nil, + [:foo], + (0...3), + nil, + (5...6), + (11...12), + nil, + (14...17) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/kwrestarg_unnamed.txt b/test/yarp/snapshots/whitequark/kwrestarg_unnamed.txt new file mode 100644 index 0000000000..57bf8cc8b4 --- /dev/null +++ b/test/yarp/snapshots/whitequark/kwrestarg_unnamed.txt @@ -0,0 +1,26 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [DefNode(0...14)( + (4...5), + nil, + ParametersNode(6...8)( + [], + [], + [], + nil, + [], + KeywordRestParameterNode(6...8)((6...8), nil), + nil + ), + nil, + [:**], + (0...3), + nil, + (5...6), + (8...9), + nil, + (11...14) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/lbrace_arg_after_command_args.txt b/test/yarp/snapshots/whitequark/lbrace_arg_after_command_args.txt new file mode 100644 index 0000000000..0b2c12417d --- /dev/null +++ b/test/yarp/snapshots/whitequark/lbrace_arg_after_command_args.txt @@ -0,0 +1,42 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [CallNode(0...22)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...8)( + [ParenthesesNode(4...8)( + StatementsNode(5...7)( + [SymbolNode(5...7)((5...6), (6...7), nil, "a")] + ), + (4...5), + (7...8) + )] + ), + nil, + BlockNode(9...22)( + [], + nil, + StatementsNode(11...20)( + [CallNode(11...20)( + nil, + nil, + (11...12), + nil, + nil, + nil, + BlockNode(13...20)([], nil, nil, (13...15), (17...20)), + 0, + "m" + )] + ), + (9...10), + (21...22) + ), + 0, + "let" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/lparenarg_after_lvar__since_25.txt b/test/yarp/snapshots/whitequark/lparenarg_after_lvar__since_25.txt new file mode 100644 index 0000000000..c55c1d3c8a --- /dev/null +++ b/test/yarp/snapshots/whitequark/lparenarg_after_lvar__since_25.txt @@ -0,0 +1,83 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [CallNode(0...14)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...14)( + [CallNode(4...14)( + ParenthesesNode(4...10)( + StatementsNode(5...9)( + [CallNode(5...9)( + FloatNode(6...9)(), + nil, + (5...6), + nil, + nil, + nil, + nil, + 0, + "-@" + )] + ), + (4...5), + (9...10) + ), + (10...11), + (11...14), + nil, + nil, + nil, + nil, + 0, + "abs" + )] + ), + nil, + nil, + 0, + "foo" + ), + CallNode(16...31)( + nil, + nil, + (16...20), + nil, + ArgumentsNode(21...31)( + [CallNode(21...31)( + ParenthesesNode(21...27)( + StatementsNode(22...26)( + [CallNode(22...26)( + FloatNode(23...26)(), + nil, + (22...23), + nil, + nil, + nil, + nil, + 0, + "-@" + )] + ), + (21...22), + (26...27) + ), + (27...28), + (28...31), + nil, + nil, + nil, + nil, + 0, + "abs" + )] + ), + nil, + nil, + 0, + "meth" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/lvar.txt b/test/yarp/snapshots/whitequark/lvar.txt new file mode 100644 index 0000000000..fc27a87f84 --- /dev/null +++ b/test/yarp/snapshots/whitequark/lvar.txt @@ -0,0 +1,6 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)( + [CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo")] + ) +) diff --git a/test/yarp/snapshots/whitequark/lvar_injecting_match.txt b/test/yarp/snapshots/whitequark/lvar_injecting_match.txt new file mode 100644 index 0000000000..924b997bc7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/lvar_injecting_match.txt @@ -0,0 +1,25 @@ +ProgramNode(0...31)( + [:match], + StatementsNode(0...31)( + [CallNode(0...24)( + RegularExpressionNode(0...15)( + (0...1), + (1...14), + (14...15), + "(?<match>bar)", + 0 + ), + nil, + (16...18), + nil, + ArgumentsNode(19...24)( + [StringNode(19...24)((19...20), (20...23), (23...24), "bar")] + ), + nil, + nil, + 0, + "=~" + ), + LocalVariableReadNode(26...31)(:match, 0)] + ) +) diff --git a/test/yarp/snapshots/whitequark/lvasgn.txt b/test/yarp/snapshots/whitequark/lvasgn.txt new file mode 100644 index 0000000000..403c7f8042 --- /dev/null +++ b/test/yarp/snapshots/whitequark/lvasgn.txt @@ -0,0 +1,13 @@ +ProgramNode(0...13)( + [:var], + StatementsNode(0...13)( + [LocalVariableWriteNode(0...8)( + :var, + 0, + IntegerNode(6...8)(), + (0...3), + (4...5) + ), + LocalVariableReadNode(10...13)(:var, 0)] + ) +) diff --git a/test/yarp/snapshots/whitequark/masgn.txt b/test/yarp/snapshots/whitequark/masgn.txt new file mode 100644 index 0000000000..9945a348c1 --- /dev/null +++ b/test/yarp/snapshots/whitequark/masgn.txt @@ -0,0 +1,42 @@ +ProgramNode(1...56)( + [:foo, :bar, :baz], + StatementsNode(1...56)( + [MultiWriteNode(1...17)( + [LocalVariableWriteNode(1...4)(:foo, 0, nil, (1...4), nil), + LocalVariableWriteNode(6...9)(:bar, 0, nil, (6...9), nil)], + (11...12), + ArrayNode(13...17)( + [IntegerNode(13...14)(), IntegerNode(16...17)()], + nil, + nil + ), + (0...1), + (9...10) + ), + MultiWriteNode(19...34)( + [LocalVariableWriteNode(19...22)(:foo, 0, nil, (19...22), nil), + LocalVariableWriteNode(24...27)(:bar, 0, nil, (24...27), nil)], + (28...29), + ArrayNode(30...34)( + [IntegerNode(30...31)(), IntegerNode(33...34)()], + nil, + nil + ), + nil, + nil + ), + MultiWriteNode(36...56)( + [LocalVariableWriteNode(36...39)(:foo, 0, nil, (36...39), nil), + LocalVariableWriteNode(41...44)(:bar, 0, nil, (41...44), nil), + LocalVariableWriteNode(46...49)(:baz, 0, nil, (46...49), nil)], + (50...51), + ArrayNode(52...56)( + [IntegerNode(52...53)(), IntegerNode(55...56)()], + nil, + nil + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/masgn_attr.txt b/test/yarp/snapshots/whitequark/masgn_attr.txt new file mode 100644 index 0000000000..c5ab22eb0e --- /dev/null +++ b/test/yarp/snapshots/whitequark/masgn_attr.txt @@ -0,0 +1,71 @@ +ProgramNode(0...63)( + [:foo], + StatementsNode(0...63)( + [MultiWriteNode(0...17)( + [CallNode(0...6)( + SelfNode(0...4)(), + (4...5), + (5...6), + nil, + nil, + nil, + nil, + 0, + "A=" + ), + LocalVariableWriteNode(8...11)(:foo, 0, nil, (8...11), nil)], + (12...13), + LocalVariableReadNode(14...17)(:foo, 0), + nil, + nil + ), + MultiWriteNode(19...43)( + [CallNode(19...25)( + SelfNode(19...23)(), + (23...24), + (24...25), + nil, + nil, + nil, + nil, + 0, + "a=" + ), + CallNode(27...37)( + SelfNode(27...31)(), + nil, + (31...37), + (31...32), + ArgumentsNode(32...36)( + [IntegerNode(32...33)(), IntegerNode(35...36)()] + ), + (36...37), + nil, + 0, + "[]=" + )], + (38...39), + LocalVariableReadNode(40...43)(:foo, 0), + nil, + nil + ), + MultiWriteNode(45...63)( + [CallNode(45...52)( + SelfNode(45...49)(), + (49...51), + (51...52), + nil, + nil, + nil, + nil, + 0, + "a=" + ), + LocalVariableWriteNode(54...57)(:foo, 0, nil, (54...57), nil)], + (58...59), + LocalVariableReadNode(60...63)(:foo, 0), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/masgn_cmd.txt b/test/yarp/snapshots/whitequark/masgn_cmd.txt new file mode 100644 index 0000000000..1ca3b64a0a --- /dev/null +++ b/test/yarp/snapshots/whitequark/masgn_cmd.txt @@ -0,0 +1,23 @@ +ProgramNode(0...16)( + [:foo, :bar], + StatementsNode(0...16)( + [MultiWriteNode(0...16)( + [LocalVariableWriteNode(0...3)(:foo, 0, nil, (0...3), nil), + LocalVariableWriteNode(5...8)(:bar, 0, nil, (5...8), nil)], + (9...10), + CallNode(11...16)( + nil, + nil, + (11...12), + nil, + ArgumentsNode(13...16)([LocalVariableReadNode(13...16)(:foo, 0)]), + nil, + nil, + 0, + "m" + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/masgn_const.txt b/test/yarp/snapshots/whitequark/masgn_const.txt new file mode 100644 index 0000000000..4db22ceb7a --- /dev/null +++ b/test/yarp/snapshots/whitequark/masgn_const.txt @@ -0,0 +1,33 @@ +ProgramNode(0...34)( + [:foo], + StatementsNode(0...34)( + [MultiWriteNode(0...14)( + [ConstantPathWriteNode(0...3)( + ConstantPathNode(0...3)(nil, ConstantReadNode(2...3)(), (0...2)), + nil, + nil + ), + LocalVariableWriteNode(5...8)(:foo, 0, nil, (5...8), nil)], + (9...10), + LocalVariableReadNode(11...14)(:foo, 0), + nil, + nil + ), + MultiWriteNode(16...34)( + [ConstantPathWriteNode(16...23)( + ConstantPathNode(16...23)( + SelfNode(16...20)(), + ConstantReadNode(22...23)(), + (20...22) + ), + nil, + nil + ), + LocalVariableWriteNode(25...28)(:foo, 0, nil, (25...28), nil)], + (29...30), + LocalVariableReadNode(31...34)(:foo, 0), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/masgn_nested.txt b/test/yarp/snapshots/whitequark/masgn_nested.txt new file mode 100644 index 0000000000..6321eaa74a --- /dev/null +++ b/test/yarp/snapshots/whitequark/masgn_nested.txt @@ -0,0 +1,34 @@ +ProgramNode(2...30)( + [:b, :a, :c], + StatementsNode(2...30)( + [MultiWriteNode(2...13)( + [MultiWriteNode(2...4)( + [LocalVariableWriteNode(2...3)(:b, 0, nil, (2...3), nil), + SplatNode(3...4)((3...4), nil)], + nil, + nil, + (1...2), + (5...6) + )], + (8...9), + CallNode(10...13)(nil, nil, (10...13), nil, nil, nil, nil, 0, "foo"), + (0...1), + (6...7) + ), + MultiWriteNode(15...30)( + [LocalVariableWriteNode(15...16)(:a, 0, nil, (15...16), nil), + MultiWriteNode(19...24)( + [LocalVariableWriteNode(19...20)(:b, 0, nil, (19...20), nil), + LocalVariableWriteNode(22...23)(:c, 0, nil, (22...23), nil)], + nil, + nil, + (18...19), + (23...24) + )], + (25...26), + CallNode(27...30)(nil, nil, (27...30), nil, nil, nil, nil, 0, "foo"), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/masgn_splat.txt b/test/yarp/snapshots/whitequark/masgn_splat.txt new file mode 100644 index 0000000000..a20c9a1919 --- /dev/null +++ b/test/yarp/snapshots/whitequark/masgn_splat.txt @@ -0,0 +1,161 @@ +ProgramNode(0...139)( + [:c, :d, :b, :a], + StatementsNode(0...139)( + [MultiWriteNode(0...7)( + [SplatNode(0...1)((0...1), nil)], + (2...3), + CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "bar"), + nil, + nil + ), + MultiWriteNode(9...22)( + [MultiWriteNode(9...10)( + [SplatNode(9...10)((9...10), nil)], + nil, + nil, + nil, + nil + ), + LocalVariableWriteNode(12...13)(:c, 0, nil, (12...13), nil), + LocalVariableWriteNode(15...16)(:d, 0, nil, (15...16), nil)], + (17...18), + CallNode(19...22)(nil, nil, (19...22), nil, nil, nil, nil, 0, "bar"), + nil, + nil + ), + MultiWriteNode(24...32)( + [SplatNode(24...26)( + (24...25), + LocalVariableWriteNode(25...26)(:b, 0, nil, (25...26), nil) + )], + (27...28), + CallNode(29...32)(nil, nil, (29...32), nil, nil, nil, nil, 0, "bar"), + nil, + nil + ), + MultiWriteNode(34...45)( + [MultiWriteNode(34...36)( + [SplatNode(34...36)( + (34...35), + LocalVariableWriteNode(35...36)(:b, 0, nil, (35...36), nil) + )], + nil, + nil, + nil, + nil + ), + LocalVariableWriteNode(38...39)(:c, 0, nil, (38...39), nil)], + (40...41), + CallNode(42...45)(nil, nil, (42...45), nil, nil, nil, nil, 0, "bar"), + nil, + nil + ), + MultiWriteNode(47...65)( + [InstanceVariableWriteNode(47...51)((47...51), nil, nil), + ClassVariableWriteNode(53...58)((53...58), nil, nil)], + (59...60), + SplatNode(61...65)( + (61...62), + CallNode(62...65)(nil, nil, (62...65), nil, nil, nil, nil, 0, "foo") + ), + nil, + nil + ), + MultiWriteNode(67...77)( + [LocalVariableWriteNode(67...68)(:a, 0, nil, (67...68), nil), + SplatNode(70...71)((70...71), nil)], + (72...73), + CallNode(74...77)(nil, nil, (74...77), nil, nil, nil, nil, 0, "bar"), + nil, + nil + ), + MultiWriteNode(79...92)( + [LocalVariableWriteNode(79...80)(:a, 0, nil, (79...80), nil), + SplatNode(82...83)((82...83), nil), + LocalVariableWriteNode(85...86)(:c, 0, nil, (85...86), nil)], + (87...88), + CallNode(89...92)(nil, nil, (89...92), nil, nil, nil, nil, 0, "bar"), + nil, + nil + ), + MultiWriteNode(94...105)( + [LocalVariableWriteNode(94...95)(:a, 0, nil, (94...95), nil), + SplatNode(97...99)( + (97...98), + LocalVariableWriteNode(98...99)(:b, 0, nil, (98...99), nil) + )], + (100...101), + CallNode(102...105)( + nil, + nil, + (102...105), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + nil + ), + MultiWriteNode(107...121)( + [LocalVariableWriteNode(107...108)(:a, 0, nil, (107...108), nil), + SplatNode(110...112)( + (110...111), + LocalVariableWriteNode(111...112)(:b, 0, nil, (111...112), nil) + ), + LocalVariableWriteNode(114...115)(:c, 0, nil, (114...115), nil)], + (116...117), + CallNode(118...121)( + nil, + nil, + (118...121), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + nil, + nil + ), + MultiWriteNode(123...139)( + [LocalVariableWriteNode(123...124)(:a, 0, nil, (123...124), nil), + LocalVariableWriteNode(126...127)(:b, 0, nil, (126...127), nil)], + (128...129), + ArrayNode(130...139)( + [SplatNode(130...134)( + (130...131), + CallNode(131...134)( + nil, + nil, + (131...134), + nil, + nil, + nil, + nil, + 0, + "foo" + ) + ), + CallNode(136...139)( + nil, + nil, + (136...139), + nil, + nil, + nil, + nil, + 0, + "bar" + )], + nil, + nil + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/method_definition_in_while_cond.txt b/test/yarp/snapshots/whitequark/method_definition_in_while_cond.txt new file mode 100644 index 0000000000..bf615a18e8 --- /dev/null +++ b/test/yarp/snapshots/whitequark/method_definition_in_while_cond.txt @@ -0,0 +1,143 @@ +ProgramNode(0...190)( + [], + StatementsNode(0...190)( + [WhileNode(0...45)( + (0...5), + DefNode(6...33)( + (10...13), + nil, + ParametersNode(14...28)( + [], + [OptionalParameterNode(14...28)( + :a, + (14...15), + (16...17), + CallNode(18...28)( + nil, + nil, + (18...21), + nil, + nil, + nil, + BlockNode(22...28)([], nil, nil, (22...24), (25...28)), + 0, + "tap" + ) + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (6...9), + nil, + nil, + nil, + nil, + (30...33) + ), + StatementsNode(35...40)([BreakNode(35...40)(nil, (35...40))]) + ), + WhileNode(47...89)( + (47...52), + DefNode(53...77)( + (57...60), + nil, + nil, + StatementsNode(62...72)( + [CallNode(62...72)( + nil, + nil, + (62...65), + nil, + nil, + nil, + BlockNode(66...72)([], nil, nil, (66...68), (69...72)), + 0, + "tap" + )] + ), + [], + (53...56), + nil, + nil, + nil, + nil, + (74...77) + ), + StatementsNode(79...84)([BreakNode(79...84)(nil, (79...84))]) + ), + WhileNode(91...141)( + (91...96), + DefNode(97...129)( + (106...109), + SelfNode(101...105)(), + ParametersNode(110...124)( + [], + [OptionalParameterNode(110...124)( + :a, + (110...111), + (112...113), + CallNode(114...124)( + nil, + nil, + (114...117), + nil, + nil, + nil, + BlockNode(118...124)([], nil, nil, (118...120), (121...124)), + 0, + "tap" + ) + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:a], + (97...100), + (105...106), + nil, + nil, + nil, + (126...129) + ), + StatementsNode(131...136)([BreakNode(131...136)(nil, (131...136))]) + ), + WhileNode(143...190)( + (143...148), + DefNode(149...178)( + (158...161), + SelfNode(153...157)(), + nil, + StatementsNode(163...173)( + [CallNode(163...173)( + nil, + nil, + (163...166), + nil, + nil, + nil, + BlockNode(167...173)([], nil, nil, (167...169), (170...173)), + 0, + "tap" + )] + ), + [], + (149...152), + (157...158), + nil, + nil, + nil, + (175...178) + ), + StatementsNode(180...185)([BreakNode(180...185)(nil, (180...185))]) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/module.txt b/test/yarp/snapshots/whitequark/module.txt new file mode 100644 index 0000000000..54fccb1fa3 --- /dev/null +++ b/test/yarp/snapshots/whitequark/module.txt @@ -0,0 +1,12 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [ModuleNode(0...15)( + [], + (0...6), + ConstantReadNode(7...10)(), + nil, + (12...15) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/multiple_pattern_matches.txt b/test/yarp/snapshots/whitequark/multiple_pattern_matches.txt new file mode 100644 index 0000000000..7f655240cd --- /dev/null +++ b/test/yarp/snapshots/whitequark/multiple_pattern_matches.txt @@ -0,0 +1,97 @@ +ProgramNode(0...52)( + [:a], + StatementsNode(0...52)( + [MatchRequiredNode(0...12)( + HashNode(0...6)( + (0...1), + [AssocNode(1...5)( + SymbolNode(1...3)(nil, (1...2), (2...3), "a"), + IntegerNode(4...5)(), + nil + )], + (5...6) + ), + HashPatternNode(10...12)( + nil, + [AssocNode(10...12)( + SymbolNode(10...12)(nil, (10...11), (11...12), "a"), + nil, + nil + )], + nil, + nil, + nil + ), + (7...9) + ), + MatchRequiredNode(13...25)( + HashNode(13...19)( + (13...14), + [AssocNode(14...18)( + SymbolNode(14...16)(nil, (14...15), (15...16), "a"), + IntegerNode(17...18)(), + nil + )], + (18...19) + ), + HashPatternNode(23...25)( + nil, + [AssocNode(23...25)( + SymbolNode(23...25)(nil, (23...24), (24...25), "a"), + nil, + nil + )], + nil, + nil, + nil + ), + (20...22) + ), + MatchPredicateNode(27...39)( + HashNode(27...33)( + (27...28), + [AssocNode(28...32)( + SymbolNode(28...30)(nil, (28...29), (29...30), "a"), + IntegerNode(31...32)(), + nil + )], + (32...33) + ), + HashPatternNode(37...39)( + nil, + [AssocNode(37...39)( + SymbolNode(37...39)(nil, (37...38), (38...39), "a"), + nil, + nil + )], + nil, + nil, + nil + ), + (34...36) + ), + MatchPredicateNode(40...52)( + HashNode(40...46)( + (40...41), + [AssocNode(41...45)( + SymbolNode(41...43)(nil, (41...42), (42...43), "a"), + IntegerNode(44...45)(), + nil + )], + (45...46) + ), + HashPatternNode(50...52)( + nil, + [AssocNode(50...52)( + SymbolNode(50...52)(nil, (50...51), (51...52), "a"), + nil, + nil + )], + nil, + nil, + nil + ), + (47...49) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/newline_in_hash_argument.txt b/test/yarp/snapshots/whitequark/newline_in_hash_argument.txt new file mode 100644 index 0000000000..e2b0456381 --- /dev/null +++ b/test/yarp/snapshots/whitequark/newline_in_hash_argument.txt @@ -0,0 +1,85 @@ +ProgramNode(0...74)( + [:a, :b], + StatementsNode(0...74)( + [CaseNode(0...40)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo"), + [InNode(9...21)( + HashPatternNode(12...14)( + nil, + [AssocNode(12...14)( + SymbolNode(12...14)(nil, (12...13), (13...14), "a"), + nil, + nil + )], + nil, + nil, + nil + ), + StatementsNode(15...21)( + [IntegerNode(15...16)(), TrueNode(17...21)()] + ), + (9...11), + nil + ), + InNode(22...36)( + HashPatternNode(25...29)( + nil, + [AssocNode(25...29)( + SymbolNode(25...29)((25...26), (26...27), (27...29), "b"), + nil, + nil + )], + nil, + nil, + nil + ), + StatementsNode(30...36)( + [IntegerNode(30...31)(), TrueNode(32...36)()] + ), + (22...24), + nil + )], + nil, + (0...4), + (37...40) + ), + CallNode(42...58)( + CallNode(42...45)(nil, nil, (42...45), nil, nil, nil, nil, 0, "obj"), + (45...46), + (46...49), + nil, + ArgumentsNode(50...58)( + [KeywordHashNode(50...58)( + [AssocNode(50...58)( + SymbolNode(50...56)((50...51), (51...54), (54...56), "foo"), + IntegerNode(57...58)(), + nil + )] + )] + ), + nil, + nil, + 0, + "set" + ), + CallNode(60...74)( + CallNode(60...63)(nil, nil, (60...63), nil, nil, nil, nil, 0, "obj"), + (63...64), + (64...67), + nil, + ArgumentsNode(68...74)( + [KeywordHashNode(68...74)( + [AssocNode(68...74)( + SymbolNode(68...72)(nil, (68...71), (71...72), "foo"), + IntegerNode(73...74)(), + nil + )] + )] + ), + nil, + nil, + 0, + "set" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/next.txt b/test/yarp/snapshots/whitequark/next.txt new file mode 100644 index 0000000000..06997e7d1a --- /dev/null +++ b/test/yarp/snapshots/whitequark/next.txt @@ -0,0 +1,40 @@ +ProgramNode(0...33)( + [], + StatementsNode(0...33)( + [NextNode(0...4)(nil, (0...4)), + NextNode(6...14)( + ArgumentsNode(11...14)( + [CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "foo")] + ), + (6...10) + ), + NextNode(16...22)( + ArgumentsNode(20...22)( + [ParenthesesNode(20...22)(nil, (20...21), (21...22))] + ), + (16...20) + ), + NextNode(24...33)( + ArgumentsNode(28...33)( + [ParenthesesNode(28...33)( + StatementsNode(29...32)( + [CallNode(29...32)( + nil, + nil, + (29...32), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (28...29), + (32...33) + )] + ), + (24...28) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/next_block.txt b/test/yarp/snapshots/whitequark/next_block.txt new file mode 100644 index 0000000000..70f102b417 --- /dev/null +++ b/test/yarp/snapshots/whitequark/next_block.txt @@ -0,0 +1,33 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [NextNode(0...19)( + ArgumentsNode(5...19)( + [CallNode(5...19)( + nil, + nil, + (5...8), + nil, + ArgumentsNode(9...12)( + [CallNode(9...12)( + nil, + nil, + (9...12), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + BlockNode(13...19)([], nil, nil, (13...15), (16...19)), + 0, + "fun" + )] + ), + (0...4) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/nil.txt b/test/yarp/snapshots/whitequark/nil.txt new file mode 100644 index 0000000000..4af940de66 --- /dev/null +++ b/test/yarp/snapshots/whitequark/nil.txt @@ -0,0 +1 @@ +ProgramNode(0...3)([], StatementsNode(0...3)([NilNode(0...3)()])) diff --git a/test/yarp/snapshots/whitequark/nil_expression.txt b/test/yarp/snapshots/whitequark/nil_expression.txt new file mode 100644 index 0000000000..b9e8d19adb --- /dev/null +++ b/test/yarp/snapshots/whitequark/nil_expression.txt @@ -0,0 +1,7 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [ParenthesesNode(0...2)(nil, (0...1), (1...2)), + BeginNode(4...13)((4...9), nil, nil, nil, nil, (10...13))] + ) +) diff --git a/test/yarp/snapshots/whitequark/non_lvar_injecting_match.txt b/test/yarp/snapshots/whitequark/non_lvar_injecting_match.txt new file mode 100644 index 0000000000..e44f5db294 --- /dev/null +++ b/test/yarp/snapshots/whitequark/non_lvar_injecting_match.txt @@ -0,0 +1,28 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CallNode(0...28)( + InterpolatedRegularExpressionNode(0...19)( + (0...1), + [EmbeddedStatementsNode(1...5)( + (1...3), + StatementsNode(3...4)([IntegerNode(3...4)()]), + (4...5) + ), + StringNode(5...18)(nil, (5...18), nil, "(?<match>bar)")], + (18...19), + 0 + ), + nil, + (20...22), + nil, + ArgumentsNode(23...28)( + [StringNode(23...28)((23...24), (24...27), (27...28), "bar")] + ), + nil, + nil, + 0, + "=~" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/not.txt b/test/yarp/snapshots/whitequark/not.txt new file mode 100644 index 0000000000..e80943ad15 --- /dev/null +++ b/test/yarp/snapshots/whitequark/not.txt @@ -0,0 +1,38 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [CallNode(0...7)( + CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 0, "foo"), + nil, + (0...3), + nil, + nil, + nil, + nil, + 0, + "!" + ), + CallNode(9...14)( + nil, + nil, + (9...12), + (12...13), + nil, + (13...14), + nil, + 0, + "!" + ), + CallNode(16...24)( + CallNode(20...23)(nil, nil, (20...23), nil, nil, nil, nil, 0, "foo"), + nil, + (16...19), + (19...20), + nil, + (23...24), + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/not_cmd.txt b/test/yarp/snapshots/whitequark/not_cmd.txt new file mode 100644 index 0000000000..b361e5b61c --- /dev/null +++ b/test/yarp/snapshots/whitequark/not_cmd.txt @@ -0,0 +1,28 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + CallNode(4...9)( + nil, + nil, + (4...5), + nil, + ArgumentsNode(6...9)( + [CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "foo")] + ), + nil, + nil, + 0, + "m" + ), + nil, + (0...3), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/not_masgn__24.txt b/test/yarp/snapshots/whitequark/not_masgn__24.txt new file mode 100644 index 0000000000..6880ed7561 --- /dev/null +++ b/test/yarp/snapshots/whitequark/not_masgn__24.txt @@ -0,0 +1,39 @@ +ProgramNode(0...13)( + [:a, :b], + StatementsNode(0...13)( + [CallNode(0...13)( + ParenthesesNode(1...13)( + StatementsNode(2...12)( + [MultiWriteNode(2...12)( + [LocalVariableWriteNode(2...3)(:a, 0, nil, (2...3), nil), + LocalVariableWriteNode(5...6)(:b, 0, nil, (5...6), nil)], + (7...8), + CallNode(9...12)( + nil, + nil, + (9...12), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + nil + )] + ), + (1...2), + (12...13) + ), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "!" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/nth_ref.txt b/test/yarp/snapshots/whitequark/nth_ref.txt new file mode 100644 index 0000000000..3bfe4c9a5c --- /dev/null +++ b/test/yarp/snapshots/whitequark/nth_ref.txt @@ -0,0 +1,4 @@ +ProgramNode(0...3)( + [], + StatementsNode(0...3)([NumberedReferenceReadNode(0...3)()]) +) diff --git a/test/yarp/snapshots/whitequark/numbered_args_after_27.txt b/test/yarp/snapshots/whitequark/numbered_args_after_27.txt new file mode 100644 index 0000000000..c2cf4217e3 --- /dev/null +++ b/test/yarp/snapshots/whitequark/numbered_args_after_27.txt @@ -0,0 +1,177 @@ +ProgramNode(0...65)( + [], + StatementsNode(0...65)( + [LambdaNode(0...17)( + [], + (0...2), + nil, + StatementsNode(6...13)( + [CallNode(6...13)( + CallNode(6...8)(nil, nil, (6...8), nil, nil, nil, nil, 0, "_1"), + nil, + (9...10), + nil, + ArgumentsNode(11...13)( + [CallNode(11...13)( + nil, + nil, + (11...13), + nil, + nil, + nil, + nil, + 0, + "_9" + )] + ), + nil, + nil, + 0, + "+" + )] + ) + ), + LambdaNode(19...32)( + [], + (19...21), + nil, + StatementsNode(24...31)( + [CallNode(24...31)( + CallNode(24...26)( + nil, + nil, + (24...26), + nil, + nil, + nil, + nil, + 0, + "_1" + ), + nil, + (27...28), + nil, + ArgumentsNode(29...31)( + [CallNode(29...31)( + nil, + nil, + (29...31), + nil, + nil, + nil, + nil, + 0, + "_9" + )] + ), + nil, + nil, + 0, + "+" + )] + ) + ), + CallNode(34...50)( + nil, + nil, + (34...35), + nil, + nil, + nil, + BlockNode(36...50)( + [], + nil, + StatementsNode(39...46)( + [CallNode(39...46)( + CallNode(39...41)( + nil, + nil, + (39...41), + nil, + nil, + nil, + nil, + 0, + "_1" + ), + nil, + (42...43), + nil, + ArgumentsNode(44...46)( + [CallNode(44...46)( + nil, + nil, + (44...46), + nil, + nil, + nil, + nil, + 0, + "_9" + )] + ), + nil, + nil, + 0, + "+" + )] + ), + (36...38), + (47...50) + ), + 0, + "m" + ), + CallNode(52...65)( + nil, + nil, + (52...53), + nil, + nil, + nil, + BlockNode(54...65)( + [], + nil, + StatementsNode(56...63)( + [CallNode(56...63)( + CallNode(56...58)( + nil, + nil, + (56...58), + nil, + nil, + nil, + nil, + 0, + "_1" + ), + nil, + (59...60), + nil, + ArgumentsNode(61...63)( + [CallNode(61...63)( + nil, + nil, + (61...63), + nil, + nil, + nil, + nil, + 0, + "_9" + )] + ), + nil, + nil, + 0, + "+" + )] + ), + (54...55), + (64...65) + ), + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/numparam_outside_block.txt b/test/yarp/snapshots/whitequark/numparam_outside_block.txt new file mode 100644 index 0000000000..f99094a3a6 --- /dev/null +++ b/test/yarp/snapshots/whitequark/numparam_outside_block.txt @@ -0,0 +1,51 @@ +ProgramNode(0...83)( + [], + StatementsNode(0...83)( + [CallNode(0...2)(nil, nil, (0...2), nil, nil, nil, nil, 0, "_1"), + SingletonClassNode(4...25)( + [], + (4...9), + (10...12), + CallNode(13...16)(nil, nil, (13...16), nil, nil, nil, nil, 0, "foo"), + StatementsNode(18...20)( + [CallNode(18...20)(nil, nil, (18...20), nil, nil, nil, nil, 0, "_1")] + ), + (22...25) + ), + ClassNode(27...43)( + [], + (27...32), + ConstantReadNode(33...34)(), + nil, + nil, + StatementsNode(36...38)( + [CallNode(36...38)(nil, nil, (36...38), nil, nil, nil, nil, 0, "_1")] + ), + (40...43) + ), + DefNode(45...64)( + (54...55), + SelfNode(49...53)(), + nil, + StatementsNode(57...59)( + [CallNode(57...59)(nil, nil, (57...59), nil, nil, nil, nil, 0, "_1")] + ), + [], + (45...48), + (53...54), + nil, + nil, + nil, + (61...64) + ), + ModuleNode(66...83)( + [], + (66...72), + ConstantReadNode(73...74)(), + StatementsNode(76...78)( + [CallNode(76...78)(nil, nil, (76...78), nil, nil, nil, nil, 0, "_1")] + ), + (80...83) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/op_asgn.txt b/test/yarp/snapshots/whitequark/op_asgn.txt new file mode 100644 index 0000000000..cb4b4a662f --- /dev/null +++ b/test/yarp/snapshots/whitequark/op_asgn.txt @@ -0,0 +1,53 @@ +ProgramNode(0...35)( + [], + StatementsNode(0...35)( + [CallOperatorWriteNode(0...10)( + CallNode(0...5)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...5), + nil, + nil, + nil, + nil, + 0, + "A=" + ), + (6...8), + IntegerNode(9...10)(), + :+ + ), + CallOperatorWriteNode(12...22)( + CallNode(12...17)( + CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "foo"), + (15...16), + (16...17), + nil, + nil, + nil, + nil, + 0, + "a=" + ), + (18...20), + IntegerNode(21...22)(), + :+ + ), + CallOperatorWriteNode(24...35)( + CallNode(24...30)( + CallNode(24...27)(nil, nil, (24...27), nil, nil, nil, nil, 0, "foo"), + (27...29), + (29...30), + nil, + nil, + nil, + nil, + 0, + "a=" + ), + (31...33), + IntegerNode(34...35)(), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/op_asgn_cmd.txt b/test/yarp/snapshots/whitequark/op_asgn_cmd.txt new file mode 100644 index 0000000000..e18088fc60 --- /dev/null +++ b/test/yarp/snapshots/whitequark/op_asgn_cmd.txt @@ -0,0 +1,151 @@ +ProgramNode(0...64)( + [], + StatementsNode(0...64)( + [CallOperatorWriteNode(0...14)( + CallNode(0...5)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...5), + nil, + nil, + nil, + nil, + 0, + "A=" + ), + (6...8), + CallNode(9...14)( + nil, + nil, + (9...10), + nil, + ArgumentsNode(11...14)( + [CallNode(11...14)( + nil, + nil, + (11...14), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil, + 0, + "m" + ), + :+ + ), + CallOperatorWriteNode(16...30)( + CallNode(16...21)( + CallNode(16...19)(nil, nil, (16...19), nil, nil, nil, nil, 0, "foo"), + (19...20), + (20...21), + nil, + nil, + nil, + nil, + 0, + "a=" + ), + (22...24), + CallNode(25...30)( + nil, + nil, + (25...26), + nil, + ArgumentsNode(27...30)( + [CallNode(27...30)( + nil, + nil, + (27...30), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil, + 0, + "m" + ), + :+ + ), + ConstantPathOperatorWriteNode(32...47)( + ConstantPathNode(32...38)( + CallNode(32...35)(nil, nil, (32...35), nil, nil, nil, nil, 0, "foo"), + ConstantReadNode(37...38)(), + (35...37) + ), + (39...41), + CallNode(42...47)( + nil, + nil, + (42...43), + nil, + ArgumentsNode(44...47)( + [CallNode(44...47)( + nil, + nil, + (44...47), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil, + 0, + "m" + ), + :+ + ), + CallOperatorWriteNode(49...64)( + CallNode(49...55)( + CallNode(49...52)(nil, nil, (49...52), nil, nil, nil, nil, 0, "foo"), + (52...54), + (54...55), + nil, + nil, + nil, + nil, + 0, + "a=" + ), + (56...58), + CallNode(59...64)( + nil, + nil, + (59...60), + nil, + ArgumentsNode(61...64)( + [CallNode(61...64)( + nil, + nil, + (61...64), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil, + 0, + "m" + ), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/op_asgn_index.txt b/test/yarp/snapshots/whitequark/op_asgn_index.txt new file mode 100644 index 0000000000..8e0bc5f7dc --- /dev/null +++ b/test/yarp/snapshots/whitequark/op_asgn_index.txt @@ -0,0 +1,21 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallOperatorWriteNode(0...14)( + CallNode(0...9)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...9), + (3...4), + ArgumentsNode(4...8)([IntegerNode(4...5)(), IntegerNode(7...8)()]), + (8...9), + nil, + 0, + "[]=" + ), + (10...12), + IntegerNode(13...14)(), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/op_asgn_index_cmd.txt b/test/yarp/snapshots/whitequark/op_asgn_index_cmd.txt new file mode 100644 index 0000000000..c2e27b4353 --- /dev/null +++ b/test/yarp/snapshots/whitequark/op_asgn_index_cmd.txt @@ -0,0 +1,43 @@ +ProgramNode(0...18)( + [], + StatementsNode(0...18)( + [CallOperatorWriteNode(0...18)( + CallNode(0...9)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...9), + (3...4), + ArgumentsNode(4...8)([IntegerNode(4...5)(), IntegerNode(7...8)()]), + (8...9), + nil, + 0, + "[]=" + ), + (10...12), + CallNode(13...18)( + nil, + nil, + (13...14), + nil, + ArgumentsNode(15...18)( + [CallNode(15...18)( + nil, + nil, + (15...18), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + nil, + 0, + "m" + ), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/optarg.txt b/test/yarp/snapshots/whitequark/optarg.txt new file mode 100644 index 0000000000..2cbb681c61 --- /dev/null +++ b/test/yarp/snapshots/whitequark/optarg.txt @@ -0,0 +1,63 @@ +ProgramNode(0...44)( + [], + StatementsNode(0...44)( + [DefNode(0...18)( + (4...5), + nil, + ParametersNode(6...13)( + [], + [OptionalParameterNode(6...13)( + :foo, + (6...9), + (10...11), + IntegerNode(12...13)() + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:foo], + (0...3), + nil, + nil, + nil, + nil, + (15...18) + ), + DefNode(20...44)( + (24...25), + nil, + ParametersNode(26...38)( + [], + [OptionalParameterNode(26...31)( + :foo, + (26...29), + (29...30), + IntegerNode(30...31)() + ), + OptionalParameterNode(33...38)( + :bar, + (33...36), + (36...37), + IntegerNode(37...38)() + )], + [], + nil, + [], + nil, + nil + ), + nil, + [:foo, :bar], + (20...23), + nil, + (25...26), + (38...39), + nil, + (41...44) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/or.txt b/test/yarp/snapshots/whitequark/or.txt new file mode 100644 index 0000000000..023490e6d3 --- /dev/null +++ b/test/yarp/snapshots/whitequark/or.txt @@ -0,0 +1,15 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [OrNode(0...10)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "bar"), + (4...6) + ), + OrNode(12...22)( + CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "foo"), + CallNode(19...22)(nil, nil, (19...22), nil, nil, nil, nil, 0, "bar"), + (16...18) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/or_asgn.txt b/test/yarp/snapshots/whitequark/or_asgn.txt new file mode 100644 index 0000000000..21cede138f --- /dev/null +++ b/test/yarp/snapshots/whitequark/or_asgn.txt @@ -0,0 +1,37 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CallOperatorOrWriteNode(0...11)( + CallNode(0...5)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...5), + nil, + nil, + nil, + nil, + 0, + "a=" + ), + IntegerNode(10...11)(), + (6...9) + ), + CallOperatorOrWriteNode(13...28)( + CallNode(13...22)( + CallNode(13...16)(nil, nil, (13...16), nil, nil, nil, nil, 0, "foo"), + nil, + (16...22), + (16...17), + ArgumentsNode(17...21)( + [IntegerNode(17...18)(), IntegerNode(20...21)()] + ), + (21...22), + nil, + 0, + "[]=" + ), + IntegerNode(27...28)(), + (23...26) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_272.txt b/test/yarp/snapshots/whitequark/parser_bug_272.txt new file mode 100644 index 0000000000..eeb981d694 --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_272.txt @@ -0,0 +1,35 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [CallNode(0...15)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...4)([InstanceVariableReadNode(2...4)()]), + nil, + BlockNode(5...15)( + [:c], + BlockParametersNode(8...11)( + ParametersNode(9...10)( + [RequiredParameterNode(9...10)(:c)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (8...9), + (10...11) + ), + nil, + (5...7), + (12...15) + ), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_490.txt b/test/yarp/snapshots/whitequark/parser_bug_490.txt new file mode 100644 index 0000000000..cd38544ea7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_490.txt @@ -0,0 +1,95 @@ +ProgramNode(0...132)( + [], + StatementsNode(0...132)( + [DefNode(0...39)( + (4...5), + nil, + nil, + StatementsNode(7...34)( + [SingletonClassNode(7...34)( + [], + (7...12), + (13...15), + SelfNode(16...20)(), + StatementsNode(22...29)( + [ConstantPathWriteNode(22...29)( + ConstantReadNode(22...23)(), + (24...25), + NilNode(26...29)() + )] + ), + (31...34) + )] + ), + [], + (0...3), + nil, + nil, + nil, + nil, + (36...39) + ), + DefNode(41...85)( + (45...46), + nil, + nil, + StatementsNode(48...80)( + [SingletonClassNode(48...80)( + [], + (48...53), + (54...56), + SelfNode(57...61)(), + StatementsNode(63...75)( + [ClassNode(63...75)( + [], + (63...68), + ConstantReadNode(69...70)(), + nil, + nil, + nil, + (72...75) + )] + ), + (77...80) + )] + ), + [], + (41...44), + nil, + nil, + nil, + nil, + (82...85) + ), + DefNode(87...132)( + (91...92), + nil, + nil, + StatementsNode(94...127)( + [SingletonClassNode(94...127)( + [], + (94...99), + (100...102), + SelfNode(103...107)(), + StatementsNode(109...122)( + [ModuleNode(109...122)( + [], + (109...115), + ConstantReadNode(116...117)(), + nil, + (119...122) + )] + ), + (124...127) + )] + ), + [], + (87...90), + nil, + nil, + nil, + nil, + (129...132) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_507.txt b/test/yarp/snapshots/whitequark/parser_bug_507.txt new file mode 100644 index 0000000000..e0b69e4c8b --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_507.txt @@ -0,0 +1,30 @@ +ProgramNode(0...19)( + [:m], + StatementsNode(0...19)( + [LocalVariableWriteNode(0...19)( + :m, + 0, + LambdaNode(4...19)( + [:args], + (4...6), + BlockParametersNode(7...12)( + ParametersNode(7...12)( + [], + [], + [], + RestParameterNode(7...12)((7...8), (8...12)), + [], + nil, + nil + ), + [], + nil, + nil + ), + nil + ), + (0...1), + (2...3) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_518.txt b/test/yarp/snapshots/whitequark/parser_bug_518.txt new file mode 100644 index 0000000000..4de48dad9f --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_518.txt @@ -0,0 +1,14 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [ClassNode(0...15)( + [], + (0...5), + ConstantReadNode(6...7)(), + (8...9), + ConstantReadNode(10...11)(), + nil, + (12...15) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_525.txt b/test/yarp/snapshots/whitequark/parser_bug_525.txt new file mode 100644 index 0000000000..e6fc74d2f6 --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_525.txt @@ -0,0 +1,52 @@ +ProgramNode(0...32)( + [], + StatementsNode(0...32)( + [CallNode(0...32)( + nil, + nil, + (0...2), + nil, + ArgumentsNode(3...11)( + [KeywordHashNode(3...11)( + [AssocNode(3...11)( + SymbolNode(3...5)((3...4), (4...5), nil, "k"), + CallNode(9...11)( + nil, + nil, + (9...11), + nil, + nil, + nil, + nil, + 0, + "m2" + ), + (6...8) + )] + )] + ), + nil, + BlockNode(12...32)( + [], + nil, + StatementsNode(16...27)( + [CallNode(16...27)( + nil, + nil, + (16...18), + (18...19), + nil, + (19...20), + BlockNode(21...27)([], nil, nil, (21...23), (24...27)), + 0, + "m3" + )] + ), + (12...14), + (29...32) + ), + 0, + "m1" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_604.txt b/test/yarp/snapshots/whitequark/parser_bug_604.txt new file mode 100644 index 0000000000..99f5a7a71a --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_604.txt @@ -0,0 +1,30 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [CallNode(0...14)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...7)( + [CallNode(2...7)( + CallNode(2...3)(nil, nil, (2...3), nil, nil, nil, nil, 0, "a"), + nil, + (4...5), + nil, + ArgumentsNode(6...7)( + [CallNode(6...7)(nil, nil, (6...7), nil, nil, nil, nil, 0, "b")] + ), + nil, + nil, + 0, + "+" + )] + ), + nil, + BlockNode(8...14)([], nil, nil, (8...10), (11...14)), + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_640.txt b/test/yarp/snapshots/whitequark/parser_bug_640.txt new file mode 100644 index 0000000000..7af6f48f95 --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_640.txt @@ -0,0 +1,10 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [InterpolatedStringNode(0...24)( + (0...6), + [StringNode(7...20)(nil, (7...20), nil, "baz\n" + "qux\n")], + (20...24) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_645.txt b/test/yarp/snapshots/whitequark/parser_bug_645.txt new file mode 100644 index 0000000000..22ae40a011 --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_645.txt @@ -0,0 +1,29 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [LambdaNode(0...14)( + [:arg], + (0...2), + BlockParametersNode(3...11)( + ParametersNode(4...10)( + [], + [OptionalParameterNode(4...10)( + :arg, + (4...7), + (7...8), + HashNode(8...10)((8...9), [], (9...10)) + )], + [], + nil, + [], + nil, + nil + ), + [], + (3...4), + (10...11) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_bug_830.txt b/test/yarp/snapshots/whitequark/parser_bug_830.txt new file mode 100644 index 0000000000..c8f0c34e7d --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_bug_830.txt @@ -0,0 +1,6 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [RegularExpressionNode(0...4)((0...1), (1...3), (3...4), "(", 0)] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt b/test/yarp/snapshots/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt new file mode 100644 index 0000000000..b9b0a9ca4d --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt @@ -0,0 +1,12 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [InterpolatedStringNode(0...19)( + (0...7), + [StringNode(8...10)(nil, (8...10), nil, ""), + EmbeddedStatementsNode(10...13)((10...12), nil, (12...13)), + StringNode(13...14)(nil, (13...14), nil, "\n")], + (14...19) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt b/test/yarp/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt new file mode 100644 index 0000000000..7228359d39 --- /dev/null +++ b/test/yarp/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt @@ -0,0 +1,78 @@ +ProgramNode(0...210)( + [], + StatementsNode(0...210)( + [StringNode(0...6)((0...1), (1...5), (5...6), "a\n" + "b"), + ArrayNode(8...16)( + [SymbolNode(11...15)(nil, (11...15), nil, "a\n" + "b")], + (8...11), + (15...16) + ), + StringNode(18...26)((18...21), (21...25), (25...26), "a\n" + "b"), + ArrayNode(28...36)( + [StringNode(31...35)(nil, (31...35), nil, "a\n" + "b")], + (28...31), + (35...36) + ), + ArrayNode(38...46)( + [SymbolNode(41...45)(nil, (41...45), nil, "a\\\n" + "b")], + (38...41), + (45...46) + ), + StringNode(48...56)((48...51), (51...55), (55...56), "a\\\n" + "b"), + RegularExpressionNode(58...66)( + (58...61), + (61...65), + (65...66), + "a\n" + "b", + 0 + ), + SymbolNode(68...76)((68...71), (71...75), (75...76), "a\n" + "b"), + ArrayNode(78...86)( + [StringNode(81...85)(nil, (81...85), nil, "a\\\n" + "b")], + (78...81), + (85...86) + ), + XStringNode(88...96)((88...91), (91...95), (95...96), "a\n" + "b"), + StringNode(98...105)((98...100), (100...104), (104...105), "a\n" + "b"), + StringNode(107...113)( + (107...108), + (108...112), + (112...113), + "a\\\n" + "b" + ), + RegularExpressionNode(115...121)( + (115...116), + (116...120), + (120...121), + "a\n" + "b", + 0 + ), + InterpolatedSymbolNode(123...130)( + (123...125), + [StringNode(125...129)(nil, (125...129), nil, "a\n" + "b")], + (129...130) + ), + SymbolNode(132...139)((132...134), (134...138), (138...139), "a\n" + "b"), + InterpolatedStringNode(141...161)( + (141...150), + [StringNode(151...156)(nil, (151...156), nil, "a\n" + "b\n")], + (156...161) + ), + InterpolatedStringNode(162...182)( + (162...171), + [StringNode(172...177)(nil, (172...177), nil, "a\\\n" + "b\n")], + (177...182) + ), + InterpolatedXStringNode(183...203)( + (183...192), + [StringNode(193...198)(nil, (193...198), nil, "a\n" + "b\n")], + (198...203) + ), + XStringNode(204...210)( + (204...205), + (205...209), + (209...210), + "a\n" + "b" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt b/test/yarp/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt new file mode 100644 index 0000000000..12c279f896 --- /dev/null +++ b/test/yarp/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt @@ -0,0 +1,42 @@ +ProgramNode(8...111)( + [], + StatementsNode(8...111)( + [CaseNode(8...111)( + ArrayNode(13...51)( + [SourceFileNode(14...22)("/fixtures/whitequark/pattern_matching__FILE__LINE_literals.txt"), + CallNode(24...36)( + SourceLineNode(24...32)(), + nil, + (33...34), + nil, + ArgumentsNode(35...36)([IntegerNode(35...36)()]), + nil, + nil, + 0, + "+" + ), + SourceEncodingNode(38...50)()], + (13...14), + (50...51) + ), + [InNode(62...99)( + ArrayPatternNode(65...99)( + nil, + [SourceFileNode(66...74)("/fixtures/whitequark/pattern_matching__FILE__LINE_literals.txt"), + SourceLineNode(76...84)(), + SourceEncodingNode(86...98)()], + nil, + [], + (65...66), + (98...99) + ), + nil, + (62...64), + nil + )], + nil, + (8...12), + (108...111) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/pattern_matching_blank_else.txt b/test/yarp/snapshots/whitequark/pattern_matching_blank_else.txt new file mode 100644 index 0000000000..df949e90b0 --- /dev/null +++ b/test/yarp/snapshots/whitequark/pattern_matching_blank_else.txt @@ -0,0 +1,17 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [CaseNode(0...26)( + IntegerNode(5...6)(), + [InNode(8...15)( + IntegerNode(11...12)(), + StatementsNode(14...15)([IntegerNode(14...15)()]), + (8...10), + nil + )], + ElseNode(17...26)((17...21), nil, (23...26)), + (0...4), + (23...26) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/pattern_matching_else.txt b/test/yarp/snapshots/whitequark/pattern_matching_else.txt new file mode 100644 index 0000000000..d776a0ba1e --- /dev/null +++ b/test/yarp/snapshots/whitequark/pattern_matching_else.txt @@ -0,0 +1,21 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [CaseNode(0...29)( + IntegerNode(5...6)(), + [InNode(8...15)( + IntegerNode(11...12)(), + StatementsNode(14...15)([IntegerNode(14...15)()]), + (8...10), + nil + )], + ElseNode(17...29)( + (17...21), + StatementsNode(23...24)([IntegerNode(23...24)()]), + (26...29) + ), + (0...4), + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/pattern_matching_single_line.txt b/test/yarp/snapshots/whitequark/pattern_matching_single_line.txt new file mode 100644 index 0000000000..7a0546c569 --- /dev/null +++ b/test/yarp/snapshots/whitequark/pattern_matching_single_line.txt @@ -0,0 +1,31 @@ +ProgramNode(0...24)( + [:a], + StatementsNode(0...24)( + [MatchRequiredNode(0...8)( + IntegerNode(0...1)(), + ArrayPatternNode(5...8)( + nil, + [LocalVariableWriteNode(6...7)(:a, 0, nil, (6...7), nil)], + nil, + [], + (5...6), + (7...8) + ), + (2...4) + ), + LocalVariableReadNode(10...11)(:a, 0), + MatchPredicateNode(13...21)( + IntegerNode(13...14)(), + ArrayPatternNode(18...21)( + nil, + [LocalVariableWriteNode(19...20)(:a, 0, nil, (19...20), nil)], + nil, + [], + (18...19), + (20...21) + ), + (15...17) + ), + LocalVariableReadNode(23...24)(:a, 0)] + ) +) diff --git a/test/yarp/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt b/test/yarp/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt new file mode 100644 index 0000000000..c6d53befee --- /dev/null +++ b/test/yarp/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt @@ -0,0 +1,143 @@ +ProgramNode(0...142)( + [:a, :b, :value], + StatementsNode(0...142)( + [MatchRequiredNode(0...14)( + ArrayNode(0...6)( + [IntegerNode(1...2)(), IntegerNode(4...5)()], + (0...1), + (5...6) + ), + ArrayPatternNode(10...14)( + nil, + [LocalVariableWriteNode(10...11)(:a, 0, nil, (10...11), nil), + LocalVariableWriteNode(13...14)(:b, 0, nil, (13...14), nil)], + nil, + [], + nil, + nil + ), + (7...9) + ), + LocalVariableReadNode(16...17)(:a, 0), + MatchPredicateNode(19...33)( + ArrayNode(19...25)( + [IntegerNode(20...21)(), IntegerNode(23...24)()], + (19...20), + (24...25) + ), + ArrayPatternNode(29...33)( + nil, + [LocalVariableWriteNode(29...30)(:a, 0, nil, (29...30), nil), + LocalVariableWriteNode(32...33)(:b, 0, nil, (32...33), nil)], + nil, + [], + nil, + nil + ), + (26...28) + ), + LocalVariableReadNode(35...36)(:a, 0), + MatchRequiredNode(38...50)( + HashNode(38...44)( + (38...39), + [AssocNode(39...43)( + SymbolNode(39...41)(nil, (39...40), (40...41), "a"), + IntegerNode(42...43)(), + nil + )], + (43...44) + ), + HashPatternNode(48...50)( + nil, + [AssocNode(48...50)( + SymbolNode(48...50)(nil, (48...49), (49...50), "a"), + nil, + nil + )], + nil, + nil, + nil + ), + (45...47) + ), + LocalVariableReadNode(52...53)(:a, 0), + MatchPredicateNode(55...67)( + HashNode(55...61)( + (55...56), + [AssocNode(56...60)( + SymbolNode(56...58)(nil, (56...57), (57...58), "a"), + IntegerNode(59...60)(), + nil + )], + (60...61) + ), + HashPatternNode(65...67)( + nil, + [AssocNode(65...67)( + SymbolNode(65...67)(nil, (65...66), (66...67), "a"), + nil, + nil + )], + nil, + nil, + nil + ), + (62...64) + ), + LocalVariableReadNode(69...70)(:a, 0), + MatchRequiredNode(72...99)( + HashNode(72...85)( + (72...73), + [AssocNode(73...84)( + SymbolNode(73...77)(nil, (73...76), (76...77), "key"), + SymbolNode(78...84)((78...79), (79...84), nil, "value"), + nil + )], + (84...85) + ), + HashPatternNode(89...99)( + nil, + [AssocNode(89...99)( + SymbolNode(89...93)(nil, (89...92), (92...93), "key"), + LocalVariableWriteNode(94...99)(:value, 0, nil, (94...99), nil), + nil + )], + nil, + nil, + nil + ), + (86...88) + ), + LocalVariableReadNode(101...106)(:value, 0), + MatchPredicateNode(108...135)( + HashNode(108...121)( + (108...109), + [AssocNode(109...120)( + SymbolNode(109...113)(nil, (109...112), (112...113), "key"), + SymbolNode(114...120)((114...115), (115...120), nil, "value"), + nil + )], + (120...121) + ), + HashPatternNode(125...135)( + nil, + [AssocNode(125...135)( + SymbolNode(125...129)(nil, (125...128), (128...129), "key"), + LocalVariableWriteNode(130...135)( + :value, + 0, + nil, + (130...135), + nil + ), + nil + )], + nil, + nil, + nil + ), + (122...124) + ), + LocalVariableReadNode(137...142)(:value, 0)] + ) +) diff --git a/test/yarp/snapshots/whitequark/postexe.txt b/test/yarp/snapshots/whitequark/postexe.txt new file mode 100644 index 0000000000..d6af82bf15 --- /dev/null +++ b/test/yarp/snapshots/whitequark/postexe.txt @@ -0,0 +1,11 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [PostExecutionNode(0...9)( + StatementsNode(6...7)([IntegerNode(6...7)()]), + (0...3), + (4...5), + (8...9) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/preexe.txt b/test/yarp/snapshots/whitequark/preexe.txt new file mode 100644 index 0000000000..bfa071f72c --- /dev/null +++ b/test/yarp/snapshots/whitequark/preexe.txt @@ -0,0 +1,11 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [PreExecutionNode(0...11)( + StatementsNode(8...9)([IntegerNode(8...9)()]), + (0...5), + (6...7), + (10...11) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/procarg0.txt b/test/yarp/snapshots/whitequark/procarg0.txt new file mode 100644 index 0000000000..8153bfdd9d --- /dev/null +++ b/test/yarp/snapshots/whitequark/procarg0.txt @@ -0,0 +1,70 @@ +ProgramNode(0...31)( + [], + StatementsNode(0...31)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + nil, + nil, + BlockNode(2...18)( + [:foo, :bar], + BlockParametersNode(4...16)( + ParametersNode(5...15)( + [RequiredDestructuredParameterNode(5...15)( + [RequiredParameterNode(6...9)(:foo), + RequiredParameterNode(11...14)(:bar)], + (5...6), + (14...15) + )], + [], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (15...16) + ), + nil, + (2...3), + (17...18) + ), + 0, + "m" + ), + CallNode(20...31)( + nil, + nil, + (20...21), + nil, + nil, + nil, + BlockNode(22...31)( + [:foo], + BlockParametersNode(24...29)( + ParametersNode(25...28)( + [RequiredParameterNode(25...28)(:foo)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (24...25), + (28...29) + ), + nil, + (22...23), + (30...31) + ), + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/range_exclusive.txt b/test/yarp/snapshots/whitequark/range_exclusive.txt new file mode 100644 index 0000000000..4571ea317a --- /dev/null +++ b/test/yarp/snapshots/whitequark/range_exclusive.txt @@ -0,0 +1,6 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)( + [RangeNode(0...5)(IntegerNode(0...1)(), IntegerNode(4...5)(), (1...4), 1)] + ) +) diff --git a/test/yarp/snapshots/whitequark/range_inclusive.txt b/test/yarp/snapshots/whitequark/range_inclusive.txt new file mode 100644 index 0000000000..021f010a66 --- /dev/null +++ b/test/yarp/snapshots/whitequark/range_inclusive.txt @@ -0,0 +1,6 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [RangeNode(0...4)(IntegerNode(0...1)(), IntegerNode(3...4)(), (1...3), 0)] + ) +) diff --git a/test/yarp/snapshots/whitequark/rational.txt b/test/yarp/snapshots/whitequark/rational.txt new file mode 100644 index 0000000000..dfa7d0c29f --- /dev/null +++ b/test/yarp/snapshots/whitequark/rational.txt @@ -0,0 +1,7 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [RationalNode(0...5)(FloatNode(0...4)()), + RationalNode(7...10)(IntegerNode(7...9)())] + ) +) diff --git a/test/yarp/snapshots/whitequark/redo.txt b/test/yarp/snapshots/whitequark/redo.txt new file mode 100644 index 0000000000..99ab66873b --- /dev/null +++ b/test/yarp/snapshots/whitequark/redo.txt @@ -0,0 +1 @@ +ProgramNode(0...4)([], StatementsNode(0...4)([RedoNode(0...4)()])) diff --git a/test/yarp/snapshots/whitequark/regex_interp.txt b/test/yarp/snapshots/whitequark/regex_interp.txt new file mode 100644 index 0000000000..2819567035 --- /dev/null +++ b/test/yarp/snapshots/whitequark/regex_interp.txt @@ -0,0 +1,19 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [InterpolatedRegularExpressionNode(0...14)( + (0...1), + [StringNode(1...4)(nil, (1...4), nil, "foo"), + EmbeddedStatementsNode(4...10)( + (4...6), + StatementsNode(6...9)( + [CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "bar")] + ), + (9...10) + ), + StringNode(10...13)(nil, (10...13), nil, "baz")], + (13...14), + 0 + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/regex_plain.txt b/test/yarp/snapshots/whitequark/regex_plain.txt new file mode 100644 index 0000000000..cf2728065e --- /dev/null +++ b/test/yarp/snapshots/whitequark/regex_plain.txt @@ -0,0 +1,6 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [RegularExpressionNode(0...10)((0...1), (1...7), (7...10), "source", 3)] + ) +) diff --git a/test/yarp/snapshots/whitequark/resbody_list.txt b/test/yarp/snapshots/whitequark/resbody_list.txt new file mode 100644 index 0000000000..772a0a55f7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/resbody_list.txt @@ -0,0 +1,34 @@ +ProgramNode(0...39)( + [], + StatementsNode(0...39)( + [BeginNode(0...39)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + RescueNode(13...34)( + (13...19), + [ConstantReadNode(20...29)()], + nil, + nil, + StatementsNode(31...34)( + [CallNode(31...34)( + nil, + nil, + (31...34), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil + ), + nil, + nil, + (36...39) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/resbody_list_mrhs.txt b/test/yarp/snapshots/whitequark/resbody_list_mrhs.txt new file mode 100644 index 0000000000..29e4ae792b --- /dev/null +++ b/test/yarp/snapshots/whitequark/resbody_list_mrhs.txt @@ -0,0 +1,45 @@ +ProgramNode(0...44)( + [], + StatementsNode(0...44)( + [BeginNode(0...44)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + RescueNode(13...39)( + (13...19), + [ConstantReadNode(20...29)(), + CallNode(31...34)( + nil, + nil, + (31...34), + nil, + nil, + nil, + nil, + 0, + "foo" + )], + nil, + nil, + StatementsNode(36...39)( + [CallNode(36...39)( + nil, + nil, + (36...39), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil + ), + nil, + nil, + (41...44) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/resbody_list_var.txt b/test/yarp/snapshots/whitequark/resbody_list_var.txt new file mode 100644 index 0000000000..aca812cd01 --- /dev/null +++ b/test/yarp/snapshots/whitequark/resbody_list_var.txt @@ -0,0 +1,44 @@ +ProgramNode(0...39)( + [:ex], + StatementsNode(0...39)( + [BeginNode(0...39)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + RescueNode(13...34)( + (13...19), + [CallNode(20...23)( + nil, + nil, + (20...23), + nil, + nil, + nil, + nil, + 0, + "foo" + )], + (24...26), + LocalVariableWriteNode(27...29)(:ex, 0, nil, (27...29), nil), + StatementsNode(31...34)( + [CallNode(31...34)( + nil, + nil, + (31...34), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil + ), + nil, + nil, + (36...39) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/resbody_var.txt b/test/yarp/snapshots/whitequark/resbody_var.txt new file mode 100644 index 0000000000..0acad7e908 --- /dev/null +++ b/test/yarp/snapshots/whitequark/resbody_var.txt @@ -0,0 +1,73 @@ +ProgramNode(0...73)( + [:ex], + StatementsNode(0...73)( + [BeginNode(0...36)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + RescueNode(13...31)( + (13...19), + [], + (20...22), + InstanceVariableWriteNode(23...26)((23...26), nil, nil), + StatementsNode(28...31)( + [CallNode(28...31)( + nil, + nil, + (28...31), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil + ), + nil, + nil, + (33...36) + ), + BeginNode(38...73)( + (38...43), + StatementsNode(45...49)( + [CallNode(45...49)( + nil, + nil, + (45...49), + nil, + nil, + nil, + nil, + 0, + "meth" + )] + ), + RescueNode(51...68)( + (51...57), + [], + (58...60), + LocalVariableWriteNode(61...63)(:ex, 0, nil, (61...63), nil), + StatementsNode(65...68)( + [CallNode(65...68)( + nil, + nil, + (65...68), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil + ), + nil, + nil, + (70...73) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue.txt b/test/yarp/snapshots/whitequark/rescue.txt new file mode 100644 index 0000000000..ae9063361a --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue.txt @@ -0,0 +1,34 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [BeginNode(0...29)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + RescueNode(13...24)( + (13...19), + [], + nil, + nil, + StatementsNode(21...24)( + [CallNode(21...24)( + nil, + nil, + (21...24), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil + ), + nil, + nil, + (26...29) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_else.txt b/test/yarp/snapshots/whitequark/rescue_else.txt new file mode 100644 index 0000000000..4c4e9ab987 --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_else.txt @@ -0,0 +1,50 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [BeginNode(0...40)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + RescueNode(13...24)( + (13...19), + [], + nil, + nil, + StatementsNode(21...24)( + [CallNode(21...24)( + nil, + nil, + (21...24), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil + ), + ElseNode(26...40)( + (26...30), + StatementsNode(32...35)( + [CallNode(32...35)( + nil, + nil, + (32...35), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (37...40) + ), + nil, + (37...40) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_else_ensure.txt b/test/yarp/snapshots/whitequark/rescue_else_ensure.txt new file mode 100644 index 0000000000..0d44b99b70 --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_else_ensure.txt @@ -0,0 +1,66 @@ +ProgramNode(0...51)( + [], + StatementsNode(0...51)( + [BeginNode(0...51)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + RescueNode(13...24)( + (13...19), + [], + nil, + nil, + StatementsNode(21...24)( + [CallNode(21...24)( + nil, + nil, + (21...24), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil + ), + ElseNode(26...42)( + (26...30), + StatementsNode(31...34)( + [CallNode(31...34)( + nil, + nil, + (31...34), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (36...42) + ), + EnsureNode(36...51)( + (36...42), + StatementsNode(44...47)( + [CallNode(44...47)( + nil, + nil, + (44...47), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (48...51) + ), + (48...51) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_ensure.txt b/test/yarp/snapshots/whitequark/rescue_ensure.txt new file mode 100644 index 0000000000..6f9b287c1c --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_ensure.txt @@ -0,0 +1,50 @@ +ProgramNode(0...42)( + [], + StatementsNode(0...42)( + [BeginNode(0...42)( + (0...5), + StatementsNode(7...11)( + [CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth")] + ), + RescueNode(13...24)( + (13...19), + [], + nil, + nil, + StatementsNode(21...24)( + [CallNode(21...24)( + nil, + nil, + (21...24), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + nil + ), + nil, + EnsureNode(26...42)( + (26...32), + StatementsNode(34...37)( + [CallNode(34...37)( + nil, + nil, + (34...37), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (39...42) + ), + (39...42) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_in_lambda_block.txt b/test/yarp/snapshots/whitequark/rescue_in_lambda_block.txt new file mode 100644 index 0000000000..475b72dbe8 --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_in_lambda_block.txt @@ -0,0 +1,18 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [LambdaNode(0...17)( + [], + (0...2), + nil, + BeginNode(6...17)( + nil, + nil, + RescueNode(6...12)((6...12), [], nil, nil, nil, nil), + nil, + nil, + (14...17) + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_mod.txt b/test/yarp/snapshots/whitequark/rescue_mod.txt new file mode 100644 index 0000000000..baae026bb8 --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_mod.txt @@ -0,0 +1,10 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [RescueModifierNode(0...15)( + CallNode(0...4)(nil, nil, (0...4), nil, nil, nil, nil, 0, "meth"), + (5...11), + CallNode(12...15)(nil, nil, (12...15), nil, nil, nil, nil, 0, "bar") + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_mod_asgn.txt b/test/yarp/snapshots/whitequark/rescue_mod_asgn.txt new file mode 100644 index 0000000000..39ddc02f3b --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_mod_asgn.txt @@ -0,0 +1,16 @@ +ProgramNode(0...21)( + [:foo], + StatementsNode(0...21)( + [LocalVariableWriteNode(0...21)( + :foo, + 0, + RescueModifierNode(6...21)( + CallNode(6...10)(nil, nil, (6...10), nil, nil, nil, nil, 0, "meth"), + (11...17), + CallNode(18...21)(nil, nil, (18...21), nil, nil, nil, nil, 0, "bar") + ), + (0...3), + (4...5) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_mod_masgn.txt b/test/yarp/snapshots/whitequark/rescue_mod_masgn.txt new file mode 100644 index 0000000000..f027de1f73 --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_mod_masgn.txt @@ -0,0 +1,21 @@ +ProgramNode(0...29)( + [:foo, :bar], + StatementsNode(0...29)( + [MultiWriteNode(0...29)( + [LocalVariableWriteNode(0...3)(:foo, 0, nil, (0...3), nil), + LocalVariableWriteNode(5...8)(:bar, 0, nil, (5...8), nil)], + (9...10), + RescueModifierNode(11...29)( + CallNode(11...15)(nil, nil, (11...15), nil, nil, nil, nil, 0, "meth"), + (16...22), + ArrayNode(23...29)( + [IntegerNode(24...25)(), IntegerNode(27...28)()], + (23...24), + (28...29) + ) + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_mod_op_assign.txt b/test/yarp/snapshots/whitequark/rescue_mod_op_assign.txt new file mode 100644 index 0000000000..9f846f792e --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_mod_op_assign.txt @@ -0,0 +1,16 @@ +ProgramNode(0...22)( + [:foo], + StatementsNode(0...22)( + [LocalVariableOperatorWriteNode(0...22)( + (0...3), + (4...6), + RescueModifierNode(7...22)( + CallNode(7...11)(nil, nil, (7...11), nil, nil, nil, nil, 0, "meth"), + (12...18), + CallNode(19...22)(nil, nil, (19...22), nil, nil, nil, nil, 0, "bar") + ), + :foo, + :+ + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/rescue_without_begin_end.txt b/test/yarp/snapshots/whitequark/rescue_without_begin_end.txt new file mode 100644 index 0000000000..bc290f265b --- /dev/null +++ b/test/yarp/snapshots/whitequark/rescue_without_begin_end.txt @@ -0,0 +1,60 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [CallNode(0...30)( + nil, + nil, + (0...4), + nil, + nil, + nil, + BlockNode(5...30)( + [], + nil, + BeginNode(9...30)( + nil, + StatementsNode(9...12)( + [CallNode(9...12)( + nil, + nil, + (9...12), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + RescueNode(14...25)( + (14...20), + [], + nil, + nil, + StatementsNode(22...25)( + [CallNode(22...25)( + nil, + nil, + (22...25), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil + ), + nil, + nil, + (27...30) + ), + (5...7), + (27...30) + ), + 0, + "meth" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/restarg_named.txt b/test/yarp/snapshots/whitequark/restarg_named.txt new file mode 100644 index 0000000000..ce26b2fc67 --- /dev/null +++ b/test/yarp/snapshots/whitequark/restarg_named.txt @@ -0,0 +1,26 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [DefNode(0...16)( + (4...5), + nil, + ParametersNode(6...10)( + [], + [], + [], + RestParameterNode(6...10)((6...7), (7...10)), + [], + nil, + nil + ), + nil, + [:foo], + (0...3), + nil, + (5...6), + (10...11), + nil, + (13...16) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/restarg_unnamed.txt b/test/yarp/snapshots/whitequark/restarg_unnamed.txt new file mode 100644 index 0000000000..b6778e293c --- /dev/null +++ b/test/yarp/snapshots/whitequark/restarg_unnamed.txt @@ -0,0 +1,26 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [DefNode(0...13)( + (4...5), + nil, + ParametersNode(6...7)( + [], + [], + [], + RestParameterNode(6...7)((6...7), nil), + [], + nil, + nil + ), + nil, + [:*], + (0...3), + nil, + (5...6), + (7...8), + nil, + (10...13) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/retry.txt b/test/yarp/snapshots/whitequark/retry.txt new file mode 100644 index 0000000000..8963228e67 --- /dev/null +++ b/test/yarp/snapshots/whitequark/retry.txt @@ -0,0 +1 @@ +ProgramNode(0...5)([], StatementsNode(0...5)([RetryNode(0...5)()])) diff --git a/test/yarp/snapshots/whitequark/return.txt b/test/yarp/snapshots/whitequark/return.txt new file mode 100644 index 0000000000..da8c8a6f0f --- /dev/null +++ b/test/yarp/snapshots/whitequark/return.txt @@ -0,0 +1,40 @@ +ProgramNode(0...41)( + [], + StatementsNode(0...41)( + [ReturnNode(0...6)((0...6), nil), + ReturnNode(8...18)( + (8...14), + ArgumentsNode(15...18)( + [CallNode(15...18)(nil, nil, (15...18), nil, nil, nil, nil, 0, "foo")] + ) + ), + ReturnNode(20...28)( + (20...26), + ArgumentsNode(26...28)( + [ParenthesesNode(26...28)(nil, (26...27), (27...28))] + ) + ), + ReturnNode(30...41)( + (30...36), + ArgumentsNode(36...41)( + [ParenthesesNode(36...41)( + StatementsNode(37...40)( + [CallNode(37...40)( + nil, + nil, + (37...40), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + (36...37), + (40...41) + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/return_block.txt b/test/yarp/snapshots/whitequark/return_block.txt new file mode 100644 index 0000000000..87b2028abe --- /dev/null +++ b/test/yarp/snapshots/whitequark/return_block.txt @@ -0,0 +1,33 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [ReturnNode(0...21)( + (0...6), + ArgumentsNode(7...21)( + [CallNode(7...21)( + nil, + nil, + (7...10), + nil, + ArgumentsNode(11...14)( + [CallNode(11...14)( + nil, + nil, + (11...14), + nil, + nil, + nil, + nil, + 0, + "foo" + )] + ), + nil, + BlockNode(15...21)([], nil, nil, (15...17), (18...21)), + 0, + "fun" + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_10279.txt b/test/yarp/snapshots/whitequark/ruby_bug_10279.txt new file mode 100644 index 0000000000..74c9d70fa3 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_10279.txt @@ -0,0 +1,20 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [HashNode(0...24)( + (0...1), + [AssocNode(1...23)( + SymbolNode(1...3)(nil, (1...2), (2...3), "a"), + IfNode(4...23)( + (4...6), + TrueNode(7...11)(), + StatementsNode(17...19)([IntegerNode(17...19)()]), + nil, + (20...23) + ), + nil + )], + (23...24) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_10653.txt b/test/yarp/snapshots/whitequark/ruby_bug_10653.txt new file mode 100644 index 0000000000..9223db088b --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_10653.txt @@ -0,0 +1,131 @@ +ProgramNode(0...93)( + [], + StatementsNode(0...93)( + [IfNode(0...33)( + nil, + FalseNode(0...5)(), + StatementsNode(8...20)( + [CallNode(8...20)( + nil, + nil, + (8...13), + nil, + nil, + nil, + BlockNode(14...20)([], nil, nil, (14...16), (17...20)), + 0, + "raise" + )] + ), + ElseNode(21...33)( + (21...22), + StatementsNode(23...33)( + [CallNode(23...33)( + nil, + nil, + (23...26), + nil, + nil, + nil, + BlockNode(27...33)([], nil, nil, (27...29), (30...33)), + 0, + "tap" + )] + ), + nil + ), + nil + ), + IfNode(35...60)( + nil, + FalseNode(35...40)(), + StatementsNode(43...51)( + [CallNode(43...51)( + nil, + nil, + (43...48), + nil, + nil, + nil, + BlockNode(49...51)([], nil, nil, (49...50), (50...51)), + 0, + "raise" + )] + ), + ElseNode(52...60)( + (52...53), + StatementsNode(54...60)( + [CallNode(54...60)( + nil, + nil, + (54...57), + nil, + nil, + nil, + BlockNode(58...60)([], nil, nil, (58...59), (59...60)), + 0, + "tap" + )] + ), + nil + ), + nil + ), + IfNode(62...93)( + nil, + TrueNode(62...66)(), + StatementsNode(69...89)( + [CallNode(69...89)( + IntegerNode(69...70)(), + (70...71), + (71...74), + nil, + nil, + nil, + BlockNode(75...89)( + [:n], + BlockParametersNode(78...81)( + ParametersNode(79...80)( + [RequiredParameterNode(79...80)(:n)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (78...79), + (80...81) + ), + StatementsNode(82...85)( + [CallNode(82...85)( + nil, + nil, + (82...83), + nil, + ArgumentsNode(84...85)( + [LocalVariableReadNode(84...85)(:n, 0)] + ), + nil, + nil, + 0, + "p" + )] + ), + (75...77), + (86...89) + ), + 0, + "tap" + )] + ), + ElseNode(90...93)( + (90...91), + StatementsNode(92...93)([IntegerNode(92...93)()]), + nil + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11107.txt b/test/yarp/snapshots/whitequark/ruby_bug_11107.txt new file mode 100644 index 0000000000..0f5b129c5c --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_11107.txt @@ -0,0 +1,35 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [CallNode(0...24)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...24)( + [LambdaNode(2...24)( + [], + (2...4), + BlockParametersNode(4...6)(nil, [], (4...5), (5...6)), + StatementsNode(10...20)( + [CallNode(10...20)( + nil, + nil, + (10...11), + (11...12), + nil, + (12...13), + BlockNode(14...20)([], nil, nil, (14...16), (17...20)), + 0, + "a" + )] + ) + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11380.txt b/test/yarp/snapshots/whitequark/ruby_bug_11380.txt new file mode 100644 index 0000000000..5962097a6a --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_11380.txt @@ -0,0 +1,32 @@ +ProgramNode(0...28)( + [], + StatementsNode(0...28)( + [CallNode(0...28)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...21)( + [LambdaNode(2...15)( + [], + (2...4), + nil, + StatementsNode(7...13)( + [SymbolNode(7...13)((7...8), (8...13), nil, "hello")] + ) + ), + KeywordHashNode(17...21)( + [AssocNode(17...21)( + SymbolNode(17...19)(nil, (17...18), (18...19), "a"), + IntegerNode(20...21)(), + nil + )] + )] + ), + nil, + BlockNode(22...28)([], nil, nil, (22...24), (25...28)), + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11873.txt b/test/yarp/snapshots/whitequark/ruby_bug_11873.txt new file mode 100644 index 0000000000..fa2e919f6e --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_11873.txt @@ -0,0 +1,665 @@ +ProgramNode(0...272)( + [], + StatementsNode(0...272)( + [CallNode(0...20)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...13)( + [CallNode(2...8)( + nil, + nil, + (2...3), + (3...4), + ArgumentsNode(4...7)( + [CallNode(4...7)( + nil, + nil, + (4...5), + nil, + ArgumentsNode(6...7)( + [CallNode(6...7)( + nil, + nil, + (6...7), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (7...8), + nil, + 0, + "b" + ), + StringNode(10...13)((10...11), (11...12), (12...13), "x")] + ), + nil, + BlockNode(14...20)([], nil, nil, (14...16), (17...20)), + 0, + "a" + ), + CallNode(22...42)( + nil, + nil, + (22...23), + nil, + ArgumentsNode(24...35)( + [CallNode(24...30)( + nil, + nil, + (24...25), + (25...26), + ArgumentsNode(26...29)( + [CallNode(26...29)( + nil, + nil, + (26...27), + nil, + ArgumentsNode(28...29)( + [CallNode(28...29)( + nil, + nil, + (28...29), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (29...30), + nil, + 0, + "b" + ), + RegularExpressionNode(32...35)( + (32...33), + (33...34), + (34...35), + "x", + 0 + )] + ), + nil, + BlockNode(36...42)([], nil, nil, (36...38), (39...42)), + 0, + "a" + ), + CallNode(44...65)( + nil, + nil, + (44...45), + nil, + ArgumentsNode(46...58)( + [CallNode(46...52)( + nil, + nil, + (46...47), + (47...48), + ArgumentsNode(48...51)( + [CallNode(48...51)( + nil, + nil, + (48...49), + nil, + ArgumentsNode(50...51)( + [CallNode(50...51)( + nil, + nil, + (50...51), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (51...52), + nil, + 0, + "b" + ), + RegularExpressionNode(54...58)( + (54...55), + (55...56), + (56...58), + "x", + 2 + )] + ), + nil, + BlockNode(59...65)([], nil, nil, (59...61), (62...65)), + 0, + "a" + ), + CallNode(67...88)( + nil, + nil, + (67...68), + nil, + ArgumentsNode(69...81)( + [CallNode(69...76)( + nil, + nil, + (69...70), + (70...71), + ArgumentsNode(71...75)( + [CallNode(71...75)( + nil, + nil, + (71...72), + (72...73), + ArgumentsNode(73...74)( + [CallNode(73...74)( + nil, + nil, + (73...74), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (74...75), + nil, + 0, + "c" + )] + ), + (75...76), + nil, + 0, + "b" + ), + StringNode(78...81)((78...79), (79...80), (80...81), "x")] + ), + nil, + BlockNode(82...88)([], nil, nil, (82...84), (85...88)), + 0, + "a" + ), + CallNode(90...111)( + nil, + nil, + (90...91), + nil, + ArgumentsNode(92...104)( + [CallNode(92...99)( + nil, + nil, + (92...93), + (93...94), + ArgumentsNode(94...98)( + [CallNode(94...98)( + nil, + nil, + (94...95), + (95...96), + ArgumentsNode(96...97)( + [CallNode(96...97)( + nil, + nil, + (96...97), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (97...98), + nil, + 0, + "c" + )] + ), + (98...99), + nil, + 0, + "b" + ), + RegularExpressionNode(101...104)( + (101...102), + (102...103), + (103...104), + "x", + 0 + )] + ), + nil, + BlockNode(105...111)([], nil, nil, (105...107), (108...111)), + 0, + "a" + ), + CallNode(113...135)( + nil, + nil, + (113...114), + nil, + ArgumentsNode(115...128)( + [CallNode(115...122)( + nil, + nil, + (115...116), + (116...117), + ArgumentsNode(117...121)( + [CallNode(117...121)( + nil, + nil, + (117...118), + (118...119), + ArgumentsNode(119...120)( + [CallNode(119...120)( + nil, + nil, + (119...120), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (120...121), + nil, + 0, + "c" + )] + ), + (121...122), + nil, + 0, + "b" + ), + RegularExpressionNode(124...128)( + (124...125), + (125...126), + (126...128), + "x", + 2 + )] + ), + nil, + BlockNode(129...135)([], nil, nil, (129...131), (132...135)), + 0, + "a" + ), + CallNode(137...157)( + nil, + nil, + (137...138), + nil, + ArgumentsNode(139...150)( + [CallNode(139...145)( + nil, + nil, + (139...140), + nil, + nil, + nil, + BlockNode(140...145)( + [], + nil, + StatementsNode(141...144)( + [CallNode(141...144)( + nil, + nil, + (141...142), + nil, + ArgumentsNode(143...144)( + [CallNode(143...144)( + nil, + nil, + (143...144), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (140...141), + (144...145) + ), + 0, + "b" + ), + StringNode(147...150)((147...148), (148...149), (149...150), "x")] + ), + nil, + BlockNode(151...157)([], nil, nil, (151...153), (154...157)), + 0, + "a" + ), + CallNode(159...179)( + nil, + nil, + (159...160), + nil, + ArgumentsNode(161...172)( + [CallNode(161...167)( + nil, + nil, + (161...162), + nil, + nil, + nil, + BlockNode(162...167)( + [], + nil, + StatementsNode(163...166)( + [CallNode(163...166)( + nil, + nil, + (163...164), + nil, + ArgumentsNode(165...166)( + [CallNode(165...166)( + nil, + nil, + (165...166), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (162...163), + (166...167) + ), + 0, + "b" + ), + RegularExpressionNode(169...172)( + (169...170), + (170...171), + (171...172), + "x", + 0 + )] + ), + nil, + BlockNode(173...179)([], nil, nil, (173...175), (176...179)), + 0, + "a" + ), + CallNode(181...202)( + nil, + nil, + (181...182), + nil, + ArgumentsNode(183...195)( + [CallNode(183...189)( + nil, + nil, + (183...184), + nil, + nil, + nil, + BlockNode(184...189)( + [], + nil, + StatementsNode(185...188)( + [CallNode(185...188)( + nil, + nil, + (185...186), + nil, + ArgumentsNode(187...188)( + [CallNode(187...188)( + nil, + nil, + (187...188), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (184...185), + (188...189) + ), + 0, + "b" + ), + RegularExpressionNode(191...195)( + (191...192), + (192...193), + (193...195), + "x", + 2 + )] + ), + nil, + BlockNode(196...202)([], nil, nil, (196...198), (199...202)), + 0, + "a" + ), + CallNode(204...225)( + nil, + nil, + (204...205), + nil, + ArgumentsNode(206...218)( + [CallNode(206...213)( + nil, + nil, + (206...207), + nil, + nil, + nil, + BlockNode(207...213)( + [], + nil, + StatementsNode(208...212)( + [CallNode(208...212)( + nil, + nil, + (208...209), + (209...210), + ArgumentsNode(210...211)( + [CallNode(210...211)( + nil, + nil, + (210...211), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (211...212), + nil, + 0, + "c" + )] + ), + (207...208), + (212...213) + ), + 0, + "b" + ), + StringNode(215...218)((215...216), (216...217), (217...218), "x")] + ), + nil, + BlockNode(219...225)([], nil, nil, (219...221), (222...225)), + 0, + "a" + ), + CallNode(227...248)( + nil, + nil, + (227...228), + nil, + ArgumentsNode(229...241)( + [CallNode(229...236)( + nil, + nil, + (229...230), + nil, + nil, + nil, + BlockNode(230...236)( + [], + nil, + StatementsNode(231...235)( + [CallNode(231...235)( + nil, + nil, + (231...232), + (232...233), + ArgumentsNode(233...234)( + [CallNode(233...234)( + nil, + nil, + (233...234), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (234...235), + nil, + 0, + "c" + )] + ), + (230...231), + (235...236) + ), + 0, + "b" + ), + RegularExpressionNode(238...241)( + (238...239), + (239...240), + (240...241), + "x", + 0 + )] + ), + nil, + BlockNode(242...248)([], nil, nil, (242...244), (245...248)), + 0, + "a" + ), + CallNode(250...272)( + nil, + nil, + (250...251), + nil, + ArgumentsNode(252...265)( + [CallNode(252...259)( + nil, + nil, + (252...253), + nil, + nil, + nil, + BlockNode(253...259)( + [], + nil, + StatementsNode(254...258)( + [CallNode(254...258)( + nil, + nil, + (254...255), + (255...256), + ArgumentsNode(256...257)( + [CallNode(256...257)( + nil, + nil, + (256...257), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (257...258), + nil, + 0, + "c" + )] + ), + (253...254), + (258...259) + ), + 0, + "b" + ), + RegularExpressionNode(261...265)( + (261...262), + (262...263), + (263...265), + "x", + 2 + )] + ), + nil, + BlockNode(266...272)([], nil, nil, (266...268), (269...272)), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11873_a.txt b/test/yarp/snapshots/whitequark/ruby_bug_11873_a.txt new file mode 100644 index 0000000000..4cb06f16cd --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_11873_a.txt @@ -0,0 +1,1025 @@ +ProgramNode(0...444)( + [], + StatementsNode(0...444)( + [CallNode(0...18)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...11)( + [CallNode(2...8)( + nil, + nil, + (2...3), + (3...4), + ArgumentsNode(4...7)( + [CallNode(4...7)( + nil, + nil, + (4...5), + nil, + ArgumentsNode(6...7)( + [CallNode(6...7)( + nil, + nil, + (6...7), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (7...8), + nil, + 0, + "b" + ), + IntegerNode(10...11)()] + ), + nil, + BlockNode(12...18)([], nil, nil, (12...14), (15...18)), + 0, + "a" + ), + CallNode(20...40)( + nil, + nil, + (20...21), + nil, + ArgumentsNode(22...33)( + [CallNode(22...28)( + nil, + nil, + (22...23), + (23...24), + ArgumentsNode(24...27)( + [CallNode(24...27)( + nil, + nil, + (24...25), + nil, + ArgumentsNode(26...27)( + [CallNode(26...27)( + nil, + nil, + (26...27), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (27...28), + nil, + 0, + "b" + ), + FloatNode(30...33)()] + ), + nil, + BlockNode(34...40)([], nil, nil, (34...36), (37...40)), + 0, + "a" + ), + CallNode(42...63)( + nil, + nil, + (42...43), + nil, + ArgumentsNode(44...56)( + [CallNode(44...50)( + nil, + nil, + (44...45), + (45...46), + ArgumentsNode(46...49)( + [CallNode(46...49)( + nil, + nil, + (46...47), + nil, + ArgumentsNode(48...49)( + [CallNode(48...49)( + nil, + nil, + (48...49), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (49...50), + nil, + 0, + "b" + ), + ImaginaryNode(52...56)(FloatNode(52...55)())] + ), + nil, + BlockNode(57...63)([], nil, nil, (57...59), (60...63)), + 0, + "a" + ), + CallNode(65...86)( + nil, + nil, + (65...66), + nil, + ArgumentsNode(67...79)( + [CallNode(67...73)( + nil, + nil, + (67...68), + (68...69), + ArgumentsNode(69...72)( + [CallNode(69...72)( + nil, + nil, + (69...70), + nil, + ArgumentsNode(71...72)( + [CallNode(71...72)( + nil, + nil, + (71...72), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (72...73), + nil, + 0, + "b" + ), + RationalNode(75...79)(FloatNode(75...78)())] + ), + nil, + BlockNode(80...86)([], nil, nil, (80...82), (83...86)), + 0, + "a" + ), + CallNode(88...107)( + nil, + nil, + (88...89), + nil, + ArgumentsNode(90...100)( + [CallNode(90...96)( + nil, + nil, + (90...91), + (91...92), + ArgumentsNode(92...95)( + [CallNode(92...95)( + nil, + nil, + (92...93), + nil, + ArgumentsNode(94...95)( + [CallNode(94...95)( + nil, + nil, + (94...95), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (95...96), + nil, + 0, + "b" + ), + SymbolNode(98...100)((98...99), (99...100), nil, "e")] + ), + nil, + BlockNode(101...107)([], nil, nil, (101...103), (104...107)), + 0, + "a" + ), + CallNode(109...128)( + nil, + nil, + (109...110), + nil, + ArgumentsNode(111...121)( + [CallNode(111...118)( + nil, + nil, + (111...112), + (112...113), + ArgumentsNode(113...117)( + [CallNode(113...117)( + nil, + nil, + (113...114), + (114...115), + ArgumentsNode(115...116)( + [CallNode(115...116)( + nil, + nil, + (115...116), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (116...117), + nil, + 0, + "c" + )] + ), + (117...118), + nil, + 0, + "b" + ), + IntegerNode(120...121)()] + ), + nil, + BlockNode(122...128)([], nil, nil, (122...124), (125...128)), + 0, + "a" + ), + CallNode(130...151)( + nil, + nil, + (130...131), + nil, + ArgumentsNode(132...144)( + [CallNode(132...139)( + nil, + nil, + (132...133), + (133...134), + ArgumentsNode(134...138)( + [CallNode(134...138)( + nil, + nil, + (134...135), + (135...136), + ArgumentsNode(136...137)( + [CallNode(136...137)( + nil, + nil, + (136...137), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (137...138), + nil, + 0, + "c" + )] + ), + (138...139), + nil, + 0, + "b" + ), + FloatNode(141...144)()] + ), + nil, + BlockNode(145...151)([], nil, nil, (145...147), (148...151)), + 0, + "a" + ), + CallNode(153...175)( + nil, + nil, + (153...154), + nil, + ArgumentsNode(155...168)( + [CallNode(155...162)( + nil, + nil, + (155...156), + (156...157), + ArgumentsNode(157...161)( + [CallNode(157...161)( + nil, + nil, + (157...158), + (158...159), + ArgumentsNode(159...160)( + [CallNode(159...160)( + nil, + nil, + (159...160), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (160...161), + nil, + 0, + "c" + )] + ), + (161...162), + nil, + 0, + "b" + ), + ImaginaryNode(164...168)(FloatNode(164...167)())] + ), + nil, + BlockNode(169...175)([], nil, nil, (169...171), (172...175)), + 0, + "a" + ), + CallNode(177...199)( + nil, + nil, + (177...178), + nil, + ArgumentsNode(179...192)( + [CallNode(179...186)( + nil, + nil, + (179...180), + (180...181), + ArgumentsNode(181...185)( + [CallNode(181...185)( + nil, + nil, + (181...182), + (182...183), + ArgumentsNode(183...184)( + [CallNode(183...184)( + nil, + nil, + (183...184), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (184...185), + nil, + 0, + "c" + )] + ), + (185...186), + nil, + 0, + "b" + ), + RationalNode(188...192)(FloatNode(188...191)())] + ), + nil, + BlockNode(193...199)([], nil, nil, (193...195), (196...199)), + 0, + "a" + ), + CallNode(201...221)( + nil, + nil, + (201...202), + nil, + ArgumentsNode(203...214)( + [CallNode(203...210)( + nil, + nil, + (203...204), + (204...205), + ArgumentsNode(205...209)( + [CallNode(205...209)( + nil, + nil, + (205...206), + (206...207), + ArgumentsNode(207...208)( + [CallNode(207...208)( + nil, + nil, + (207...208), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (208...209), + nil, + 0, + "c" + )] + ), + (209...210), + nil, + 0, + "b" + ), + SymbolNode(212...214)((212...213), (213...214), nil, "e")] + ), + nil, + BlockNode(215...221)([], nil, nil, (215...217), (218...221)), + 0, + "a" + ), + CallNode(223...241)( + nil, + nil, + (223...224), + nil, + ArgumentsNode(225...234)( + [CallNode(225...231)( + nil, + nil, + (225...226), + nil, + nil, + nil, + BlockNode(226...231)( + [], + nil, + StatementsNode(227...230)( + [CallNode(227...230)( + nil, + nil, + (227...228), + nil, + ArgumentsNode(229...230)( + [CallNode(229...230)( + nil, + nil, + (229...230), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (226...227), + (230...231) + ), + 0, + "b" + ), + IntegerNode(233...234)()] + ), + nil, + BlockNode(235...241)([], nil, nil, (235...237), (238...241)), + 0, + "a" + ), + CallNode(243...263)( + nil, + nil, + (243...244), + nil, + ArgumentsNode(245...256)( + [CallNode(245...251)( + nil, + nil, + (245...246), + nil, + nil, + nil, + BlockNode(246...251)( + [], + nil, + StatementsNode(247...250)( + [CallNode(247...250)( + nil, + nil, + (247...248), + nil, + ArgumentsNode(249...250)( + [CallNode(249...250)( + nil, + nil, + (249...250), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (246...247), + (250...251) + ), + 0, + "b" + ), + FloatNode(253...256)()] + ), + nil, + BlockNode(257...263)([], nil, nil, (257...259), (260...263)), + 0, + "a" + ), + CallNode(265...286)( + nil, + nil, + (265...266), + nil, + ArgumentsNode(267...279)( + [CallNode(267...273)( + nil, + nil, + (267...268), + nil, + nil, + nil, + BlockNode(268...273)( + [], + nil, + StatementsNode(269...272)( + [CallNode(269...272)( + nil, + nil, + (269...270), + nil, + ArgumentsNode(271...272)( + [CallNode(271...272)( + nil, + nil, + (271...272), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (268...269), + (272...273) + ), + 0, + "b" + ), + ImaginaryNode(275...279)(FloatNode(275...278)())] + ), + nil, + BlockNode(280...286)([], nil, nil, (280...282), (283...286)), + 0, + "a" + ), + CallNode(288...309)( + nil, + nil, + (288...289), + nil, + ArgumentsNode(290...302)( + [CallNode(290...296)( + nil, + nil, + (290...291), + nil, + nil, + nil, + BlockNode(291...296)( + [], + nil, + StatementsNode(292...295)( + [CallNode(292...295)( + nil, + nil, + (292...293), + nil, + ArgumentsNode(294...295)( + [CallNode(294...295)( + nil, + nil, + (294...295), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (291...292), + (295...296) + ), + 0, + "b" + ), + RationalNode(298...302)(FloatNode(298...301)())] + ), + nil, + BlockNode(303...309)([], nil, nil, (303...305), (306...309)), + 0, + "a" + ), + CallNode(311...330)( + nil, + nil, + (311...312), + nil, + ArgumentsNode(313...323)( + [CallNode(313...319)( + nil, + nil, + (313...314), + nil, + nil, + nil, + BlockNode(314...319)( + [], + nil, + StatementsNode(315...318)( + [CallNode(315...318)( + nil, + nil, + (315...316), + nil, + ArgumentsNode(317...318)( + [CallNode(317...318)( + nil, + nil, + (317...318), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + nil, + nil, + 0, + "c" + )] + ), + (314...315), + (318...319) + ), + 0, + "b" + ), + SymbolNode(321...323)((321...322), (322...323), nil, "e")] + ), + nil, + BlockNode(324...330)([], nil, nil, (324...326), (327...330)), + 0, + "a" + ), + CallNode(332...351)( + nil, + nil, + (332...333), + nil, + ArgumentsNode(334...344)( + [CallNode(334...341)( + nil, + nil, + (334...335), + nil, + nil, + nil, + BlockNode(335...341)( + [], + nil, + StatementsNode(336...340)( + [CallNode(336...340)( + nil, + nil, + (336...337), + (337...338), + ArgumentsNode(338...339)( + [CallNode(338...339)( + nil, + nil, + (338...339), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (339...340), + nil, + 0, + "c" + )] + ), + (335...336), + (340...341) + ), + 0, + "b" + ), + IntegerNode(343...344)()] + ), + nil, + BlockNode(345...351)([], nil, nil, (345...347), (348...351)), + 0, + "a" + ), + CallNode(353...374)( + nil, + nil, + (353...354), + nil, + ArgumentsNode(355...367)( + [CallNode(355...362)( + nil, + nil, + (355...356), + nil, + nil, + nil, + BlockNode(356...362)( + [], + nil, + StatementsNode(357...361)( + [CallNode(357...361)( + nil, + nil, + (357...358), + (358...359), + ArgumentsNode(359...360)( + [CallNode(359...360)( + nil, + nil, + (359...360), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (360...361), + nil, + 0, + "c" + )] + ), + (356...357), + (361...362) + ), + 0, + "b" + ), + FloatNode(364...367)()] + ), + nil, + BlockNode(368...374)([], nil, nil, (368...370), (371...374)), + 0, + "a" + ), + CallNode(376...398)( + nil, + nil, + (376...377), + nil, + ArgumentsNode(378...391)( + [CallNode(378...385)( + nil, + nil, + (378...379), + nil, + nil, + nil, + BlockNode(379...385)( + [], + nil, + StatementsNode(380...384)( + [CallNode(380...384)( + nil, + nil, + (380...381), + (381...382), + ArgumentsNode(382...383)( + [CallNode(382...383)( + nil, + nil, + (382...383), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (383...384), + nil, + 0, + "c" + )] + ), + (379...380), + (384...385) + ), + 0, + "b" + ), + ImaginaryNode(387...391)(FloatNode(387...390)())] + ), + nil, + BlockNode(392...398)([], nil, nil, (392...394), (395...398)), + 0, + "a" + ), + CallNode(400...422)( + nil, + nil, + (400...401), + nil, + ArgumentsNode(402...415)( + [CallNode(402...409)( + nil, + nil, + (402...403), + nil, + nil, + nil, + BlockNode(403...409)( + [], + nil, + StatementsNode(404...408)( + [CallNode(404...408)( + nil, + nil, + (404...405), + (405...406), + ArgumentsNode(406...407)( + [CallNode(406...407)( + nil, + nil, + (406...407), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (407...408), + nil, + 0, + "c" + )] + ), + (403...404), + (408...409) + ), + 0, + "b" + ), + RationalNode(411...415)(FloatNode(411...414)())] + ), + nil, + BlockNode(416...422)([], nil, nil, (416...418), (419...422)), + 0, + "a" + ), + CallNode(424...444)( + nil, + nil, + (424...425), + nil, + ArgumentsNode(426...437)( + [CallNode(426...433)( + nil, + nil, + (426...427), + nil, + nil, + nil, + BlockNode(427...433)( + [], + nil, + StatementsNode(428...432)( + [CallNode(428...432)( + nil, + nil, + (428...429), + (429...430), + ArgumentsNode(430...431)( + [CallNode(430...431)( + nil, + nil, + (430...431), + nil, + nil, + nil, + nil, + 0, + "d" + )] + ), + (431...432), + nil, + 0, + "c" + )] + ), + (427...428), + (432...433) + ), + 0, + "b" + ), + SymbolNode(435...437)((435...436), (436...437), nil, "e")] + ), + nil, + BlockNode(438...444)([], nil, nil, (438...440), (441...444)), + 0, + "a" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11873_b.txt b/test/yarp/snapshots/whitequark/ruby_bug_11873_b.txt new file mode 100644 index 0000000000..b84ec0e5b1 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_11873_b.txt @@ -0,0 +1,82 @@ +ProgramNode(0...25)( + [], + StatementsNode(0...25)( + [CallNode(0...25)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...18)( + [CallNode(2...13)( + nil, + nil, + (2...3), + nil, + nil, + nil, + BlockNode(3...13)( + [], + nil, + StatementsNode(4...12)( + [CallNode(4...8)( + nil, + nil, + (4...5), + (5...6), + ArgumentsNode(6...7)( + [CallNode(6...7)( + nil, + nil, + (6...7), + nil, + nil, + nil, + nil, + 0, + "p" + )] + ), + (7...8), + nil, + 0, + "p" + ), + CallNode(9...12)( + nil, + nil, + (9...10), + nil, + ArgumentsNode(11...12)( + [CallNode(11...12)( + nil, + nil, + (11...12), + nil, + nil, + nil, + nil, + 0, + "p" + )] + ), + nil, + nil, + 0, + "p" + )] + ), + (3...4), + (12...13) + ), + 0, + "p" + ), + CallNode(15...18)(nil, nil, (15...18), nil, nil, nil, nil, 0, "tap")] + ), + nil, + BlockNode(19...25)([], nil, nil, (19...21), (22...25)), + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11989.txt b/test/yarp/snapshots/whitequark/ruby_bug_11989.txt new file mode 100644 index 0000000000..fb5f7330c9 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_11989.txt @@ -0,0 +1,22 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [CallNode(0...21)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...21)( + [InterpolatedStringNode(2...21)( + (2...8), + [StringNode(9...19)(nil, (9...19), nil, "x\n" + " y\n")], + (19...21) + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11990.txt b/test/yarp/snapshots/whitequark/ruby_bug_11990.txt new file mode 100644 index 0000000000..1a1a68796e --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_11990.txt @@ -0,0 +1,25 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...12)( + [StringConcatNode(2...12)( + InterpolatedStringNode(2...19)( + (2...6), + [StringNode(13...17)(nil, (13...17), nil, "x\n")], + (17...19) + ), + StringNode(7...12)((7...8), (8...11), (11...12), " y") + )] + ), + nil, + nil, + 0, + "p" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_12073.txt b/test/yarp/snapshots/whitequark/ruby_bug_12073.txt new file mode 100644 index 0000000000..7614f1b120 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_12073.txt @@ -0,0 +1,71 @@ +ProgramNode(0...49)( + [:a], + StatementsNode(0...49)( + [LocalVariableWriteNode(0...5)( + :a, + 0, + IntegerNode(4...5)(), + (0...1), + (2...3) + ), + CallNode(7...13)( + nil, + nil, + (7...8), + nil, + ArgumentsNode(9...13)( + [KeywordHashNode(9...13)( + [AssocNode(9...13)( + SymbolNode(9...11)(nil, (9...10), (10...11), "b"), + IntegerNode(12...13)(), + nil + )] + )] + ), + nil, + nil, + 0, + "a" + ), + DefNode(15...49)( + (19...22), + nil, + ParametersNode(23...28)( + [RequiredParameterNode(23...28)(:raise)], + [], + [], + nil, + [], + nil, + nil + ), + StatementsNode(30...44)( + [CallNode(30...44)( + nil, + nil, + (30...35), + nil, + ArgumentsNode(36...44)( + [ConstantPathNode(36...40)( + ConstantReadNode(36...37)(), + ConstantReadNode(39...40)(), + (37...39) + ), + StringNode(42...44)((42...43), (43...43), (43...44), "")] + ), + nil, + nil, + 0, + "raise" + )] + ), + [:raise], + (15...18), + nil, + nil, + nil, + nil, + (46...49) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_12402.txt b/test/yarp/snapshots/whitequark/ruby_bug_12402.txt new file mode 100644 index 0000000000..f68c8dc46b --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_12402.txt @@ -0,0 +1,543 @@ +ProgramNode(0...437)( + [:foo], + StatementsNode(0...437)( + [LocalVariableOperatorWriteNode(0...27)( + (0...3), + (4...6), + CallNode(7...27)( + nil, + nil, + (7...12), + nil, + ArgumentsNode(13...27)( + [RescueModifierNode(13...27)( + CallNode(13...16)( + nil, + nil, + (13...16), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (17...23), + NilNode(24...27)() + )] + ), + nil, + nil, + 0, + "raise" + ), + :foo, + :+ + ), + LocalVariableOperatorWriteNode(29...57)( + (29...32), + (33...35), + RescueModifierNode(36...57)( + CallNode(36...46)( + nil, + nil, + (36...41), + (41...42), + ArgumentsNode(42...45)( + [CallNode(42...45)( + nil, + nil, + (42...45), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (45...46), + nil, + 0, + "raise" + ), + (47...53), + NilNode(54...57)() + ), + :foo, + :+ + ), + LocalVariableWriteNode(59...85)( + :foo, + 0, + CallNode(65...85)( + nil, + nil, + (65...70), + nil, + ArgumentsNode(71...85)( + [RescueModifierNode(71...85)( + CallNode(71...74)( + nil, + nil, + (71...74), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (75...81), + NilNode(82...85)() + )] + ), + nil, + nil, + 0, + "raise" + ), + (59...62), + (63...64) + ), + LocalVariableWriteNode(87...114)( + :foo, + 0, + RescueModifierNode(93...114)( + CallNode(93...103)( + nil, + nil, + (93...98), + (98...99), + ArgumentsNode(99...102)( + [CallNode(99...102)( + nil, + nil, + (99...102), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (102...103), + nil, + 0, + "raise" + ), + (104...110), + NilNode(111...114)() + ), + (87...90), + (91...92) + ), + CallOperatorWriteNode(116...145)( + CallNode(116...121)( + LocalVariableReadNode(116...119)(:foo, 0), + (119...120), + (120...121), + nil, + nil, + nil, + nil, + 0, + "C=" + ), + (122...124), + CallNode(125...145)( + nil, + nil, + (125...130), + nil, + ArgumentsNode(131...145)( + [RescueModifierNode(131...145)( + CallNode(131...134)( + nil, + nil, + (131...134), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (135...141), + NilNode(142...145)() + )] + ), + nil, + nil, + 0, + "raise" + ), + :+ + ), + CallOperatorWriteNode(147...177)( + CallNode(147...152)( + LocalVariableReadNode(147...150)(:foo, 0), + (150...151), + (151...152), + nil, + nil, + nil, + nil, + 0, + "C=" + ), + (153...155), + RescueModifierNode(156...177)( + CallNode(156...166)( + nil, + nil, + (156...161), + (161...162), + ArgumentsNode(162...165)( + [CallNode(162...165)( + nil, + nil, + (162...165), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (165...166), + nil, + 0, + "raise" + ), + (167...173), + NilNode(174...177)() + ), + :+ + ), + CallOperatorWriteNode(179...208)( + CallNode(179...184)( + LocalVariableReadNode(179...182)(:foo, 0), + (182...183), + (183...184), + nil, + nil, + nil, + nil, + 0, + "m=" + ), + (185...187), + CallNode(188...208)( + nil, + nil, + (188...193), + nil, + ArgumentsNode(194...208)( + [RescueModifierNode(194...208)( + CallNode(194...197)( + nil, + nil, + (194...197), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (198...204), + NilNode(205...208)() + )] + ), + nil, + nil, + 0, + "raise" + ), + :+ + ), + CallOperatorWriteNode(210...240)( + CallNode(210...215)( + LocalVariableReadNode(210...213)(:foo, 0), + (213...214), + (214...215), + nil, + nil, + nil, + nil, + 0, + "m=" + ), + (216...218), + RescueModifierNode(219...240)( + CallNode(219...229)( + nil, + nil, + (219...224), + (224...225), + ArgumentsNode(225...228)( + [CallNode(225...228)( + nil, + nil, + (225...228), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (228...229), + nil, + 0, + "raise" + ), + (230...236), + NilNode(237...240)() + ), + :+ + ), + ConstantPathOperatorOrWriteNode(242...273)( + ConstantPathNode(242...248)( + LocalVariableReadNode(242...245)(:foo, 0), + ConstantReadNode(247...248)(), + (245...247) + ), + (249...252), + CallNode(253...273)( + nil, + nil, + (253...258), + nil, + ArgumentsNode(259...273)( + [RescueModifierNode(259...273)( + CallNode(259...262)( + nil, + nil, + (259...262), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (263...269), + NilNode(270...273)() + )] + ), + nil, + nil, + 0, + "raise" + ) + ), + ConstantPathOperatorOrWriteNode(275...307)( + ConstantPathNode(275...281)( + LocalVariableReadNode(275...278)(:foo, 0), + ConstantReadNode(280...281)(), + (278...280) + ), + (282...285), + RescueModifierNode(286...307)( + CallNode(286...296)( + nil, + nil, + (286...291), + (291...292), + ArgumentsNode(292...295)( + [CallNode(292...295)( + nil, + nil, + (292...295), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (295...296), + nil, + 0, + "raise" + ), + (297...303), + NilNode(304...307)() + ) + ), + CallOperatorWriteNode(309...339)( + CallNode(309...315)( + LocalVariableReadNode(309...312)(:foo, 0), + (312...314), + (314...315), + nil, + nil, + nil, + nil, + 0, + "m=" + ), + (316...318), + CallNode(319...339)( + nil, + nil, + (319...324), + nil, + ArgumentsNode(325...339)( + [RescueModifierNode(325...339)( + CallNode(325...328)( + nil, + nil, + (325...328), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (329...335), + NilNode(336...339)() + )] + ), + nil, + nil, + 0, + "raise" + ), + :+ + ), + CallOperatorWriteNode(341...372)( + CallNode(341...347)( + LocalVariableReadNode(341...344)(:foo, 0), + (344...346), + (346...347), + nil, + nil, + nil, + nil, + 0, + "m=" + ), + (348...350), + RescueModifierNode(351...372)( + CallNode(351...361)( + nil, + nil, + (351...356), + (356...357), + ArgumentsNode(357...360)( + [CallNode(357...360)( + nil, + nil, + (357...360), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (360...361), + nil, + 0, + "raise" + ), + (362...368), + NilNode(369...372)() + ), + :+ + ), + CallOperatorWriteNode(374...404)( + CallNode(374...380)( + LocalVariableReadNode(374...377)(:foo, 0), + nil, + (377...380), + (377...378), + ArgumentsNode(378...379)([IntegerNode(378...379)()]), + (379...380), + nil, + 0, + "[]=" + ), + (381...383), + CallNode(384...404)( + nil, + nil, + (384...389), + nil, + ArgumentsNode(390...404)( + [RescueModifierNode(390...404)( + CallNode(390...393)( + nil, + nil, + (390...393), + nil, + nil, + nil, + nil, + 0, + "bar" + ), + (394...400), + NilNode(401...404)() + )] + ), + nil, + nil, + 0, + "raise" + ), + :+ + ), + CallOperatorWriteNode(406...437)( + CallNode(406...412)( + LocalVariableReadNode(406...409)(:foo, 0), + nil, + (409...412), + (409...410), + ArgumentsNode(410...411)([IntegerNode(410...411)()]), + (411...412), + nil, + 0, + "[]=" + ), + (413...415), + RescueModifierNode(416...437)( + CallNode(416...426)( + nil, + nil, + (416...421), + (421...422), + ArgumentsNode(422...425)( + [CallNode(422...425)( + nil, + nil, + (422...425), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (425...426), + nil, + 0, + "raise" + ), + (427...433), + NilNode(434...437)() + ), + :+ + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_12669.txt b/test/yarp/snapshots/whitequark/ruby_bug_12669.txt new file mode 100644 index 0000000000..fc6b673c50 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_12669.txt @@ -0,0 +1,105 @@ +ProgramNode(0...74)( + [:a, :b], + StatementsNode(0...74)( + [LocalVariableOperatorWriteNode(0...18)( + (0...1), + (2...4), + LocalVariableOperatorWriteNode(5...18)( + (5...6), + (7...9), + CallNode(10...18)( + nil, + nil, + (10...15), + nil, + ArgumentsNode(16...18)( + [SymbolNode(16...18)((16...17), (17...18), nil, "x")] + ), + nil, + nil, + 0, + "raise" + ), + :b, + :+ + ), + :a, + :+ + ), + LocalVariableOperatorWriteNode(20...37)( + (20...21), + (22...24), + LocalVariableWriteNode(25...37)( + :b, + 0, + CallNode(29...37)( + nil, + nil, + (29...34), + nil, + ArgumentsNode(35...37)( + [SymbolNode(35...37)((35...36), (36...37), nil, "x")] + ), + nil, + nil, + 0, + "raise" + ), + (25...26), + (27...28) + ), + :a, + :+ + ), + LocalVariableWriteNode(39...56)( + :a, + 0, + LocalVariableOperatorWriteNode(43...56)( + (43...44), + (45...47), + CallNode(48...56)( + nil, + nil, + (48...53), + nil, + ArgumentsNode(54...56)( + [SymbolNode(54...56)((54...55), (55...56), nil, "x")] + ), + nil, + nil, + 0, + "raise" + ), + :b, + :+ + ), + (39...40), + (41...42) + ), + LocalVariableWriteNode(58...74)( + :a, + 0, + LocalVariableWriteNode(62...74)( + :b, + 0, + CallNode(66...74)( + nil, + nil, + (66...71), + nil, + ArgumentsNode(72...74)( + [SymbolNode(72...74)((72...73), (73...74), nil, "x")] + ), + nil, + nil, + 0, + "raise" + ), + (62...63), + (64...65) + ), + (58...59), + (60...61) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_12686.txt b/test/yarp/snapshots/whitequark/ruby_bug_12686.txt new file mode 100644 index 0000000000..6e23f38355 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_12686.txt @@ -0,0 +1,38 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...16)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...16)( + [ParenthesesNode(2...16)( + StatementsNode(3...15)( + [RescueModifierNode(3...15)( + CallNode(3...4)( + nil, + nil, + (3...4), + nil, + nil, + nil, + nil, + 0, + "g" + ), + (5...11), + NilNode(12...15)() + )] + ), + (2...3), + (15...16) + )] + ), + nil, + nil, + 0, + "f" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_13547.txt b/test/yarp/snapshots/whitequark/ruby_bug_13547.txt new file mode 100644 index 0000000000..42592cfc6a --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_13547.txt @@ -0,0 +1,16 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + CallNode(0...4)(nil, nil, (0...4), nil, nil, nil, nil, 0, "meth"), + nil, + (4...6), + (4...5), + nil, + (5...6), + BlockNode(7...9)([], nil, nil, (7...8), (8...9)), + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_14690.txt b/test/yarp/snapshots/whitequark/ruby_bug_14690.txt new file mode 100644 index 0000000000..65a6cb5737 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_14690.txt @@ -0,0 +1,46 @@ +ProgramNode(0...23)( + [], + StatementsNode(0...23)( + [CallNode(0...23)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...6)([ParenthesesNode(4...6)(nil, (4...5), (5...6))]), + nil, + BlockNode(7...23)( + [], + nil, + StatementsNode(9...21)( + [CallNode(9...21)( + nil, + nil, + (9...10), + (10...11), + ArgumentsNode(11...12)( + [CallNode(11...12)( + nil, + nil, + (11...12), + nil, + nil, + nil, + nil, + 0, + "a" + )] + ), + (12...13), + BlockNode(14...21)([], nil, nil, (14...16), (18...21)), + 0, + "m" + )] + ), + (7...8), + (22...23) + ), + 0, + "let" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_15789.txt b/test/yarp/snapshots/whitequark/ruby_bug_15789.txt new file mode 100644 index 0000000000..705992927f --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_15789.txt @@ -0,0 +1,109 @@ +ProgramNode(0...41)( + [], + StatementsNode(0...41)( + [CallNode(0...20)( + nil, + nil, + (0...1), + nil, + ArgumentsNode(2...20)( + [LambdaNode(2...20)( + [:a], + (2...4), + BlockParametersNode(4...16)( + ParametersNode(5...15)( + [], + [OptionalParameterNode(5...15)( + :a, + (5...6), + (7...8), + LambdaNode(9...15)( + [], + (9...11), + nil, + StatementsNode(12...14)( + [CallNode(12...14)( + nil, + nil, + (12...14), + nil, + nil, + nil, + nil, + 0, + "_1" + )] + ) + ) + )], + [], + nil, + [], + nil, + nil + ), + [], + (4...5), + (15...16) + ), + StatementsNode(18...19)([LocalVariableReadNode(18...19)(:a, 0)]) + )] + ), + nil, + nil, + 0, + "m" + ), + CallNode(22...41)( + nil, + nil, + (22...23), + nil, + ArgumentsNode(24...41)( + [LambdaNode(24...41)( + [:a], + (24...26), + BlockParametersNode(26...37)( + ParametersNode(27...36)( + [], + [], + [], + nil, + [KeywordParameterNode(27...36)( + (27...29), + LambdaNode(30...36)( + [], + (30...32), + nil, + StatementsNode(33...35)( + [CallNode(33...35)( + nil, + nil, + (33...35), + nil, + nil, + nil, + nil, + 0, + "_1" + )] + ) + ) + )], + nil, + nil + ), + [], + (26...27), + (36...37) + ), + StatementsNode(39...40)([LocalVariableReadNode(39...40)(:a, 0)]) + )] + ), + nil, + nil, + 0, + "m" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ruby_bug_9669.txt b/test/yarp/snapshots/whitequark/ruby_bug_9669.txt new file mode 100644 index 0000000000..3cdaf91407 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ruby_bug_9669.txt @@ -0,0 +1,41 @@ +ProgramNode(0...33)( + [:o], + StatementsNode(0...33)( + [DefNode(0...19)( + (4...5), + nil, + ParametersNode(6...8)( + [], + [], + [], + nil, + [KeywordParameterNode(6...8)((6...8), nil)], + nil, + nil + ), + StatementsNode(9...15)([ReturnNode(9...15)((9...15), nil)]), + [:b], + (0...3), + nil, + nil, + nil, + nil, + (16...19) + ), + LocalVariableWriteNode(21...33)( + :o, + 0, + HashNode(25...33)( + (25...26), + [AssocNode(27...31)( + SymbolNode(27...29)(nil, (27...28), (28...29), "a"), + IntegerNode(30...31)(), + nil + )], + (32...33) + ), + (21...22), + (23...24) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/sclass.txt b/test/yarp/snapshots/whitequark/sclass.txt new file mode 100644 index 0000000000..1f032b1cf0 --- /dev/null +++ b/test/yarp/snapshots/whitequark/sclass.txt @@ -0,0 +1,13 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [SingletonClassNode(0...22)( + [], + (0...5), + (6...8), + CallNode(9...12)(nil, nil, (9...12), nil, nil, nil, nil, 0, "foo"), + StatementsNode(14...17)([NilNode(14...17)()]), + (19...22) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/self.txt b/test/yarp/snapshots/whitequark/self.txt new file mode 100644 index 0000000000..0002d6ee6d --- /dev/null +++ b/test/yarp/snapshots/whitequark/self.txt @@ -0,0 +1 @@ +ProgramNode(0...4)([], StatementsNode(0...4)([SelfNode(0...4)()])) diff --git a/test/yarp/snapshots/whitequark/send_attr_asgn.txt b/test/yarp/snapshots/whitequark/send_attr_asgn.txt new file mode 100644 index 0000000000..a220143a97 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_attr_asgn.txt @@ -0,0 +1,47 @@ +ProgramNode(0...44)( + [], + StatementsNode(0...44)( + [CallNode(0...9)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...5), + nil, + ArgumentsNode(8...9)([IntegerNode(8...9)()]), + nil, + nil, + 0, + "A=" + ), + CallNode(11...20)( + CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "foo"), + (14...15), + (15...16), + nil, + ArgumentsNode(19...20)([IntegerNode(19...20)()]), + nil, + nil, + 0, + "a=" + ), + ConstantPathWriteNode(22...32)( + ConstantPathNode(22...28)( + CallNode(22...25)(nil, nil, (22...25), nil, nil, nil, nil, 0, "foo"), + ConstantReadNode(27...28)(), + (25...27) + ), + (29...30), + IntegerNode(31...32)() + ), + CallNode(34...44)( + CallNode(34...37)(nil, nil, (34...37), nil, nil, nil, nil, 0, "foo"), + (37...39), + (39...40), + nil, + ArgumentsNode(43...44)([IntegerNode(43...44)()]), + nil, + nil, + 0, + "a=" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_attr_asgn_conditional.txt b/test/yarp/snapshots/whitequark/send_attr_asgn_conditional.txt new file mode 100644 index 0000000000..fabbcb5ca7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_attr_asgn_conditional.txt @@ -0,0 +1,16 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...8)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + ArgumentsNode(7...8)([IntegerNode(7...8)()]), + nil, + nil, + 1, + "b=" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_binary_op.txt b/test/yarp/snapshots/whitequark/send_binary_op.txt new file mode 100644 index 0000000000..c8f2682cf1 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_binary_op.txt @@ -0,0 +1,336 @@ +ProgramNode(0...200)( + [], + StatementsNode(0...200)( + [CallNode(0...8)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (4...6), + nil, + ArgumentsNode(7...8)([IntegerNode(7...8)()]), + nil, + nil, + 0, + "!=" + ), + CallNode(10...18)( + CallNode(10...13)(nil, nil, (10...13), nil, nil, nil, nil, 0, "foo"), + nil, + (14...16), + nil, + ArgumentsNode(17...18)([IntegerNode(17...18)()]), + nil, + nil, + 0, + "!~" + ), + CallNode(20...27)( + CallNode(20...23)(nil, nil, (20...23), nil, nil, nil, nil, 0, "foo"), + nil, + (24...25), + nil, + ArgumentsNode(26...27)([IntegerNode(26...27)()]), + nil, + nil, + 0, + "%" + ), + CallNode(29...36)( + CallNode(29...32)(nil, nil, (29...32), nil, nil, nil, nil, 0, "foo"), + nil, + (33...34), + nil, + ArgumentsNode(35...36)([IntegerNode(35...36)()]), + nil, + nil, + 0, + "&" + ), + CallNode(38...45)( + CallNode(38...41)(nil, nil, (38...41), nil, nil, nil, nil, 0, "foo"), + nil, + (42...43), + nil, + ArgumentsNode(44...45)([IntegerNode(44...45)()]), + nil, + nil, + 0, + "*" + ), + CallNode(47...55)( + CallNode(47...50)(nil, nil, (47...50), nil, nil, nil, nil, 0, "foo"), + nil, + (51...53), + nil, + ArgumentsNode(54...55)([IntegerNode(54...55)()]), + nil, + nil, + 0, + "**" + ), + CallNode(57...64)( + CallNode(57...60)(nil, nil, (57...60), nil, nil, nil, nil, 0, "foo"), + nil, + (61...62), + nil, + ArgumentsNode(63...64)([IntegerNode(63...64)()]), + nil, + nil, + 0, + "+" + ), + CallNode(66...73)( + CallNode(66...69)(nil, nil, (66...69), nil, nil, nil, nil, 0, "foo"), + nil, + (70...71), + nil, + ArgumentsNode(72...73)([IntegerNode(72...73)()]), + nil, + nil, + 0, + "-" + ), + CallNode(75...82)( + CallNode(75...78)(nil, nil, (75...78), nil, nil, nil, nil, 0, "foo"), + nil, + (79...80), + nil, + ArgumentsNode(81...82)([IntegerNode(81...82)()]), + nil, + nil, + 0, + "/" + ), + CallNode(84...91)( + CallNode(84...87)(nil, nil, (84...87), nil, nil, nil, nil, 0, "foo"), + nil, + (88...89), + nil, + ArgumentsNode(90...91)([IntegerNode(90...91)()]), + nil, + nil, + 0, + "<" + ), + CallNode(93...101)( + CallNode(93...96)(nil, nil, (93...96), nil, nil, nil, nil, 0, "foo"), + nil, + (97...99), + nil, + ArgumentsNode(100...101)([IntegerNode(100...101)()]), + nil, + nil, + 0, + "<<" + ), + CallNode(103...111)( + CallNode(103...106)( + nil, + nil, + (103...106), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (107...109), + nil, + ArgumentsNode(110...111)([IntegerNode(110...111)()]), + nil, + nil, + 0, + "<=" + ), + CallNode(113...122)( + CallNode(113...116)( + nil, + nil, + (113...116), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (117...120), + nil, + ArgumentsNode(121...122)([IntegerNode(121...122)()]), + nil, + nil, + 0, + "<=>" + ), + CallNode(124...132)( + CallNode(124...127)( + nil, + nil, + (124...127), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (128...130), + nil, + ArgumentsNode(131...132)([IntegerNode(131...132)()]), + nil, + nil, + 0, + "==" + ), + CallNode(134...143)( + CallNode(134...137)( + nil, + nil, + (134...137), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (138...141), + nil, + ArgumentsNode(142...143)([IntegerNode(142...143)()]), + nil, + nil, + 0, + "===" + ), + CallNode(145...153)( + CallNode(145...148)( + nil, + nil, + (145...148), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (149...151), + nil, + ArgumentsNode(152...153)([IntegerNode(152...153)()]), + nil, + nil, + 0, + "=~" + ), + CallNode(155...162)( + CallNode(155...158)( + nil, + nil, + (155...158), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (159...160), + nil, + ArgumentsNode(161...162)([IntegerNode(161...162)()]), + nil, + nil, + 0, + ">" + ), + CallNode(164...172)( + CallNode(164...167)( + nil, + nil, + (164...167), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (168...170), + nil, + ArgumentsNode(171...172)([IntegerNode(171...172)()]), + nil, + nil, + 0, + ">=" + ), + CallNode(174...182)( + CallNode(174...177)( + nil, + nil, + (174...177), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (178...180), + nil, + ArgumentsNode(181...182)([IntegerNode(181...182)()]), + nil, + nil, + 0, + ">>" + ), + CallNode(184...191)( + CallNode(184...187)( + nil, + nil, + (184...187), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (188...189), + nil, + ArgumentsNode(190...191)([IntegerNode(190...191)()]), + nil, + nil, + 0, + "^" + ), + CallNode(193...200)( + CallNode(193...196)( + nil, + nil, + (193...196), + nil, + nil, + nil, + nil, + 0, + "foo" + ), + nil, + (197...198), + nil, + ArgumentsNode(199...200)([IntegerNode(199...200)()]), + nil, + nil, + 0, + "|" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_block_chain_cmd.txt b/test/yarp/snapshots/whitequark/send_block_chain_cmd.txt new file mode 100644 index 0000000000..15e364b829 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_block_chain_cmd.txt @@ -0,0 +1,194 @@ +ProgramNode(0...173)( + [], + StatementsNode(0...173)( + [CallNode(0...21)( + CallNode(0...13)( + nil, + nil, + (0...4), + nil, + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + nil, + BlockNode(7...13)([], nil, nil, (7...9), (10...13)), + 0, + "meth" + ), + (13...14), + (14...17), + nil, + ArgumentsNode(18...21)( + [CallNode(18...21)(nil, nil, (18...21), nil, nil, nil, nil, 0, "bar")] + ), + nil, + nil, + 0, + "fun" + ), + CallNode(23...51)( + CallNode(23...36)( + nil, + nil, + (23...27), + nil, + ArgumentsNode(28...29)([IntegerNode(28...29)()]), + nil, + BlockNode(30...36)([], nil, nil, (30...32), (33...36)), + 0, + "meth" + ), + (36...37), + (37...40), + nil, + ArgumentsNode(41...44)( + [CallNode(41...44)(nil, nil, (41...44), nil, nil, nil, nil, 0, "bar")] + ), + nil, + BlockNode(45...51)([], nil, nil, (45...47), (48...51)), + 0, + "fun" + ), + CallNode(53...73)( + CallNode(53...66)( + nil, + nil, + (53...57), + nil, + ArgumentsNode(58...59)([IntegerNode(58...59)()]), + nil, + BlockNode(60...66)([], nil, nil, (60...62), (63...66)), + 0, + "meth" + ), + (66...67), + (67...70), + nil, + nil, + nil, + BlockNode(71...73)([], nil, nil, (71...72), (72...73)), + 0, + "fun" + ), + CallNode(75...97)( + CallNode(75...88)( + nil, + nil, + (75...79), + nil, + ArgumentsNode(80...81)([IntegerNode(80...81)()]), + nil, + BlockNode(82...88)([], nil, nil, (82...84), (85...88)), + 0, + "meth" + ), + (88...89), + (89...92), + (92...93), + ArgumentsNode(93...96)( + [CallNode(93...96)(nil, nil, (93...96), nil, nil, nil, nil, 0, "bar")] + ), + (96...97), + nil, + 0, + "fun" + ), + CallNode(99...124)( + CallNode(99...112)( + nil, + nil, + (99...103), + nil, + ArgumentsNode(104...105)([IntegerNode(104...105)()]), + nil, + BlockNode(106...112)([], nil, nil, (106...108), (109...112)), + 0, + "meth" + ), + (112...113), + (113...116), + (116...117), + ArgumentsNode(117...120)( + [CallNode(117...120)( + nil, + nil, + (117...120), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (120...121), + BlockNode(122...124)([], nil, nil, (122...123), (123...124)), + 0, + "fun" + ), + CallNode(126...148)( + CallNode(126...139)( + nil, + nil, + (126...130), + nil, + ArgumentsNode(131...132)([IntegerNode(131...132)()]), + nil, + BlockNode(133...139)([], nil, nil, (133...135), (136...139)), + 0, + "meth" + ), + (139...141), + (145...148), + nil, + ArgumentsNode(145...148)( + [CallNode(145...148)( + nil, + nil, + (145...148), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + 0, + "bar" + ), + CallNode(150...173)( + CallNode(150...163)( + nil, + nil, + (150...154), + nil, + ArgumentsNode(155...156)([IntegerNode(155...156)()]), + nil, + BlockNode(157...163)([], nil, nil, (157...159), (160...163)), + 0, + "meth" + ), + (163...165), + (172...173), + (168...169), + ArgumentsNode(169...172)( + [CallNode(169...172)( + nil, + nil, + (169...172), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (172...173), + nil, + 0, + ")" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_block_conditional.txt b/test/yarp/snapshots/whitequark/send_block_conditional.txt new file mode 100644 index 0000000000..a25fb4ac4e --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_block_conditional.txt @@ -0,0 +1,16 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...11)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...5), + (5...8), + nil, + nil, + nil, + BlockNode(9...11)([], nil, nil, (9...10), (10...11)), + 1, + "bar" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_call.txt b/test/yarp/snapshots/whitequark/send_call.txt new file mode 100644 index 0000000000..6c52bec0fe --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_call.txt @@ -0,0 +1,27 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...7)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (0...0), + (4...5), + ArgumentsNode(5...6)([IntegerNode(5...6)()]), + (6...7), + nil, + 0, + "call" + ), + CallNode(9...17)( + CallNode(9...12)(nil, nil, (9...12), nil, nil, nil, nil, 0, "foo"), + (12...14), + (0...0), + (14...15), + ArgumentsNode(15...16)([IntegerNode(15...16)()]), + (16...17), + nil, + 0, + "call" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_conditional.txt b/test/yarp/snapshots/whitequark/send_conditional.txt new file mode 100644 index 0000000000..1621715838 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_conditional.txt @@ -0,0 +1,16 @@ +ProgramNode(0...4)( + [], + StatementsNode(0...4)( + [CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 1, + "b" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_index.txt b/test/yarp/snapshots/whitequark/send_index.txt new file mode 100644 index 0000000000..f09270736f --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_index.txt @@ -0,0 +1,16 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...9), + (3...4), + ArgumentsNode(4...8)([IntegerNode(4...5)(), IntegerNode(7...8)()]), + (8...9), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_index_asgn.txt b/test/yarp/snapshots/whitequark/send_index_asgn.txt new file mode 100644 index 0000000000..d6cfd22a29 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_index_asgn.txt @@ -0,0 +1,18 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...9), + (3...4), + ArgumentsNode(4...13)( + [IntegerNode(4...5)(), IntegerNode(7...8)(), IntegerNode(12...13)()] + ), + (8...9), + nil, + 0, + "[]=" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_index_asgn_legacy.txt b/test/yarp/snapshots/whitequark/send_index_asgn_legacy.txt new file mode 100644 index 0000000000..d6cfd22a29 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_index_asgn_legacy.txt @@ -0,0 +1,18 @@ +ProgramNode(0...13)( + [], + StatementsNode(0...13)( + [CallNode(0...13)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...9), + (3...4), + ArgumentsNode(4...13)( + [IntegerNode(4...5)(), IntegerNode(7...8)(), IntegerNode(12...13)()] + ), + (8...9), + nil, + 0, + "[]=" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_index_cmd.txt b/test/yarp/snapshots/whitequark/send_index_cmd.txt new file mode 100644 index 0000000000..cf98204073 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_index_cmd.txt @@ -0,0 +1,40 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallNode(0...10)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...10), + (3...4), + ArgumentsNode(4...9)( + [CallNode(4...9)( + nil, + nil, + (4...5), + nil, + ArgumentsNode(6...9)( + [CallNode(6...9)( + nil, + nil, + (6...9), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + 0, + "m" + )] + ), + (9...10), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_index_legacy.txt b/test/yarp/snapshots/whitequark/send_index_legacy.txt new file mode 100644 index 0000000000..f09270736f --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_index_legacy.txt @@ -0,0 +1,16 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + nil, + (3...9), + (3...4), + ArgumentsNode(4...8)([IntegerNode(4...5)(), IntegerNode(7...8)()]), + (8...9), + nil, + 0, + "[]" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_lambda.txt b/test/yarp/snapshots/whitequark/send_lambda.txt new file mode 100644 index 0000000000..3c9f4f56cb --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_lambda.txt @@ -0,0 +1,26 @@ +ProgramNode(0...26)( + [], + StatementsNode(0...26)( + [LambdaNode(0...8)( + [:*], + (0...2), + BlockParametersNode(3...4)( + ParametersNode(3...4)( + [], + [], + [], + RestParameterNode(3...4)((3...4), nil), + [], + nil, + nil + ), + [], + nil, + nil + ), + nil + ), + LambdaNode(10...19)([], (10...12), nil, nil), + LambdaNode(21...26)([], (21...23), nil, nil)] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_lambda_args.txt b/test/yarp/snapshots/whitequark/send_lambda_args.txt new file mode 100644 index 0000000000..f904384781 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_lambda_args.txt @@ -0,0 +1,43 @@ +ProgramNode(0...21)( + [], + StatementsNode(0...21)( + [LambdaNode(0...10)( + [:a], + (0...2), + BlockParametersNode(3...6)( + ParametersNode(4...5)( + [RequiredParameterNode(4...5)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (3...4), + (5...6) + ), + nil + ), + LambdaNode(12...21)( + [:a], + (12...14), + BlockParametersNode(14...17)( + ParametersNode(15...16)( + [RequiredParameterNode(15...16)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [], + (14...15), + (16...17) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_lambda_args_noparen.txt b/test/yarp/snapshots/whitequark/send_lambda_args_noparen.txt new file mode 100644 index 0000000000..8767cf48fa --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_lambda_args_noparen.txt @@ -0,0 +1,43 @@ +ProgramNode(0...22)( + [], + StatementsNode(0...22)( + [LambdaNode(0...11)( + [:a], + (0...2), + BlockParametersNode(3...7)( + ParametersNode(3...7)( + [], + [], + [], + nil, + [KeywordParameterNode(3...7)((3...5), IntegerNode(6...7)())], + nil, + nil + ), + [], + nil, + nil + ), + nil + ), + LambdaNode(13...22)( + [:a], + (13...15), + BlockParametersNode(16...18)( + ParametersNode(16...18)( + [], + [], + [], + nil, + [KeywordParameterNode(16...18)((16...18), nil)], + nil, + nil + ), + [], + nil, + nil + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_lambda_args_shadow.txt b/test/yarp/snapshots/whitequark/send_lambda_args_shadow.txt new file mode 100644 index 0000000000..a2e92a67dc --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_lambda_args_shadow.txt @@ -0,0 +1,24 @@ +ProgramNode(0...19)( + [], + StatementsNode(0...19)( + [LambdaNode(0...19)( + [:a, :foo, :bar], + (0...2), + BlockParametersNode(2...15)( + ParametersNode(3...4)( + [RequiredParameterNode(3...4)(:a)], + [], + [], + nil, + [], + nil, + nil + ), + [(6...9), (11...14)], + (2...3), + (14...15) + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_lambda_legacy.txt b/test/yarp/snapshots/whitequark/send_lambda_legacy.txt new file mode 100644 index 0000000000..fdc30c30dc --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_lambda_legacy.txt @@ -0,0 +1,4 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)([LambdaNode(0...5)([], (0...2), nil, nil)]) +) diff --git a/test/yarp/snapshots/whitequark/send_op_asgn_conditional.txt b/test/yarp/snapshots/whitequark/send_op_asgn_conditional.txt new file mode 100644 index 0000000000..db30a2a0ee --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_op_asgn_conditional.txt @@ -0,0 +1,20 @@ +ProgramNode(0...10)( + [], + StatementsNode(0...10)( + [CallOperatorAndWriteNode(0...10)( + CallNode(0...4)( + CallNode(0...1)(nil, nil, (0...1), nil, nil, nil, nil, 0, "a"), + (1...3), + (3...4), + nil, + nil, + nil, + nil, + 1, + "b=" + ), + (5...8), + IntegerNode(9...10)() + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_plain.txt b/test/yarp/snapshots/whitequark/send_plain.txt new file mode 100644 index 0000000000..892e30696c --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_plain.txt @@ -0,0 +1,38 @@ +ProgramNode(0...29)( + [], + StatementsNode(0...29)( + [CallNode(0...7)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...7), + nil, + nil, + nil, + nil, + 0, + "fun" + ), + CallNode(9...19)( + CallNode(9...12)(nil, nil, (9...12), nil, nil, nil, nil, 0, "foo"), + (12...14), + (14...17), + (17...18), + nil, + (18...19), + nil, + 0, + "Fun" + ), + CallNode(21...29)( + CallNode(21...24)(nil, nil, (21...24), nil, nil, nil, nil, 0, "foo"), + (24...26), + (26...29), + nil, + nil, + nil, + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_plain_cmd.txt b/test/yarp/snapshots/whitequark/send_plain_cmd.txt new file mode 100644 index 0000000000..0b13828cb4 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_plain_cmd.txt @@ -0,0 +1,44 @@ +ProgramNode(0...39)( + [], + StatementsNode(0...39)( + [CallNode(0...11)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...7), + nil, + ArgumentsNode(8...11)( + [CallNode(8...11)(nil, nil, (8...11), nil, nil, nil, nil, 0, "bar")] + ), + nil, + nil, + 0, + "fun" + ), + CallNode(13...25)( + CallNode(13...16)(nil, nil, (13...16), nil, nil, nil, nil, 0, "foo"), + (16...18), + (18...21), + nil, + ArgumentsNode(22...25)( + [CallNode(22...25)(nil, nil, (22...25), nil, nil, nil, nil, 0, "bar")] + ), + nil, + nil, + 0, + "Fun" + ), + CallNode(27...39)( + CallNode(27...30)(nil, nil, (27...30), nil, nil, nil, nil, 0, "foo"), + (30...32), + (36...39), + nil, + ArgumentsNode(36...39)( + [CallNode(36...39)(nil, nil, (36...39), nil, nil, nil, nil, 0, "bar")] + ), + nil, + nil, + 0, + "bar" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_self.txt b/test/yarp/snapshots/whitequark/send_self.txt new file mode 100644 index 0000000000..e12291d277 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_self.txt @@ -0,0 +1,18 @@ +ProgramNode(0...17)( + [], + StatementsNode(0...17)( + [CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "fun"), + CallNode(5...9)(nil, nil, (5...9), nil, nil, nil, nil, 0, "fun!"), + CallNode(11...17)( + nil, + nil, + (11...14), + (14...15), + ArgumentsNode(15...16)([IntegerNode(15...16)()]), + (16...17), + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_self_block.txt b/test/yarp/snapshots/whitequark/send_self_block.txt new file mode 100644 index 0000000000..1ae9968e74 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_self_block.txt @@ -0,0 +1,49 @@ +ProgramNode(0...42)( + [], + StatementsNode(0...42)( + [CallNode(0...10)( + nil, + nil, + (0...3), + nil, + nil, + nil, + BlockNode(4...10)([], nil, nil, (4...6), (7...10)), + 0, + "fun" + ), + CallNode(12...19)( + nil, + nil, + (12...15), + nil, + nil, + nil, + BlockNode(16...19)([], nil, nil, (16...17), (18...19)), + 0, + "fun" + ), + CallNode(21...30)( + nil, + nil, + (21...24), + (24...25), + nil, + (25...26), + BlockNode(27...30)([], nil, nil, (27...28), (29...30)), + 0, + "fun" + ), + CallNode(32...42)( + nil, + nil, + (32...35), + (35...36), + ArgumentsNode(36...37)([IntegerNode(36...37)()]), + (37...38), + BlockNode(39...42)([], nil, nil, (39...40), (41...42)), + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/send_unary_op.txt b/test/yarp/snapshots/whitequark/send_unary_op.txt new file mode 100644 index 0000000000..6e1a3315b9 --- /dev/null +++ b/test/yarp/snapshots/whitequark/send_unary_op.txt @@ -0,0 +1,38 @@ +ProgramNode(0...16)( + [], + StatementsNode(0...16)( + [CallNode(0...4)( + CallNode(1...4)(nil, nil, (1...4), nil, nil, nil, nil, 0, "foo"), + nil, + (0...1), + nil, + nil, + nil, + nil, + 0, + "+@" + ), + CallNode(6...10)( + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "foo"), + nil, + (6...7), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + CallNode(12...16)( + CallNode(13...16)(nil, nil, (13...16), nil, nil, nil, nil, 0, "foo"), + nil, + (12...13), + nil, + nil, + nil, + nil, + 0, + "~" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/slash_newline_in_heredocs.txt b/test/yarp/snapshots/whitequark/slash_newline_in_heredocs.txt new file mode 100644 index 0000000000..facffc7a2a --- /dev/null +++ b/test/yarp/snapshots/whitequark/slash_newline_in_heredocs.txt @@ -0,0 +1,20 @@ +ProgramNode(0...56)( + [], + StatementsNode(0...56)( + [InterpolatedStringNode(0...27)( + (0...4), + [StringNode(5...25)( + nil, + (5...25), + nil, + " 1 \n" + " 2\n" + " 3\n" + )], + (25...27) + ), + InterpolatedStringNode(29...56)( + (29...33), + [StringNode(34...54)(nil, (34...54), nil, "1 \n" + "2\n" + "3\n")], + (54...56) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/space_args_arg.txt b/test/yarp/snapshots/whitequark/space_args_arg.txt new file mode 100644 index 0000000000..d1dfcc4f65 --- /dev/null +++ b/test/yarp/snapshots/whitequark/space_args_arg.txt @@ -0,0 +1,22 @@ +ProgramNode(0...7)( + [], + StatementsNode(0...7)( + [CallNode(0...7)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...7)( + [ParenthesesNode(4...7)( + StatementsNode(5...6)([IntegerNode(5...6)()]), + (4...5), + (6...7) + )] + ), + nil, + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/space_args_arg_block.txt b/test/yarp/snapshots/whitequark/space_args_arg_block.txt new file mode 100644 index 0000000000..4ac9d1d7e4 --- /dev/null +++ b/test/yarp/snapshots/whitequark/space_args_arg_block.txt @@ -0,0 +1,56 @@ +ProgramNode(0...43)( + [], + StatementsNode(0...43)( + [CallNode(0...14)( + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + (3...4), + (4...7), + nil, + ArgumentsNode(8...11)( + [ParenthesesNode(8...11)( + StatementsNode(9...10)([IntegerNode(9...10)()]), + (8...9), + (10...11) + )] + ), + nil, + BlockNode(12...14)([], nil, nil, (12...13), (13...14)), + 0, + "fun" + ), + CallNode(16...31)( + CallNode(16...19)(nil, nil, (16...19), nil, nil, nil, nil, 0, "foo"), + (19...21), + (30...31), + nil, + ArgumentsNode(25...28)( + [ParenthesesNode(25...28)( + StatementsNode(26...27)([IntegerNode(26...27)()]), + (25...26), + (27...28) + )] + ), + nil, + BlockNode(29...31)([], nil, nil, (29...30), (30...31)), + 0, + "}" + ), + CallNode(33...43)( + nil, + nil, + (33...36), + nil, + ArgumentsNode(37...40)( + [ParenthesesNode(37...40)( + StatementsNode(38...39)([IntegerNode(38...39)()]), + (37...38), + (39...40) + )] + ), + nil, + BlockNode(41...43)([], nil, nil, (41...42), (42...43)), + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/space_args_arg_call.txt b/test/yarp/snapshots/whitequark/space_args_arg_call.txt new file mode 100644 index 0000000000..01bc1dbde3 --- /dev/null +++ b/test/yarp/snapshots/whitequark/space_args_arg_call.txt @@ -0,0 +1,32 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [CallNode(0...12)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...12)( + [CallNode(4...12)( + ParenthesesNode(4...7)( + StatementsNode(5...6)([IntegerNode(5...6)()]), + (4...5), + (6...7) + ), + (7...8), + (8...12), + nil, + nil, + nil, + nil, + 0, + "to_i" + )] + ), + nil, + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/space_args_arg_newline.txt b/test/yarp/snapshots/whitequark/space_args_arg_newline.txt new file mode 100644 index 0000000000..36e321ad7c --- /dev/null +++ b/test/yarp/snapshots/whitequark/space_args_arg_newline.txt @@ -0,0 +1,22 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [CallNode(0...8)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...8)( + [ParenthesesNode(4...8)( + StatementsNode(5...6)([IntegerNode(5...6)()]), + (4...5), + (7...8) + )] + ), + nil, + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/space_args_block.txt b/test/yarp/snapshots/whitequark/space_args_block.txt new file mode 100644 index 0000000000..7895ad2606 --- /dev/null +++ b/test/yarp/snapshots/whitequark/space_args_block.txt @@ -0,0 +1,16 @@ +ProgramNode(0...9)( + [], + StatementsNode(0...9)( + [CallNode(0...9)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...6)([ParenthesesNode(4...6)(nil, (4...5), (5...6))]), + nil, + BlockNode(7...9)([], nil, nil, (7...8), (8...9)), + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/space_args_cmd.txt b/test/yarp/snapshots/whitequark/space_args_cmd.txt new file mode 100644 index 0000000000..289ef54f8c --- /dev/null +++ b/test/yarp/snapshots/whitequark/space_args_cmd.txt @@ -0,0 +1,46 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [CallNode(0...11)( + nil, + nil, + (0...3), + nil, + ArgumentsNode(4...11)( + [ParenthesesNode(4...11)( + StatementsNode(5...10)( + [CallNode(5...10)( + nil, + nil, + (5...6), + nil, + ArgumentsNode(7...10)( + [CallNode(7...10)( + nil, + nil, + (7...10), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + nil, + nil, + 0, + "f" + )] + ), + (4...5), + (10...11) + )] + ), + nil, + nil, + 0, + "fun" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/string___FILE__.txt b/test/yarp/snapshots/whitequark/string___FILE__.txt new file mode 100644 index 0000000000..31d5437b21 --- /dev/null +++ b/test/yarp/snapshots/whitequark/string___FILE__.txt @@ -0,0 +1,6 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [SourceFileNode(0...8)("/fixtures/whitequark/string___FILE__.txt")] + ) +) diff --git a/test/yarp/snapshots/whitequark/string_concat.txt b/test/yarp/snapshots/whitequark/string_concat.txt new file mode 100644 index 0000000000..c20f4ac35e --- /dev/null +++ b/test/yarp/snapshots/whitequark/string_concat.txt @@ -0,0 +1,17 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [StringConcatNode(0...14)( + InterpolatedStringNode(0...8)( + (0...1), + [StringNode(1...4)(nil, (1...4), nil, "foo"), + EmbeddedVariableNode(4...7)( + (4...5), + InstanceVariableReadNode(5...7)() + )], + (7...8) + ), + StringNode(9...14)((9...10), (10...13), (13...14), "bar") + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/string_dvar.txt b/test/yarp/snapshots/whitequark/string_dvar.txt new file mode 100644 index 0000000000..c89e359565 --- /dev/null +++ b/test/yarp/snapshots/whitequark/string_dvar.txt @@ -0,0 +1,20 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [InterpolatedStringNode(0...14)( + (0...1), + [EmbeddedVariableNode(1...4)( + (1...2), + InstanceVariableReadNode(2...4)() + ), + StringNode(4...5)(nil, (4...5), nil, " "), + EmbeddedVariableNode(5...9)((5...6), ClassVariableReadNode(6...9)()), + StringNode(9...10)(nil, (9...10), nil, " "), + EmbeddedVariableNode(10...13)( + (10...11), + GlobalVariableReadNode(11...13)() + )], + (13...14) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/string_interp.txt b/test/yarp/snapshots/whitequark/string_interp.txt new file mode 100644 index 0000000000..20a4555ae2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/string_interp.txt @@ -0,0 +1,18 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [InterpolatedStringNode(0...14)( + (0...1), + [StringNode(1...4)(nil, (1...4), nil, "foo"), + EmbeddedStatementsNode(4...10)( + (4...6), + StatementsNode(6...9)( + [CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "bar")] + ), + (9...10) + ), + StringNode(10...13)(nil, (10...13), nil, "baz")], + (13...14) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/string_plain.txt b/test/yarp/snapshots/whitequark/string_plain.txt new file mode 100644 index 0000000000..fe0822a568 --- /dev/null +++ b/test/yarp/snapshots/whitequark/string_plain.txt @@ -0,0 +1,7 @@ +ProgramNode(0...20)( + [], + StatementsNode(0...20)( + [StringNode(0...10)((0...3), (3...9), (9...10), "foobar"), + StringNode(12...20)((12...13), (13...19), (19...20), "foobar")] + ) +) diff --git a/test/yarp/snapshots/whitequark/super.txt b/test/yarp/snapshots/whitequark/super.txt new file mode 100644 index 0000000000..0724119add --- /dev/null +++ b/test/yarp/snapshots/whitequark/super.txt @@ -0,0 +1,24 @@ +ProgramNode(0...30)( + [], + StatementsNode(0...30)( + [SuperNode(0...9)( + (0...5), + nil, + ArgumentsNode(6...9)( + [CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "foo")] + ), + nil, + nil + ), + SuperNode(11...18)((11...16), (16...17), nil, (17...18), nil), + SuperNode(20...30)( + (20...25), + (25...26), + ArgumentsNode(26...29)( + [CallNode(26...29)(nil, nil, (26...29), nil, nil, nil, nil, 0, "foo")] + ), + (29...30), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/super_block.txt b/test/yarp/snapshots/whitequark/super_block.txt new file mode 100644 index 0000000000..e2af525f24 --- /dev/null +++ b/test/yarp/snapshots/whitequark/super_block.txt @@ -0,0 +1,18 @@ +ProgramNode(0...35)( + [], + StatementsNode(0...35)( + [ForwardingSuperNode(0...12)( + BlockNode(6...12)([], nil, nil, (6...8), (9...12)) + ), + SuperNode(14...35)( + (14...19), + nil, + ArgumentsNode(20...28)( + [CallNode(20...23)(nil, nil, (20...23), nil, nil, nil, nil, 0, "foo"), + CallNode(25...28)(nil, nil, (25...28), nil, nil, nil, nil, 0, "bar")] + ), + nil, + BlockNode(29...35)([], nil, nil, (29...31), (32...35)) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/symbol_interp.txt b/test/yarp/snapshots/whitequark/symbol_interp.txt new file mode 100644 index 0000000000..cc6da96739 --- /dev/null +++ b/test/yarp/snapshots/whitequark/symbol_interp.txt @@ -0,0 +1,28 @@ +ProgramNode(0...15)( + [], + StatementsNode(0...15)( + [InterpolatedSymbolNode(0...15)( + (0...2), + [StringNode(2...5)(nil, (2...5), nil, "foo"), + EmbeddedStatementsNode(5...11)( + (5...7), + StatementsNode(7...10)( + [CallNode(7...10)( + nil, + nil, + (7...10), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (10...11) + ), + StringNode(11...14)(nil, (11...14), nil, "baz")], + (14...15) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/symbol_plain.txt b/test/yarp/snapshots/whitequark/symbol_plain.txt new file mode 100644 index 0000000000..7cbac4e19d --- /dev/null +++ b/test/yarp/snapshots/whitequark/symbol_plain.txt @@ -0,0 +1,7 @@ +ProgramNode(0...12)( + [], + StatementsNode(0...12)( + [SymbolNode(0...6)((0...2), (2...5), (5...6), "foo"), + SymbolNode(8...12)((8...9), (9...12), nil, "foo")] + ) +) diff --git a/test/yarp/snapshots/whitequark/ternary.txt b/test/yarp/snapshots/whitequark/ternary.txt new file mode 100644 index 0000000000..58bccdd8be --- /dev/null +++ b/test/yarp/snapshots/whitequark/ternary.txt @@ -0,0 +1,16 @@ +ProgramNode(0...11)( + [], + StatementsNode(0...11)( + [IfNode(0...11)( + nil, + CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "foo"), + StatementsNode(6...7)([IntegerNode(6...7)()]), + ElseNode(8...11)( + (8...9), + StatementsNode(10...11)([IntegerNode(10...11)()]), + nil + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/ternary_ambiguous_symbol.txt b/test/yarp/snapshots/whitequark/ternary_ambiguous_symbol.txt new file mode 100644 index 0000000000..012b77a3d2 --- /dev/null +++ b/test/yarp/snapshots/whitequark/ternary_ambiguous_symbol.txt @@ -0,0 +1,29 @@ +ProgramNode(0...13)( + [:t], + StatementsNode(0...13)( + [LocalVariableWriteNode(0...3)( + :t, + 0, + IntegerNode(2...3)(), + (0...1), + (1...2) + ), + IfNode(4...13)( + nil, + ParenthesesNode(4...9)( + StatementsNode(5...8)( + [CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo")] + ), + (4...5), + (8...9) + ), + StatementsNode(10...11)([LocalVariableReadNode(10...11)(:t, 0)]), + ElseNode(11...13)( + (11...12), + StatementsNode(12...13)([ConstantReadNode(12...13)()]), + nil + ), + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/trailing_forward_arg.txt b/test/yarp/snapshots/whitequark/trailing_forward_arg.txt new file mode 100644 index 0000000000..61f29acca5 --- /dev/null +++ b/test/yarp/snapshots/whitequark/trailing_forward_arg.txt @@ -0,0 +1,43 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [DefNode(0...40)( + (4...7), + nil, + ParametersNode(8...17)( + [RequiredParameterNode(8...9)(:a), + RequiredParameterNode(11...12)(:b)], + [], + [], + nil, + [], + ForwardingParameterNode(14...17)(), + nil + ), + StatementsNode(20...35)( + [CallNode(20...35)( + nil, + nil, + (20...23), + (23...24), + ArgumentsNode(24...34)( + [LocalVariableReadNode(24...25)(:a, 0), + IntegerNode(27...29)(), + ForwardingArgumentsNode(31...34)()] + ), + (34...35), + nil, + 0, + "bar" + )] + ), + [:a, :b, :"..."], + (0...3), + nil, + (7...8), + (17...18), + nil, + (37...40) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/true.txt b/test/yarp/snapshots/whitequark/true.txt new file mode 100644 index 0000000000..14b0c8cecc --- /dev/null +++ b/test/yarp/snapshots/whitequark/true.txt @@ -0,0 +1 @@ +ProgramNode(0...4)([], StatementsNode(0...4)([TrueNode(0...4)()])) diff --git a/test/yarp/snapshots/whitequark/unary_num_pow_precedence.txt b/test/yarp/snapshots/whitequark/unary_num_pow_precedence.txt new file mode 100644 index 0000000000..319b29b170 --- /dev/null +++ b/test/yarp/snapshots/whitequark/unary_num_pow_precedence.txt @@ -0,0 +1,58 @@ +ProgramNode(0...32)( + [], + StatementsNode(0...32)( + [CallNode(0...10)( + FloatNode(0...4)(), + nil, + (5...7), + nil, + ArgumentsNode(8...10)([IntegerNode(8...10)()]), + nil, + nil, + 0, + "**" + ), + CallNode(12...20)( + CallNode(13...20)( + IntegerNode(13...14)(), + nil, + (15...17), + nil, + ArgumentsNode(18...20)([IntegerNode(18...20)()]), + nil, + nil, + 0, + "**" + ), + nil, + (12...13), + nil, + nil, + nil, + nil, + 0, + "-@" + ), + CallNode(22...32)( + CallNode(23...32)( + FloatNode(23...26)(), + nil, + (27...29), + nil, + ArgumentsNode(30...32)([IntegerNode(30...32)()]), + nil, + nil, + 0, + "**" + ), + nil, + (22...23), + nil, + nil, + nil, + nil, + 0, + "-@" + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/undef.txt b/test/yarp/snapshots/whitequark/undef.txt new file mode 100644 index 0000000000..eb253762b3 --- /dev/null +++ b/test/yarp/snapshots/whitequark/undef.txt @@ -0,0 +1,20 @@ +ProgramNode(0...27)( + [], + StatementsNode(0...27)( + [UndefNode(0...27)( + [SymbolNode(6...9)(nil, (6...9), nil, "foo"), + SymbolNode(11...15)((11...12), (12...15), nil, "bar"), + InterpolatedSymbolNode(17...27)( + (17...19), + [StringNode(19...22)(nil, (19...22), nil, "foo"), + EmbeddedStatementsNode(22...26)( + (22...24), + StatementsNode(24...25)([IntegerNode(24...25)()]), + (25...26) + )], + (26...27) + )], + (0...5) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/unless.txt b/test/yarp/snapshots/whitequark/unless.txt new file mode 100644 index 0000000000..291a636f99 --- /dev/null +++ b/test/yarp/snapshots/whitequark/unless.txt @@ -0,0 +1,23 @@ +ProgramNode(0...46)( + [], + StatementsNode(0...46)( + [UnlessNode(0...24)( + (0...6), + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "foo"), + StatementsNode(16...19)( + [CallNode(16...19)(nil, nil, (16...19), nil, nil, nil, nil, 0, "bar")] + ), + nil, + (21...24) + ), + UnlessNode(26...46)( + (26...32), + CallNode(33...36)(nil, nil, (33...36), nil, nil, nil, nil, 0, "foo"), + StatementsNode(38...41)( + [CallNode(38...41)(nil, nil, (38...41), nil, nil, nil, nil, 0, "bar")] + ), + nil, + (43...46) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/unless_else.txt b/test/yarp/snapshots/whitequark/unless_else.txt new file mode 100644 index 0000000000..a3564a0c29 --- /dev/null +++ b/test/yarp/snapshots/whitequark/unless_else.txt @@ -0,0 +1,55 @@ +ProgramNode(0...66)( + [], + StatementsNode(0...66)( + [UnlessNode(0...34)( + (0...6), + CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "foo"), + StatementsNode(16...19)( + [CallNode(16...19)(nil, nil, (16...19), nil, nil, nil, nil, 0, "bar")] + ), + ElseNode(21...34)( + (21...25), + StatementsNode(26...29)( + [CallNode(26...29)( + nil, + nil, + (26...29), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (31...34) + ), + (31...34) + ), + UnlessNode(36...66)( + (36...42), + CallNode(43...46)(nil, nil, (43...46), nil, nil, nil, nil, 0, "foo"), + StatementsNode(48...51)( + [CallNode(48...51)(nil, nil, (48...51), nil, nil, nil, nil, 0, "bar")] + ), + ElseNode(53...66)( + (53...57), + StatementsNode(58...61)( + [CallNode(58...61)( + nil, + nil, + (58...61), + nil, + nil, + nil, + nil, + 0, + "baz" + )] + ), + (63...66) + ), + (63...66) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/unless_mod.txt b/test/yarp/snapshots/whitequark/unless_mod.txt new file mode 100644 index 0000000000..37e4f48881 --- /dev/null +++ b/test/yarp/snapshots/whitequark/unless_mod.txt @@ -0,0 +1,14 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [UnlessNode(0...14)( + (4...10), + CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "foo"), + StatementsNode(0...3)( + [CallNode(0...3)(nil, nil, (0...3), nil, nil, nil, nil, 0, "bar")] + ), + nil, + nil + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/until.txt b/test/yarp/snapshots/whitequark/until.txt new file mode 100644 index 0000000000..46632a6734 --- /dev/null +++ b/test/yarp/snapshots/whitequark/until.txt @@ -0,0 +1,39 @@ +ProgramNode(0...42)( + [], + StatementsNode(0...42)( + [UntilNode(0...21)( + (0...5), + CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "foo"), + StatementsNode(13...17)( + [CallNode(13...17)( + nil, + nil, + (13...17), + nil, + nil, + nil, + nil, + 0, + "meth" + )] + ) + ), + UntilNode(23...42)( + (23...28), + CallNode(29...32)(nil, nil, (29...32), nil, nil, nil, nil, 0, "foo"), + StatementsNode(34...38)( + [CallNode(34...38)( + nil, + nil, + (34...38), + nil, + nil, + nil, + nil, + 0, + "meth" + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/until_mod.txt b/test/yarp/snapshots/whitequark/until_mod.txt new file mode 100644 index 0000000000..604dc3d9ec --- /dev/null +++ b/test/yarp/snapshots/whitequark/until_mod.txt @@ -0,0 +1,12 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [UntilNode(0...14)( + (5...10), + CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "foo"), + StatementsNode(0...4)( + [CallNode(0...4)(nil, nil, (0...4), nil, nil, nil, nil, 0, "meth")] + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/until_post.txt b/test/yarp/snapshots/whitequark/until_post.txt new file mode 100644 index 0000000000..0c2a28ab5c --- /dev/null +++ b/test/yarp/snapshots/whitequark/until_post.txt @@ -0,0 +1,31 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [UntilNode(0...24)( + (15...20), + CallNode(21...24)(nil, nil, (21...24), nil, nil, nil, nil, 0, "foo"), + StatementsNode(0...14)( + [BeginNode(0...14)( + (0...5), + StatementsNode(6...10)( + [CallNode(6...10)( + nil, + nil, + (6...10), + nil, + nil, + nil, + nil, + 0, + "meth" + )] + ), + nil, + nil, + nil, + (11...14) + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/var_and_asgn.txt b/test/yarp/snapshots/whitequark/var_and_asgn.txt new file mode 100644 index 0000000000..76469d6b93 --- /dev/null +++ b/test/yarp/snapshots/whitequark/var_and_asgn.txt @@ -0,0 +1,11 @@ +ProgramNode(0...7)( + [:a], + StatementsNode(0...7)( + [LocalVariableOperatorAndWriteNode(0...7)( + (0...1), + (2...5), + IntegerNode(6...7)(), + :a + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/var_op_asgn.txt b/test/yarp/snapshots/whitequark/var_op_asgn.txt new file mode 100644 index 0000000000..2bc8667b6a --- /dev/null +++ b/test/yarp/snapshots/whitequark/var_op_asgn.txt @@ -0,0 +1,44 @@ +ProgramNode(0...53)( + [:a], + StatementsNode(0...53)( + [ClassVariableOperatorWriteNode(0...11)( + (0...5), + (6...8), + IntegerNode(9...11)(), + :| + ), + InstanceVariableOperatorWriteNode(13...20)( + (13...15), + (16...18), + IntegerNode(19...20)(), + :| + ), + LocalVariableOperatorWriteNode(22...28)( + (22...23), + (24...26), + IntegerNode(27...28)(), + :a, + :+ + ), + DefNode(30...53)( + (34...35), + nil, + nil, + StatementsNode(37...48)( + [ClassVariableOperatorWriteNode(37...48)( + (37...42), + (43...45), + IntegerNode(46...48)(), + :| + )] + ), + [], + (30...33), + nil, + nil, + nil, + nil, + (50...53) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/var_op_asgn_cmd.txt b/test/yarp/snapshots/whitequark/var_op_asgn_cmd.txt new file mode 100644 index 0000000000..4ef661f2fd --- /dev/null +++ b/test/yarp/snapshots/whitequark/var_op_asgn_cmd.txt @@ -0,0 +1,22 @@ +ProgramNode(0...12)( + [:foo], + StatementsNode(0...12)( + [LocalVariableOperatorWriteNode(0...12)( + (0...3), + (4...6), + CallNode(7...12)( + nil, + nil, + (7...8), + nil, + ArgumentsNode(9...12)([LocalVariableReadNode(9...12)(:foo, 0)]), + nil, + nil, + 0, + "m" + ), + :foo, + :+ + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/var_or_asgn.txt b/test/yarp/snapshots/whitequark/var_or_asgn.txt new file mode 100644 index 0000000000..39cc823867 --- /dev/null +++ b/test/yarp/snapshots/whitequark/var_or_asgn.txt @@ -0,0 +1,11 @@ +ProgramNode(0...7)( + [:a], + StatementsNode(0...7)( + [LocalVariableOperatorOrWriteNode(0...7)( + (0...1), + (2...5), + IntegerNode(6...7)(), + :a + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/when_multi.txt b/test/yarp/snapshots/whitequark/when_multi.txt new file mode 100644 index 0000000000..d81232ad20 --- /dev/null +++ b/test/yarp/snapshots/whitequark/when_multi.txt @@ -0,0 +1,29 @@ +ProgramNode(0...37)( + [], + StatementsNode(0...37)( + [CaseNode(0...37)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo"), + [WhenNode(10...32)( + (10...14), + [StringNode(15...20)((15...16), (16...19), (19...20), "bar"), + StringNode(22...27)((22...23), (23...26), (26...27), "baz")], + StatementsNode(29...32)( + [CallNode(29...32)( + nil, + nil, + (29...32), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + )], + nil, + (0...4), + (34...37) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/when_splat.txt b/test/yarp/snapshots/whitequark/when_splat.txt new file mode 100644 index 0000000000..428ea20d6e --- /dev/null +++ b/test/yarp/snapshots/whitequark/when_splat.txt @@ -0,0 +1,60 @@ +ProgramNode(0...43)( + [], + StatementsNode(0...43)( + [CaseNode(0...43)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo"), + [WhenNode(10...27)( + (10...14), + [IntegerNode(15...16)(), + SplatNode(18...22)( + (18...19), + CallNode(19...22)( + nil, + nil, + (19...22), + nil, + nil, + nil, + nil, + 0, + "baz" + ) + )], + StatementsNode(24...27)( + [CallNode(24...27)( + nil, + nil, + (24...27), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + ), + WhenNode(29...38)( + (29...33), + [SplatNode(34...38)( + (34...35), + CallNode(35...38)( + nil, + nil, + (35...38), + nil, + nil, + nil, + nil, + 0, + "foo" + ) + )], + nil + )], + nil, + (0...4), + (40...43) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/when_then.txt b/test/yarp/snapshots/whitequark/when_then.txt new file mode 100644 index 0000000000..3880028b7f --- /dev/null +++ b/test/yarp/snapshots/whitequark/when_then.txt @@ -0,0 +1,28 @@ +ProgramNode(0...34)( + [], + StatementsNode(0...34)( + [CaseNode(0...34)( + CallNode(5...8)(nil, nil, (5...8), nil, nil, nil, nil, 0, "foo"), + [WhenNode(10...29)( + (10...14), + [StringNode(15...20)((15...16), (16...19), (19...20), "bar")], + StatementsNode(26...29)( + [CallNode(26...29)( + nil, + nil, + (26...29), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ) + )], + nil, + (0...4), + (31...34) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/while.txt b/test/yarp/snapshots/whitequark/while.txt new file mode 100644 index 0000000000..9cd21ff154 --- /dev/null +++ b/test/yarp/snapshots/whitequark/while.txt @@ -0,0 +1,39 @@ +ProgramNode(0...42)( + [], + StatementsNode(0...42)( + [WhileNode(0...21)( + (0...5), + CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "foo"), + StatementsNode(13...17)( + [CallNode(13...17)( + nil, + nil, + (13...17), + nil, + nil, + nil, + nil, + 0, + "meth" + )] + ) + ), + WhileNode(23...42)( + (23...28), + CallNode(29...32)(nil, nil, (29...32), nil, nil, nil, nil, 0, "foo"), + StatementsNode(34...38)( + [CallNode(34...38)( + nil, + nil, + (34...38), + nil, + nil, + nil, + nil, + 0, + "meth" + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/while_mod.txt b/test/yarp/snapshots/whitequark/while_mod.txt new file mode 100644 index 0000000000..b39baf15c1 --- /dev/null +++ b/test/yarp/snapshots/whitequark/while_mod.txt @@ -0,0 +1,12 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [WhileNode(0...14)( + (5...10), + CallNode(11...14)(nil, nil, (11...14), nil, nil, nil, nil, 0, "foo"), + StatementsNode(0...4)( + [CallNode(0...4)(nil, nil, (0...4), nil, nil, nil, nil, 0, "meth")] + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/while_post.txt b/test/yarp/snapshots/whitequark/while_post.txt new file mode 100644 index 0000000000..94adefedc7 --- /dev/null +++ b/test/yarp/snapshots/whitequark/while_post.txt @@ -0,0 +1,31 @@ +ProgramNode(0...24)( + [], + StatementsNode(0...24)( + [WhileNode(0...24)( + (15...20), + CallNode(21...24)(nil, nil, (21...24), nil, nil, nil, nil, 0, "foo"), + StatementsNode(0...14)( + [BeginNode(0...14)( + (0...5), + StatementsNode(6...10)( + [CallNode(6...10)( + nil, + nil, + (6...10), + nil, + nil, + nil, + nil, + 0, + "meth" + )] + ), + nil, + nil, + nil, + (11...14) + )] + ) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/xstring_interp.txt b/test/yarp/snapshots/whitequark/xstring_interp.txt new file mode 100644 index 0000000000..0b7c91cf7f --- /dev/null +++ b/test/yarp/snapshots/whitequark/xstring_interp.txt @@ -0,0 +1,18 @@ +ProgramNode(0...14)( + [], + StatementsNode(0...14)( + [InterpolatedXStringNode(0...14)( + (0...1), + [StringNode(1...4)(nil, (1...4), nil, "foo"), + EmbeddedStatementsNode(4...10)( + (4...6), + StatementsNode(6...9)( + [CallNode(6...9)(nil, nil, (6...9), nil, nil, nil, nil, 0, "bar")] + ), + (9...10) + ), + StringNode(10...13)(nil, (10...13), nil, "baz")], + (13...14) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/xstring_plain.txt b/test/yarp/snapshots/whitequark/xstring_plain.txt new file mode 100644 index 0000000000..61515d89d9 --- /dev/null +++ b/test/yarp/snapshots/whitequark/xstring_plain.txt @@ -0,0 +1,6 @@ +ProgramNode(0...8)( + [], + StatementsNode(0...8)( + [XStringNode(0...8)((0...1), (1...7), (7...8), "foobar")] + ) +) diff --git a/test/yarp/snapshots/whitequark/yield.txt b/test/yarp/snapshots/whitequark/yield.txt new file mode 100644 index 0000000000..89b53914b6 --- /dev/null +++ b/test/yarp/snapshots/whitequark/yield.txt @@ -0,0 +1,23 @@ +ProgramNode(0...37)( + [], + StatementsNode(0...37)( + [YieldNode(0...5)((0...5), nil, nil, nil), + YieldNode(7...16)( + (7...12), + nil, + ArgumentsNode(13...16)( + [CallNode(13...16)(nil, nil, (13...16), nil, nil, nil, nil, 0, "foo")] + ), + nil + ), + YieldNode(18...25)((18...23), (23...24), nil, (24...25)), + YieldNode(27...37)( + (27...32), + (32...33), + ArgumentsNode(33...36)( + [CallNode(33...36)(nil, nil, (33...36), nil, nil, nil, nil, 0, "foo")] + ), + (36...37) + )] + ) +) diff --git a/test/yarp/snapshots/whitequark/zsuper.txt b/test/yarp/snapshots/whitequark/zsuper.txt new file mode 100644 index 0000000000..b9f92d0055 --- /dev/null +++ b/test/yarp/snapshots/whitequark/zsuper.txt @@ -0,0 +1,4 @@ +ProgramNode(0...5)( + [], + StatementsNode(0...5)([ForwardingSuperNode(0...5)(nil)]) +) diff --git a/test/yarp/snapshots/xstring.txt b/test/yarp/snapshots/xstring.txt new file mode 100644 index 0000000000..5bc0e9be56 --- /dev/null +++ b/test/yarp/snapshots/xstring.txt @@ -0,0 +1,31 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [XStringNode(0...7)((0...3), (3...6), (6...7), "foo"), + InterpolatedXStringNode(9...25)( + (9...10), + [StringNode(10...14)(nil, (10...14), nil, "foo "), + EmbeddedStatementsNode(14...20)( + (14...16), + StatementsNode(16...19)( + [CallNode(16...19)( + nil, + nil, + (16...19), + nil, + nil, + nil, + nil, + 0, + "bar" + )] + ), + (19...20) + ), + StringNode(20...24)(nil, (20...24), nil, " baz")], + (24...25) + ), + XStringNode(27...33)((27...28), (28...32), (32...33), "foo"), + XStringNode(35...40)((35...36), (36...39), (39...40), "foo")] + ) +) diff --git a/test/yarp/snapshots/yield.txt b/test/yarp/snapshots/yield.txt new file mode 100644 index 0000000000..9dba03e7b7 --- /dev/null +++ b/test/yarp/snapshots/yield.txt @@ -0,0 +1,23 @@ +ProgramNode(0...40)( + [], + StatementsNode(0...40)( + [YieldNode(0...5)((0...5), nil, nil, nil), + YieldNode(7...14)((7...12), (12...13), nil, (13...14)), + YieldNode(16...24)( + (16...21), + (21...22), + ArgumentsNode(22...23)([IntegerNode(22...23)()]), + (23...24) + ), + YieldNode(26...40)( + (26...31), + (31...32), + ArgumentsNode(32...39)( + [IntegerNode(32...33)(), + IntegerNode(35...36)(), + IntegerNode(38...39)()] + ), + (39...40) + )] + ) +) diff --git a/test/yarp/unescape_test.rb b/test/yarp/unescape_test.rb new file mode 100644 index 0000000000..314e59aa6a --- /dev/null +++ b/test/yarp/unescape_test.rb @@ -0,0 +1,152 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +module UnescapeTest + class UnescapeNoneTest < Test::Unit::TestCase + def test_backslash + assert_unescape_none("\\") + end + + def test_single_quote + assert_unescape_none("'") + end + + private + + def assert_unescape_none(source) + assert_equal(source, YARP.unescape_none(source)) + end + end + + class UnescapeMinimalTest < Test::Unit::TestCase + def test_backslash + assert_unescape_minimal("\\", "\\\\") + end + + def test_single_quote + assert_unescape_minimal("'", "\\'") + end + + def test_single_char + assert_unescape_minimal("\\a", "\\a") + end + + private + + def assert_unescape_minimal(expected, source) + assert_equal(expected, YARP.unescape_minimal(source)) + end + end + + class UnescapeAllTest < Test::Unit::TestCase + def test_backslash + assert_unescape_all("\\", "\\\\") + end + + def test_single_quote + assert_unescape_all("'", "\\'") + end + + def test_single_char + assert_unescape_all("\a", "\\a") + assert_unescape_all("\b", "\\b") + assert_unescape_all("\e", "\\e") + assert_unescape_all("\f", "\\f") + assert_unescape_all("\n", "\\n") + assert_unescape_all("\r", "\\r") + assert_unescape_all("\s", "\\s") + assert_unescape_all("\t", "\\t") + assert_unescape_all("\v", "\\v") + end + + def test_octal + assert_unescape_all("\a", "\\7") + assert_unescape_all("#", "\\43") + assert_unescape_all("a", "\\141") + end + + def test_hexadecimal + assert_unescape_all("\a", "\\x7") + assert_unescape_all("#", "\\x23") + assert_unescape_all("a", "\\x61") + end + + def test_deletes + assert_unescape_all("\x7f", "\\c?") + assert_unescape_all("\x7f", "\\C-?") + end + + def test_unicode_codepoint + assert_unescape_all("a", "\\u0061") + assert_unescape_all("Ā", "\\u0100", "UTF-8") + assert_unescape_all("က", "\\u1000", "UTF-8") + assert_unescape_all("တ", "\\u1010", "UTF-8") + + assert_nil(YARP.unescape_all("\\uxxxx")) + end + + def test_unicode_codepoints + assert_unescape_all("a", "\\u{61}") + assert_unescape_all("Ā", "\\u{0100}", "UTF-8") + assert_unescape_all("က", "\\u{1000}", "UTF-8") + assert_unescape_all("တ", "\\u{1010}", "UTF-8") + assert_unescape_all("𐀀", "\\u{10000}", "UTF-8") + assert_unescape_all("𐀐", "\\u{10010}", "UTF-8") + assert_unescape_all("aĀကတ𐀀𐀐", "\\u{ 61\s100\n1000\t1010\r10000\v10010 }", "UTF-8") + + assert_nil(YARP.unescape_all("\\u{110000}")) + assert_nil(YARP.unescape_all("\\u{110000 110001 110002}")) + end + + def test_control_characters + each_printable do |chr| + byte = eval("\"\\c#{chr}\"").bytes.first + assert_unescape_all(byte.chr, "\\c#{chr}") + + byte = eval("\"\\C-#{chr}\"").bytes.first + assert_unescape_all(byte.chr, "\\C-#{chr}") + end + end + + def test_meta_characters + each_printable do |chr| + byte = eval("\"\\M-#{chr}\"").bytes.first + assert_unescape_all(byte.chr, "\\M-#{chr}") + end + end + + def test_meta_control_characters + each_printable do |chr| + byte = eval("\"\\M-\\c#{chr}\"").bytes.first + assert_unescape_all(byte.chr, "\\M-\\c#{chr}") + + byte = eval("\"\\M-\\C-#{chr}\"").bytes.first + assert_unescape_all(byte.chr, "\\M-\\C-#{chr}") + + byte = eval("\"\\c\\M-#{chr}\"").bytes.first + assert_unescape_all(byte.chr, "\\c\\M-#{chr}") + end + end + + def test_escaping_normal_characters + assert_unescape_all("d", "\\d") + assert_unescape_all("g", "\\g") + end + + private + + def assert_unescape_all(expected, source, forced_encoding = nil) + result = YARP.unescape_all(source) + result.force_encoding(forced_encoding) if forced_encoding + assert_equal(expected, result) + end + + def each_printable + (1..127).each do |ord| + chr = ord.chr + yield chr if chr.match?(/[[:print:]]/) && chr != " " && chr != "\\" + end + end + end +end diff --git a/test/yarp/version_test.rb b/test/yarp/version_test.rb new file mode 100644 index 0000000000..f431157ae9 --- /dev/null +++ b/test/yarp/version_test.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +class VersionTest < Test::Unit::TestCase + def test_version_is_set + refute_nil YARP::VERSION + end +end diff --git a/test/yarp/yarp_test_helper.rb b/test/yarp/yarp_test_helper.rb new file mode 100644 index 0000000000..666bc337c7 --- /dev/null +++ b/test/yarp/yarp_test_helper.rb @@ -0,0 +1,98 @@ +# frozen_string_literal: true + +require "yarp" +require "ripper" +require "pp" +require "test/unit" +require "tempfile" + +module YARP + module Assertions + private + + def assert_equal_nodes(expected, actual, compare_location: true, parent: nil) + assert_equal expected.class, actual.class + + case expected + when Array + assert_equal( + expected.size, + actual.size, + -> { "Arrays were different sizes. Parent: #{parent.pretty_inspect}" } + ) + + expected.zip(actual).each do |(expected_element, actual_element)| + assert_equal_nodes( + expected_element, + actual_element, + compare_location: compare_location, + parent: actual + ) + end + when YARP::SourceFileNode + deconstructed_expected = expected.deconstruct_keys(nil) + deconstructed_actual = actual.deconstruct_keys(nil) + assert_equal deconstructed_expected.keys, deconstructed_actual.keys + + # Filepaths can be different if test suites were run + # on different machines. + # We accommodate for this by comparing the basenames, + # and not the absolute filepaths + assert_equal deconstructed_expected.except(:filepath), deconstructed_actual.except(:filepath) + assert_equal File.basename(deconstructed_expected[:filepath]), File.basename(deconstructed_actual[:filepath]) + when YARP::Node + deconstructed_expected = expected.deconstruct_keys(nil) + deconstructed_actual = actual.deconstruct_keys(nil) + assert_equal deconstructed_expected.keys, deconstructed_actual.keys + + deconstructed_expected.each_key do |key| + assert_equal_nodes( + deconstructed_expected[key], + deconstructed_actual[key], + compare_location: compare_location, + parent: actual + ) + end + when YARP::Location + assert_operator actual.start_offset, :<=, actual.end_offset, -> { + "start_offset > end_offset for #{actual.inspect}, parent is #{parent.pretty_inspect}" + } + if compare_location + assert_equal( + expected.start_offset, + actual.start_offset, + -> { "Start locations were different. Parent: #{parent.pretty_inspect}" } + ) + + assert_equal( + expected.end_offset, + actual.end_offset, + -> { "End locations were different. Parent: #{parent.pretty_inspect}" } + ) + + end + else + assert_equal expected, actual + end + end + + def assert_valid_locations(value, parent: nil) + case value + when Array + value.each do |element| + assert_valid_locations(element, parent: value) + end + when YARP::Node + value.deconstruct_keys(nil).each_value do |field| + assert_valid_locations(field, parent: value) + end + when YARP::Location + assert_operator value.start_offset, :<=, value.end_offset, -> { + "start_offset > end_offset for #{value.inspect}, parent is #{parent.pretty_inspect}" + } + end + end + end +end + +Test::Unit::TestCase.include(YARP::Assertions) |
