diff --git a/lib/ruby/method_statement.rb b/lib/ruby/method_statement.rb index 8e95ed7b..8759f796 100644 --- a/lib/ruby/method_statement.rb +++ b/lib/ruby/method_statement.rb @@ -9,7 +9,7 @@ module Ruby end def to_vool - MethodStatement.new( @name , @args , @body.normalize) + Vool::MethodStatement.new( @name , @args.dup , @body.to_vool) end def to_s(depth = 0) diff --git a/test/ruby/test_method_statement.rb b/test/ruby/test_method_statement.rb index feddf451..376b51c6 100644 --- a/test/ruby/test_method_statement.rb +++ b/test/ruby/test_method_statement.rb @@ -1,32 +1,47 @@ require_relative "helper" module Ruby + class TestMethodStatementTrans < MiniTest::Test + include RubyTests + + def setup() + input = "def tryout(arg1, arg2) ; a = arg1 ; end " + @lst = compile( input ).to_vool + end + def test_method + assert_equal Vool::MethodStatement , @lst.class + end + def test_method_args + assert_equal [:arg1, :arg2] , @lst.args + end + def test_body_is_scope_zero_statement + assert_equal Vool::LocalAssignment , @lst.body.class + end + end class TestMethodStatement < MiniTest::Test include RubyTests - def basic_setup() + def setup() input = "def tryout(arg1, arg2) ; true ; false ; end " @lst = compile( input ) end def test_method - basic_setup assert_equal MethodStatement , @lst.class end def test_method_name - basic_setup assert_equal :tryout , @lst.name end - def test_method_args - basic_setup assert_equal [:arg1, :arg2] , @lst.args end def test_basic_body - basic_setup assert_equal ScopeStatement , @lst.body.class assert_equal 2 , @lst.body.length end + end + class TestMethodStatement2 < MiniTest::Test + include RubyTests def test_body_is_scope_one_statement input = "def tryout(arg1, arg2) ; a = true ; end " lst = compile( input )