public override string GetExpressionType(CompilationModel model) { var fullName = string.Format("{0}:{1}", Method, String.Join(":", Parameters.Select(e => e.GetExpressionType(model)))); if (Expression != null) { return(model.GetClass(Expression.GetExpressionType(model)).GetMethod(fullName).Type); } return(model.GetClass(FindParent <Class>().Name).GetMethod(fullName).Type); }
public override List <InstructionModel> GetInstructions(CompilationModel model) { var instructions = new List <InstructionModel>(); var index = model.GetClass(Expression.GetExpressionType(model)).GetFieldIndex(Property).ToString(CultureInfo.InvariantCulture); instructions.AddRange(Expression.GetInstructions(model)); instructions.Add(new InstructionModel(Instructions.GetFieldInstruction, index) { Comment = model.GetComment(this) }); return(instructions); }
public override string GetExpressionType(CompilationModel model) { var @class = model.GetClass(Expression.GetExpressionType(model)); return(@class.GetFieldType(Property)); }