Пример #1
0
 //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;
 }
Пример #2
0
 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;
 }