internal Field( TypeAndCustomInfo declaringTypeAndInfo, TypeAndCustomInfo fieldTypeAndInfo, FieldInfo fieldInfo, string name, Field parent, bool isRest ) { Debug.Assert(declaringTypeAndInfo.ClrType != null); Debug.Assert(fieldTypeAndInfo.ClrType != null); Debug.Assert(fieldInfo != null); Debug.Assert(name != null); Debug.Assert(declaringTypeAndInfo.Type.Equals(fieldInfo.DeclaringType)); Debug.Assert(fieldTypeAndInfo.Type.Equals(fieldInfo.FieldType)); Debug.Assert( parent == null || parent.FieldInfo.FieldType.Equals(fieldInfo.DeclaringType) ); DeclaringTypeAndInfo = declaringTypeAndInfo; FieldTypeAndInfo = fieldTypeAndInfo; FieldInfo = fieldInfo; Name = name; Parent = parent; IsRest = isRest; }
private static TypeAndCustomInfo GetTupleFieldTypeAndInfo( DkmClrAppDomain appDomain, FieldInfo field, CustomTypeInfoTypeArgumentMap customTypeInfoMap) { var declaringTypeDef = field.DeclaringType.GetGenericTypeDefinition(); var fieldDef = declaringTypeDef.GetTupleField(field.Name); var fieldType = DkmClrType.Create(appDomain, field.FieldType); var fieldTypeInfo = customTypeInfoMap.SubstituteCustomTypeInfo(fieldDef.FieldType, null); return(new TypeAndCustomInfo(fieldType, fieldTypeInfo)); }
private static TypeAndCustomInfo GetTupleFieldTypeAndInfo( DkmClrAppDomain appDomain, FieldInfo field, CustomTypeInfoTypeArgumentMap customTypeInfoMap) { var declaringTypeDef = field.DeclaringType.GetGenericTypeDefinition(); var fieldDef = declaringTypeDef.GetTupleField(field.Name); var fieldType = DkmClrType.Create(appDomain, field.FieldType); var fieldTypeInfo = customTypeInfoMap.SubstituteCustomTypeInfo(fieldDef.FieldType, null); return new TypeAndCustomInfo(fieldType, fieldTypeInfo); }
internal Field( TypeAndCustomInfo declaringTypeAndInfo, TypeAndCustomInfo fieldTypeAndInfo, FieldInfo fieldInfo, string name, Field parent, bool isRest) { Debug.Assert(declaringTypeAndInfo.ClrType != null); Debug.Assert(fieldTypeAndInfo.ClrType != null); Debug.Assert(fieldInfo != null); Debug.Assert(name != null); Debug.Assert(declaringTypeAndInfo.Type.Equals(fieldInfo.DeclaringType)); Debug.Assert(fieldTypeAndInfo.Type.Equals(fieldInfo.FieldType)); Debug.Assert(parent == null || parent.FieldInfo.FieldType.Equals(fieldInfo.DeclaringType)); DeclaringTypeAndInfo = declaringTypeAndInfo; FieldTypeAndInfo = fieldTypeAndInfo; FieldInfo = fieldInfo; Name = name; Parent = parent; IsRest = isRest; }