> Our normal procedure is to generate a declaration when we see a function > in its enclosing context, and then fix it up later when we see the > definition. Why not handle this similarly?
Because we want to generate an abstract instance of the nested function within the abstract instance of the parent function. If we wait for the definition of the nested function, and it's out-of-line, we attach the out-of-line instance to the abstract parent, which is the source of the problem. -- Eric Botcazou