Method: Delorean::HashComprehension#check

Defined in:
lib/delorean/nodes.rb

#check(context) ⇒ Object



492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
# File 'lib/delorean/nodes.rb', line 492

def check(context, *)
  unpack_vars = args.check(context)
  e1c = e1.check(context)
  unpack_vars.each {|vname| context.parse_define_var(vname)}

  # need to check el/er/ei in a context where the comprehension var
  # is defined.
  elc = el.check(context)
  erc = er.check(context)
  eic = defined?(ifexp.ei) ? ifexp.ei.check(context) : []

  unpack_vars.each {
    |vname|
    context.parse_undef_var(vname)
    elc.delete(vname)
    erc.delete(vname)
    eic.delete(vname)
  }
  e1c + elc + erc + eic
end