* Split dynamic variable get(:scope), which served for both LocalScope and IteratorScope into two dynamic variables get(:local_scope) and get(:control_scope). This simplifies the Scope classes a lot. * Introduce LoopControlScope and IteratorControlScope to distinguish loops from iterators. * Reduce usage of dynamic variables. Remove :encoder and :method_scope dynamic variables and replace them by attributes of class Compiler.
* Rename ArgList to ArgumentList * Move ArgumentList into MethodCall class so that it becomes clear that it represents passed parameters to a method and not the declaration of a parameter list when defining a method. * For the same reason move BlockPass into class MethodCall.
other "yields" as well.
argument to #initialize. Also don't register all entities by default. Do it explicitly!
attr_reader :message alias to_s message This is atm the simplest way to avoid the problem.