internal bool BindInParent(SymbolId name, Binder binder) { Binding binding; ContainsNestedFreeVariables = true; if (TryGetBinding(name, out binding)) { if (binding.IsGlobal) { return false; } else { if (binding.IsDeleted) { binder.ReportSyntaxError(string.Format("can not delete variable '{0}' referenced in nested scope", name.GetString()), this); } MakeEnvironment(name); HasEnvironment = true; return true; } } if (parent != null) { if (parent.BindInParent(name, binder)) { IsClosure = true; HasEnvironment = true; return true; } } return false; }