public ExprFieldInfo CreateFieldInfo(FieldSymbol field, AggregateType fieldType) { Debug.Assert(field != null); Debug.Assert(fieldType != null); ExprFieldInfo rval = new ExprFieldInfo(field, fieldType); rval.Kind = ExpressionKind.EK_FIELDINFO; rval.Type = GetTypes().GetOptPredefAgg(PredefinedType.PT_FIELDINFO).getThisType(); rval.Flags = 0; return(rval); }
protected override Expr VisitFIELD(ExprField expr) { Debug.Assert(expr != null); Expr pObject; if (expr.OptionalObject == null) { pObject = GetExprFactory().CreateNull(); } else { pObject = Visit(expr.OptionalObject); } ExprFieldInfo pFieldInfo = GetExprFactory().CreateFieldInfo(expr.FieldWithType.Field(), expr.FieldWithType.GetType()); return(GenerateCall(PREDEFMETH.PM_EXPRESSION_FIELD, pObject, pFieldInfo)); }
protected virtual Expr VisitFIELDINFO(ExprFieldInfo pExpr) { return(VisitEXPR(pExpr)); }