public List <string /*!*/> /*!*/ GetVisibleLocalNames() { var result = new List <string>(); RubyScope scope = this; while (true) { foreach (string name in scope.GetDeclaredLocalSymbols()) { result.Add(name); } if (!scope.InheritsLocalVariables) { return(result); } scope = scope.Parent; } }