Skip to content

Commit

Permalink
make sure that all nodes are known for AST::Processor. (#698)
Browse files Browse the repository at this point in the history
  • Loading branch information
iliabylich committed May 22, 2020
1 parent 54da73c commit cbbb6bb
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
32 changes: 32 additions & 0 deletions test/test_ast_processor.rb
@@ -0,0 +1,32 @@
# frozen_string_literal: true

require 'helper'

class TestASTProcessor < Minitest::Test
LEAF_NODES = %i[
sym str int float complex rational
true false nil self
__FILE__ __LINE__ __ENCODING__
cbase regopt zsuper
match_with_trailing_comma match_nil_pattern
forward_args forwarded_args numargs kwnilarg
objc_varargs objc_restarg objc_kwarg
ident
].freeze

def setup
@traversible = Parser::AST::Processor
.instance_methods(false)
.map { |mid| mid.to_s.scan(/\Aon_(.*)/) }
.flatten
.map(&:to_sym)

@traversible += LEAF_NODES
end

def test_nodes_are_traversible
for_each_node do |node|
assert_includes @traversible, node.type
end
end
end
2 changes: 1 addition & 1 deletion test/test_base.rb
Expand Up @@ -26,6 +26,6 @@ def test_loc_to_node
def test_loc_dup
ast = Parser::CurrentRuby.parse('1')
assert_nil ast.loc.dup.node
Parser::AST::Node.new(:root, [], :location => ast.loc)
Parser::AST::Node.new(:zsuper, [], :location => ast.loc)
end
end

0 comments on commit cbbb6bb

Please sign in to comment.