예제 #1
0
        public override IEnumerable <object> CreateResolveResult(ProjectDom dom, IMember callingMember)
        {
            List <object> result = new List <object> ();

            MemberResolveResult.AddType(dom, result, GetsInvoked ? ResolvedType : DomReturnType.Delegate, callingMember, StaticResolve);
            return(result);
        }
예제 #2
0
        public override IEnumerable <object> CreateResolveResult(ProjectDom dom, IMember callingMember)
        {
            List <object> result = new List <object> ();

            if (IsLoopVariable)
            {
                if (ResolvedType.Name == "IEnumerable" && ResolvedType.GenericArguments != null && ResolvedType.GenericArguments.Count > 0)
                {
                    MemberResolveResult.AddType(dom, result, ResolvedType.GenericArguments [0], callingMember, StaticResolve);
                }
                else if (ResolvedType.Name == "IEnumerable")
                {
                    MemberResolveResult.AddType(dom, result, DomReturnType.Object, callingMember, StaticResolve);
                }
                else
                {
                    MemberResolveResult.AddType(dom, result, dom.GetType(ResolvedType), callingMember, StaticResolve);
                }
            }
            else
            {
                MemberResolveResult.AddType(dom, result, ResolvedType, callingMember, StaticResolve);
            }
            return(result);
        }
예제 #3
0
        public override IEnumerable <object> CreateResolveResult(ProjectDom dom, IMember callingMember)
        {
            List <object> result = new List <object> ();

            if (CallingMember != null && !CallingMember.IsStatic)
            {
                MemberResolveResult.AddType(dom, result, new DomReturnType(CallingType), callingMember, StaticResolve);
            }
            return(result);
        }
예제 #4
0
        public override IEnumerable <object> CreateResolveResult(ProjectDom dom, IMember callingMember)
        {
            List <object> result = new List <object> ();

            if (CallingMember != null && !CallingMember.IsStatic)
            {
                IType baseType = dom.SearchType(CallingType != null ? CallingType.CompilationUnit : null, CallingType, CallingMember.Location, CallingType.BaseType ?? DomReturnType.Object);
                MemberResolveResult.AddType(dom, result, baseType, new BaseMemberDecorator(CallingMember, baseType), StaticResolve, m => m.IsAbstract);
            }
            return(result);
        }