public MidGenericRef( MidGenericDecl decl, MidMemberTerm memberTerm) { _decl = decl; _memberTerm = memberTerm; }
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); }
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; }