private static RppFunc CreateApply(RTypeName className, IEnumerable<ResolvableType> classParams) { int paramIndex = 0; IEnumerable<IRppParam> funcParams = classParams.Select(t => new RppParam($"_{paramIndex++}", t)).ToList(); RppNew newExpr = new RppNew(new ResolvableType(className), funcParams.Select(p => new RppId(p.Name, p))); return new RppFunc("apply", funcParams, new ResolvableType(className), newExpr); }
public override void Visit(RppNew node) { node.Args.ForEach(arg => arg.Accept(this)); }
public virtual void Visit(RppNew node) { }