private SwiftType TranslateEnum(TypeProxy enumType) { string name; if (!_swiftTypesToNames.TryGetValue(enumType, out name)) { ErrorHandler.Error("Skipping undefined enum '{0}'.", enumType.FullName); return(null); } var swiftEnum = new SwiftEnum(name) { BriefComment = _documentation.GetTypeSummary(enumType), }; var baseType = enumType.GetEnumUnderlyingType(); if (baseType != _appDomain.ObjectType) { var baseSwiftType = TranslateType(baseType); if (baseType == null) { ErrorHandler.Error("Skipping enum '{0}' because of undefined base class '{1}'.", enumType.FullName, baseType.FullName); return(null); } swiftEnum.BaseType = baseSwiftType; } _swiftTypes.Add(enumType, swiftEnum); foreach (var value in enumType.GetEnumValues()) { var member = value.GetMember(); var swiftValueName = _filter.GetEnumName(value); var underlyingValue = _filter.GetUnderlyingEnumValue(value); var swiftValue = new SwiftEnumValue(swiftValueName, underlyingValue) { BriefComment = _documentation.GetFieldSummary(member), }; swiftEnum.AddValue(swiftValue); } return(swiftEnum); }