public List <ZCallArg> GetDimArgs() { List <ZCallArg> args = new List <ZCallArg>(); foreach (var exp in this.InneExps) { bool isGeneric = false; var type = exp.RetType; if (exp is ExpType) { var idExp = exp as ExpType; isGeneric = idExp.RetType.SharpType.IsGenericType; ZCallGenericArg arg = new ZCallGenericArg(type); arg.Data = exp; args.Add(arg); } else { ZCallValueArg arg = new ZCallValueArg(type); arg.Data = exp; args.Add(arg); } } return(args); }
private ZCallDesc ToZCallDesc(ZMethodDesc methodDesc) { ZCallDesc callDesc = new ZCallDesc(); foreach (var part in methodDesc.Parts) { if (part is string) { callDesc.Add(part); } else if (part is ZMethodNormalArg) { ZMethodNormalArg mna = part as ZMethodNormalArg; ZCallValueArg callArg = new ZCallValueArg(mna.ArgZType); callDesc.Add(callArg); } else if (part is ZMethodGenericArg) { ZMethodGenericArg mna = part as ZMethodGenericArg; ZCallValueArg callArg = new ZCallValueArg(mna.ArgBaseZType); callDesc.Add(callArg); } else { throw new CompileException(); } } return(callDesc); }
public List <ZCallValueArg> GetCallNormalArgs() { List <ZCallValueArg> args = new List <ZCallValueArg>(); foreach (var exp in this.InneExps) { if (!(exp is ExpType)) { var type = exp.RetType; ZCallValueArg arg = new ZCallValueArg(type); arg.Data = exp; args.Add(arg); } } return(args); }