예제 #1
0
        private IMidMemberRef EmitMemberTermImpl(ResMemberGenericApp resApp, MidEmitEnv env)
        {
            var fun = EmitMemberTerm(resApp.Fun.MemberTerm, env);

            var argEnv = new MidGenericArgEmitEnv(env);

            var args = resApp.Args.Zip(resApp.Fun.Parameters,
                                       (a, p) => EmitGenericArg(a, p, argEnv)).Eager();

            return(fun.GenericApp(args));
        }
예제 #2
0
        private void BindForMemberTermImpl(
            ResMemberGenericApp genericApp,
            MidEmitEnv env)
        {
            BindForMemberTerm(genericApp.Fun.MemberTerm, env);

            foreach (var pair in genericApp.Args.Zip(genericApp.Fun.Parameters, Tuple.Create))
            {
                EmitGenericArg(pair.Item1, pair.Item2, env);
            }
        }