Put the "climb one level" in its own function.

Split AssignRuntimeT, stuck again at a metaprogramming problem
unsolvable (seemingly) in C/C++. D will help, but it may be not enough,
something like Lisp that is able to manipulate the AST directly would be
neat, but there is no LLVM Lisp/Scheme frontend.
Ugly tabs' last breath.