Пример #1
0
            public override INode Visit(IReturnType type, IType typeToInstantiate)
            {
                DomReturnType copyFrom      = (DomReturnType)type;
                string        decoratedName = copyFrom.DecoratedFullName;
                IReturnType   result        = LookupReturnType(decoratedName, type, typeToInstantiate);
                IType         curType       = currentType;

                while (result == null && curType != null)
                {
                    result  = LookupReturnType(curType.DecoratedFullName + "." + decoratedName, type, typeToInstantiate);
                    curType = curType.DeclaringType;
                }
                result = result ?? (IReturnType)base.Visit(type, typeToInstantiate);
                return(dom != null?dom.GetSharedReturnType(result) : result);
            }