/* Add the identifier globally.
* Note: Since these are the first identifiers (and references)
* to be added to the program, they will be numbered in
* sequence starting at 0 (zero). This means that the
* counter num_create_args is sufficient extra information
* to be able to keep track of them.
*/

/* FIXMEs
* It would be nice if 'return' would exit from
* the surrounding function rather than from the
* implicit lambda. (I think) So beware that the
* behaviour of 'return' might change some day.
* -Hubbe
*
* It would also be nice if it was possible to send
* arguments to the implicit function, but it would
* require using ugly implicit variables or extending
* the syntax, and if you extend the syntax you might
* as well use lambda() instead.
* -Hubbe
*
* We might want to allow having more than block after
* a function ( ie. func(args) {} {} {} {} )
* -Hubbe
*/

struct reference *ref = Pike_compiler->new_program->identifier_references + i;
if (!TEST_COMPAT (7, 2) &&
IDENTIFIER_IS_VARIABLE (
ID_FROM_PTR (Pike_compiler->new_program, ref)->identifier_flags)) {
/* Allowing local:: on variables would lead to pathological
* behavior: If a non-local variable in a class is referenced
* both with and without local::, both references would
* address the same variable in all cases except where an
* inheriting program overrides it (c.f. [bug 1252]).
*
* Furthermore, that's not how it works currently; if this
* error is removed then local:: will do nothing on variables
* except forcing a lookup in the closest surrounding class
* scope. */