lib/simplabs/excellent/parsing/code_processor.rb in excellent-1.6.0 vs lib/simplabs/excellent/parsing/code_processor.rb in excellent-1.7.0
- old
+ new
@@ -86,15 +86,27 @@
def process_for(exp)
process_default(exp, ForLoopContext.new(exp, @contexts.last))
end
def process_args(exp)
- exp[1..-1].each { |parameter| @contexts.last.parameters << parameter if parameter.is_a?(Symbol) }
+ exp[1..-1].each do |parameter|
+ case parameter
+ when Sexp
+ case parameter[0]
+ when :masgn
+ parameter[1..-1].each { |parameter| @contexts.last.parameters << parameter }
+ when :lasgn
+ @contexts.last.parameters << parameter[1]
+ end
+ when Symbol
+ @contexts.last.parameters << parameter if parameter.is_a?(Symbol)
+ end
+ end
process_default(exp)
end
def process_masgn(exp)
- exp[1][1..-1].each { |parameter| @contexts.last.parameters << parameter[1] if parameter[1].is_a?(Symbol) } if @contexts.last.is_a?(BlockContext)
+ exp[1..-1].each { |parameter| @contexts.last.parameters << parameter[1] if parameter[1].is_a?(Symbol) } if @contexts.last.is_a?(BlockContext)
process_default(exp)
end
def process_case(exp)
process_default(exp, CaseContext.new(exp, @contexts.last))