Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory.CreateThis C# (CSharp) Method

CreateThis() public method

public CreateThis ( Microsoft.CSharp.RuntimeBinder.Semantics.LocalVariableSymbol pLocal, bool fImplicit ) : EXPRTHISPOINTER
pLocal Microsoft.CSharp.RuntimeBinder.Semantics.LocalVariableSymbol
fImplicit bool
return EXPRTHISPOINTER
        public EXPRTHISPOINTER CreateThis(LocalVariableSymbol pLocal, bool fImplicit)
        {
            Debug.Assert(pLocal == null || pLocal.isThis);

            CType type = null;
            if (pLocal != null)
            {
                type = pLocal.GetType();
            }

            EXPRFLAG flags = EXPRFLAG.EXF_CANTBENULL;
            if (fImplicit)
            {
                flags |= EXPRFLAG.EXF_IMPLICITTHIS;
            }
            if (type != null && type.isStructType())
            {
                flags |= EXPRFLAG.EXF_LVALUE;
            }

            EXPRTHISPOINTER rval = new EXPRTHISPOINTER();
            rval.kind = ExpressionKind.EK_THISPOINTER;
            rval.type = type;
            rval.flags = flags;
            rval.local = pLocal;
            Debug.Assert(rval != null);
            return (rval);
        }