public override object VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, object data)
        {
            if (resolver.CallingType == null)
            {
                return(CreateResult(DomReturnType.Void));
            }

            ThisResolveResult result = new ThisResolveResult();

            result.CallingType    = resolver.CallingType;
            result.CallingMember  = resolver.CallingMember;
            result.UnresolvedType = result.ResolvedType = DomReturnType.GetSharedReturnType(new DomReturnType(resolver.CallingType));
            return(result);
        }
Beispiel #2
0
 public JsNode VisitThisResolveResult(ThisResolveResult res)
 {
     return(Js.This());
 }
 public virtual TResult VisitThisResolveResult(ThisResolveResult rr, TData data)
 {
     VisitChildResolveResults(rr, data);
     return(default(TResult));
 }
Beispiel #4
0
//		string Visit(ValueResolveResult result)
//		{
//			throw new NotImplementedException();
//		}

        string Visit(ThisResolveResult result)
        {
            return("this");
        }
Beispiel #5
0
 Value Visit(ThisResolveResult result)
 {
     return(context.GetThisValue(true));
 }
Beispiel #6
0
        public NRefactoryParameterDataProvider(MonoDevelop.Ide.Gui.TextEditor editor, NRefactoryResolver resolver, ThisResolveResult resolveResult)
        {
            this.editor = editor;
            HashSet <string> alreadyAdded = new HashSet <string> ();

            if (resolveResult.CallingType != null)
            {
                bool includeProtected = true;
                foreach (IMethod method in resolveResult.CallingType.Methods)
                {
                    if (!method.IsConstructor)
                    {
                        continue;
                    }
                    string str = ambience.GetString(method, OutputFlags.IncludeParameters);
                    if (alreadyAdded.Contains(str))
                    {
                        continue;
                    }
                    alreadyAdded.Add(str);

                    if (method.IsAccessibleFrom(resolver.Dom, resolver.CallingType, resolver.CallingMember, includeProtected))
                    {
                        methods.Add(method);
                    }
                }
            }
        }
Beispiel #7
0
 public override string VisitThisResolveResult(ThisResolveResult rr, object data)
 {
     return(CompileFactoryCall("Constant", new[] { typeof(object), typeof(Type) }, new[] { AbstractEmitterBlock.GetThisAlias(_emitter), ExpressionTreeBuilder.GetTypeName(rr.Type, this._emitter) }));
 }
Beispiel #8
0
 public virtual object VisitThisResolveResult(ThisResolveResult rr, object data)
 {
     VisitChildResolveResults(rr, data);
     return(null);
 }
Beispiel #9
0
 public override object VisitThisResolveResult(ThisResolveResult rr, object data)
 {
     _usesThis = true;
     return(base.VisitThisResolveResult(rr, data));
 }
		public override JsExpression VisitThisResolveResult(ThisResolveResult rr, object data) {
			return CompileFactoryCall("Constant", new[] { typeof(object), typeof(Type) }, new[] { _this, _instantiateType(rr.Type) });
		}
 public object VisitThisResolveResult(ThisResolveResult res)
 {
     throw new NotImplementedException();
 }