internal OverLoadSet Clone(Scope thisScope) { var ret = new OverLoadSet(thisScope); ret.Symbols = Symbols; ret.IsHoldAlias = IsHoldAlias; return ret; }
internal void Append(Scope scope) { if(scope is AliasDeclaration) { IsHoldAlias = true; } Symbols.Add(scope); }
internal OverLoadChain(Scope scope, OverLoadChain parent, IReadOnlyList<OverLoadChain> inherits, params OverLoadSet[] sets) { if (scope == null) { throw new ArgumentNullException("current"); } ThisScope = scope; Parent = parent; Inherits = inherits; Sets = sets; }
internal void AppendChildScope(Scope scope) { if (string.IsNullOrEmpty(scope.Name)) { return; } if (!ChildSymbols.ContainsKey(scope.Name)) { var ol = new OverLoadSet(this); ChildSymbols.Add(scope.Name, ol); } ChildSymbols[scope.Name].Append(scope); }
internal OverLoadSet(Scope scope) { ThisScope = scope; Symbols = new List<Scope>(); }