//todo 同じオブジェクトが二重登録されるバグを取る。 internal override OverLoadChain NameResolution(string name) { if (ReferenceCache.ContainsKey(name)) { return ReferenceCache[name]; } var n = CurrentScope == null ? Root.UndefinedOverLord : CurrentScope.NameResolution(name); var s = TraversalChild(name, this).ToArray(); if (s.Length > 0) { n = new OverLoadChain(this, n, s); } ReferenceCache.Add(name, n); return n; }
internal override OverLoadChain NameResolution(string name) { if (DisguiseScopeMode) { return CurrentScope.NameResolution(name); } if (ReferenceCache.ContainsKey(name)) { return ReferenceCache[name]; } var n = CurrentScope.NameResolution(name); var i = InheritNameResolution(name); if (ChildSymbols.ContainsKey(name)) { var s = ChildSymbols[name]; n = new OverLoadChain(this, n, i, s); } else { n = new OverLoadChain(this, n, i); } ReferenceCache.Add(name, n); return n; }