public static IResMemberRef App( this IResGenericRef fun, SourceRange range, IEnumerable <IResGenericArg> args) { var genericApp = new ResMemberGenericApp( fun, args); return(fun.InnerDecl.MakeRef(range, genericApp)); }
public ResMemberGenericApp( IResGenericRef fun, IEnumerable <IResGenericArg> args) { _fun = fun; _args = args.ToArray(); _subst = new Substitution(_fun.MemberTerm.Subst); foreach (var pair in _fun.Parameters.Zip(_args, Tuple.Create)) { _subst.Insert(pair.Item1.Decl, pair.Item2); } }