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

CreateCallSiteField() public method

public CreateCallSiteField ( Mono.CSharp.FullNamedExpression type, Mono.CSharp.Location loc ) : FieldSpec
type Mono.CSharp.FullNamedExpression
loc Mono.CSharp.Location
return FieldSpec
		public FieldSpec CreateCallSiteField (FullNamedExpression type, Location loc)
		{
			int index = fields == null ? 0 : fields.Count;
			Field f = new HoistedField (this, type, Modifiers.PUBLIC | Modifiers.STATIC, "Site" + index.ToString ("X"), null, loc);
			f.Define ();

			AddField (f);

			var fs = f.Spec;
			if (mutator != null) {
				//
				// Inflate the field, no need to keep it in MemberCache as it's accessed only once
				//
				var inflator = new TypeParameterInflator (instance_type, spec.MemberDefinition.TypeParameters, instance_type.TypeArguments);
				fs = (FieldSpec) fs.InflateMember (inflator);
			}

			return fs;
		}