private VariableDef CreateVariableInDeclaredScope(Lookup name) { var reference = name.VariableField; if (reference != null) { var declNode = reference.Scope; var declScope = _scope.EnumerateTowardsGlobal.FirstOrDefault(s => s is DeclarativeEnvironmentRecord && ((DeclarativeEnvironmentRecord)s).Node == declNode); if (declScope != null) { return(declScope.CreateVariable(name, _curUnit, name.Name, false)); } } return(_scope.CreateVariable(name, _curUnit, name.Name, false)); }