Method: TypeProf::Core::AST::CaseNode#initialize
- Defined in:
- lib/typeprof/core/ast/control.rb
#initialize(raw_node, lenv) ⇒ CaseNode
Returns a new instance of CaseNode.
306 307 308 309 310 311 312 313 314 315 |
# File 'lib/typeprof/core/ast/control.rb', line 306 def initialize(raw_node, lenv) super(raw_node, lenv) @pivot = raw_node.predicate ? AST.create_node(raw_node.predicate, lenv) : nil # pivot変数名を決定 pivot_var = @pivot.is_a?(LocalVariableReadNode) ? @pivot.var : nil @when_nodes = raw_node.conditions.map {|raw_cond| WhenNode.new(raw_cond, lenv, pivot_var) } @else_clause = raw_node.else_clause && raw_node.else_clause.statements ? AST.create_node(raw_node.else_clause.statements, lenv) : DummyNilNode.new(code_range, lenv) # TODO: code_range for NilNode end |