Ejemplo n.º 1
0
        /// <summary>
        /// Given Foo&lt;T&gt;, returns Foo&lt;!0&gt;.
        /// </summary>
        private static InstantiatedType InstantiateAsOpen(this MetadataType type)
        {
            Debug.Assert(type.IsGenericDefinition);

            TypeSystemContext context = type.Context;

            var inst = new TypeDesc[type.Instantiation.Length];

            for (int i = 0; i < inst.Length; i++)
            {
                inst[i] = context.GetSignatureVariable(i, false);
            }

            return(context.GetInstantiatedType(type, new Instantiation(inst)));
        }