On 2015-10-02 08:31, Per Nordlöw wrote:
Could explain what you mean by *lowering*, please?
"lowering" means that a feature is implemented using another feature. For example, "foreach" is lowered to a for-loop:
foreach(i ; 0 .. 10){}
Is lowered to:
for (int i = 0; i < 10; i++) {}
The compiler rewrites the AST of the foreach-loop to the same AST that
the corresponding for-loop would have. After that lowering step, the
compiler doesn't need to know anything about foreach-loops.
-- /Jacob Carlborg
