Mono.CSharp.DynamicSiteClass.AddDelegate C# (CSharp) Method

AddDelegate() public method

public AddDelegate ( Delegate d ) : System.TypeSpec
d Delegate
return System.TypeSpec
		public override TypeSpec AddDelegate (Delegate d)
		{
			TypeSpec inflated;

			base.AddDelegate (d);

			// Inflated type instance has to be updated manually
			if (instance_type is InflatedTypeSpec) {
				var inflator = new TypeParameterInflator (instance_type, TypeParameterSpec.EmptyTypes, TypeSpec.EmptyTypes);
				inflated = (TypeSpec) d.CurrentType.InflateMember (inflator);
				instance_type.MemberCache.AddMember (inflated);

				//inflator = new TypeParameterInflator (d.Parent.CurrentType, TypeParameterSpec.EmptyTypes, TypeSpec.EmptyTypes);
				//d.Parent.CurrentType.MemberCache.AddMember (d.CurrentType.InflateMember (inflator));
			} else {
				inflated = d.CurrentType;
			}

			return inflated;
		}