private SimpleFieldDescription CreateField(TypeName declaredOn, IReflectField field, Func <IReflectClass, ITypeDescription> typeLookUp) { var fieldType = typeLookUp(field.GetFieldType()); return(SimpleFieldDescription.Create(field.GetName(), fieldType, IndexLookUp(declaredOn, field.GetName(), fieldType.TypeName))); }
private static SimpleFieldDescription ToFieldDescription(TypeName declaringType, Type fieldType, string name, IDictionary <Type, ITypeDescription> knownTypes, IndexStateLookup indexLookUp) { var type = knownTypes.TryGet(fieldType) .GetValue(() => Create(fieldType, knownTypes, new ITypeDescription[0], indexLookUp)); return(SimpleFieldDescription.Create(name, type, indexLookUp(declaringType, name, type.TypeName))); }