Mono.CSharp.HoistedStoreyClass.HoistedStoreyClass C# (CSharp) Method

HoistedStoreyClass() public method

public HoistedStoreyClass ( DeclSpace parent, MemberName name, Mono.CSharp.TypeParameter tparams, Mono.CSharp.Modifiers mod ) : System
parent DeclSpace
name MemberName
tparams Mono.CSharp.TypeParameter
mod Mono.CSharp.Modifiers
return System
		public HoistedStoreyClass (DeclSpace parent, MemberName name, TypeParameter[] tparams, Modifiers mod)
			: base (parent, name, mod | Modifiers.PRIVATE)
		{
			if (tparams != null) {
				type_params = new TypeParameter[tparams.Length];
				var src = new TypeParameterSpec[tparams.Length];
				var dst = new TypeParameterSpec[tparams.Length];

				for (int i = 0; i < type_params.Length; ++i) {
					type_params[i] = tparams[i].CreateHoistedCopy (this, spec);

					src[i] = tparams[i].Type;
					dst[i] = type_params[i].Type;
				}

				// A copy is not enough, inflate any type parameter constraints
				// using a new type parameters
				var inflator = new TypeParameterInflator (null, src, dst);
				for (int i = 0; i < type_params.Length; ++i) {
					src[i].InflateConstraints (inflator, dst[i]);
				}
			}
		}