Наследование: MidMemberDecl
Пример #1
0
 public MidGenericRef(
     MidGenericDecl decl,
     MidMemberTerm memberTerm)
 {
     _decl       = decl;
     _memberTerm = memberTerm;
 }
Пример #2
0
        private MidMemberDecl EmitMemberDeclImpl(
            IBuilder parent,
            IResGenericDecl resGeneric,
            MidEmitEnv env)
        {
            var midGeneric = new MidGenericDecl(
                parent,
                resGeneric.Name,
                resGeneric,
                this,
                env);            // Nothing to do...

            midGeneric.DoneBuilding();
            return(midGeneric);
        }
Пример #3
0
        public IMidMemberRef SpecializeGenericDecl(
            MidGenericDecl genericDecl,
            IEnumerable <object> args)
        {
            var resGeneric = genericDecl.ResDecl;
            var env        = new MidGlobalEmitEnv(genericDecl.Env, genericDecl.Env.Context);

            foreach (var p in args.Zip(resGeneric.Parameters, Tuple.Create))
            {
                env.Insert(p.Item2, p.Item1);
            }

            var builder = new Builder(null);
            var midDecl = EmitMemberDecl(
                builder,
                resGeneric.InnerDecl,
                env);

            builder.DoneBuilding();
            builder.ForceDeep();

            return(midDecl.CreateRef(null));
        }
 public MidGenericRef(
     MidGenericDecl decl,
     MidMemberTerm memberTerm )
 {
     _decl = decl;
     _memberTerm = memberTerm;
 }