2017-01-14 19:05:58 +01:00
|
|
|
require_relative "helper"
|
|
|
|
|
2017-01-17 23:05:36 +01:00
|
|
|
module Rubyx
|
2017-01-16 16:24:32 +01:00
|
|
|
module Passes
|
2017-08-31 15:18:59 +02:00
|
|
|
class TestLocalsCollector #< MiniTest::Test
|
2017-01-14 19:05:58 +01:00
|
|
|
|
|
|
|
def setup
|
2017-01-19 08:02:29 +01:00
|
|
|
Risc.machine.boot unless Risc.machine.booted
|
2017-01-14 19:05:58 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def parse_collect( input )
|
|
|
|
ast = Parser::Ruby22.parse input
|
|
|
|
LocalsCollector.new.collect(ast)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_no_locals
|
|
|
|
locals = parse_collect "def meth; end"
|
|
|
|
assert locals.empty?
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_method_is_not_local
|
|
|
|
locals = parse_collect("def meth2(arg1); foo ;end")
|
|
|
|
assert locals.empty?
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_local_assign_one
|
|
|
|
locals = parse_collect("def meth2(arg1); foo = bar ;end")
|
|
|
|
assert locals[:foo] , locals.inspect
|
|
|
|
end
|
|
|
|
def test_local_assign_two
|
|
|
|
locals = parse_collect("def meth2(arg1); foo = bar ; groove = 1 + 2 ;end")
|
|
|
|
assert locals.length == 2 , locals.inspect
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|