@@ -110,6 +110,111 @@ fn.CFDictionaryContainsValue.renamed = "contains_ptr_value"
110110fn.CFURLCreateWithString.renamed = " __from_string"
111111fn.CFURLGetString.renamed = " __string"
112112
113+ # #
114+ # # Fixing generics.
115+ # #
116+
117+ # Key-value is same as for NSAttributedString.
118+ fn.CFAttributedStringCreate.arguments.2.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
119+ fn.CFAttributedStringGetAttributes.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
120+ fn.CFAttributedStringGetAttributesAndLongestEffectiveRange.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
121+ fn.CFAttributedStringSetAttributes.arguments.2.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
122+
123+ # Key being string for info dictionaries is same as NSBundle.infoDictionary.
124+ fn.CFBundleGetAllBundles.return.generics = [" CoreFoundation.CFBundle.CFBundle" ]
125+ fn.CFBundleCreateBundlesFromDirectory.return.generics = [" CoreFoundation.CFBundle.CFBundle" ]
126+ fn.CFBundleGetInfoDictionary.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFPropertyList.CFPropertyList" ]
127+ fn.CFBundleGetLocalInfoDictionary.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFPropertyList.CFPropertyList" ]
128+ fn.CFBundleCopyInfoDictionaryInDirectory.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFPropertyList.CFPropertyList" ]
129+ fn.CFBundleCopyResourceURLsOfType.return.generics = [" CoreFoundation.CFURL.CFURL" ]
130+ fn.CFBundleCopyLocalizedStringForLocalizations.arguments.4.generics = [" CoreFoundation.CFString.CFString" ]
131+ fn.CFBundleCopyResourceURLsOfTypeInDirectory.return.generics = [" CoreFoundation.CFURL.CFURL" ]
132+ fn.CFBundleCopyBundleLocalizations.return.generics = [" CoreFoundation.CFString.CFString" ]
133+ fn.CFBundleCopyPreferredLocalizationsFromArray.arguments.0.generics = [" CoreFoundation.CFString.CFString" ]
134+ fn.CFBundleCopyPreferredLocalizationsFromArray.return.generics = [" CoreFoundation.CFString.CFString" ]
135+ fn.CFBundleCopyLocalizationsForPreferences.arguments.0.generics = [" CoreFoundation.CFString.CFString" ]
136+ fn.CFBundleCopyLocalizationsForPreferences.arguments.1.generics = [" CoreFoundation.CFString.CFString" ]
137+ fn.CFBundleCopyLocalizationsForPreferences.return.generics = [" CoreFoundation.CFString.CFString" ]
138+ fn.CFBundleCopyResourceURLsOfTypeForLocalization.return.generics = [" CoreFoundation.CFURL.CFURL" ]
139+ fn.CFBundleCopyInfoDictionaryForURL.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFPropertyList.CFPropertyList" ]
140+ fn.CFBundleCopyLocalizationsForURL.return.generics = [" CoreFoundation.CFString.CFString" ]
141+ fn.CFBundleCopyExecutableArchitecturesForURL.return.generics = [" CoreFoundation.CFNumber.CFNumber" ]
142+ fn.CFBundleCopyExecutableArchitectures.return.generics = [" CoreFoundation.CFNumber.CFNumber" ]
143+ fn.CFBundleGetFunctionPointersForNames.arguments.1.generics = [" CoreFoundation.CFString.CFString" ]
144+ fn.CFBundleGetDataPointersForNames.arguments.1.generics = [" CoreFoundation.CFString.CFString" ]
145+
146+ # Key-value is same as for NSError.
147+ fn.CFErrorCreate.arguments.3.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
148+ fn.CFErrorCopyUserInfo.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
149+
150+ fn.CFLocaleCopyAvailableLocaleIdentifiers.return.generics = [" CoreFoundation.CFString.CFString" ]
151+ fn.CFLocaleCopyISOLanguageCodes.return.generics = [" CoreFoundation.CFString.CFString" ]
152+ fn.CFLocaleCopyISOCountryCodes.return.generics = [" CoreFoundation.CFString.CFString" ]
153+ fn.CFLocaleCopyISOCurrencyCodes.return.generics = [" CoreFoundation.CFString.CFString" ]
154+ fn.CFLocaleCopyCommonISOCurrencyCodes.return.generics = [" CoreFoundation.CFString.CFString" ]
155+ fn.CFLocaleCopyPreferredLanguages.return.generics = [" CoreFoundation.CFLocale.CFLocaleIdentifier" ] # TODO: Somehow communicate that CFString is required for this to be available
156+ fn.CFLocaleCreateComponentsFromLocaleIdentifier.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFString.CFString" ]
157+ fn.CFLocaleCreateLocaleIdentifierFromComponents.arguments.1.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFString.CFString" ]
158+
159+ # `userInfo` dict generics are allowed to be anything, except if a "distributed" notification.
160+ # typedef.CFNotificationCallback.arguments.4.generics = []
161+ fn.CFNotificationCenterPostNotification.arguments.3.generics = []
162+ fn.CFNotificationCenterPostNotificationWithOptions.arguments.3.generics = []
163+
164+ fn.CFPlugInFindFactoriesForPlugInType.return.generics = [" CoreFoundation.CFUUID.CFUUID" ]
165+ fn.CFPlugInFindFactoriesForPlugInTypeInPlugIn.return.generics = [" CoreFoundation.CFUUID.CFUUID" ]
166+
167+ # Preferences are property lists
168+ fn.CFPreferencesCopyMultiple.arguments.0.generics = [" CoreFoundation.CFString.CFString" ]
169+ fn.CFPreferencesCopyMultiple.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
170+ fn.CFPreferencesSetMultiple.arguments.0.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
171+ fn.CFPreferencesSetMultiple.arguments.1.generics = [" CoreFoundation.CFString.CFString" ]
172+ fn.CFPreferencesCopyKeyList.return.generics = [" CoreFoundation.CFString.CFString" ]
173+ fn.CFPreferencesCopyApplicationList.return.generics = [] # TODO: Maybe String?
174+
175+ fn.CFRunLoopCopyAllModes.return.generics = [" CoreFoundation.CFRunLoop.CFRunLoopMode" ]
176+
177+ fn.CFStringCreateArrayWithFindResults.return.generics = [] # TODO: Pointers to CFRange.
178+ fn.CFStringCreateByCombiningStrings.arguments.1.generics = [" CoreFoundation.CFString.CFString" ]
179+ fn.CFStringCreateArrayBySeparatingStrings.return.generics = [" CoreFoundation.CFString.CFString" ]
180+
181+ # TODO: Unclear type.
182+ fn.CFStringTokenizerGetCurrentSubTokens.arguments.3.generics = []
183+
184+ fn.CFTimeZoneCopyKnownNames.return.generics = [" CoreFoundation.CFString.CFString" ]
185+ fn.CFTimeZoneCopyAbbreviationDictionary.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFString.CFString" ]
186+ fn.CFTimeZoneSetAbbreviationDictionary.arguments.0.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFString.CFString" ]
187+
188+ # Resource property keys are CFString keys.
189+ # See also `-[NSURL bookmarkDataWithOptions:includingResourceValuesForKeys:relativeToURL:error:]`.
190+ fn.CFURLCopyResourcePropertiesForKeys.arguments.1.generics = [" CoreFoundation.CFString.CFString" ]
191+ fn.CFURLCopyResourcePropertiesForKeys.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
192+ fn.CFURLSetResourcePropertiesForKeys.arguments.1.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
193+ fn.CFURLCreateBookmarkData.arguments.3.generics = [" CoreFoundation.CFString.CFString" ]
194+ fn.CFURLCreateByResolvingBookmarkData.arguments.4.generics = [" CoreFoundation.CFString.CFString" ]
195+ fn.CFURLCreateResourcePropertiesForKeysFromBookmarkData.arguments.1.generics = [" CoreFoundation.CFString.CFString" ]
196+ fn.CFURLCreateResourcePropertiesForKeysFromBookmarkData.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
197+
198+ fn.CFURLCreateDataAndPropertiesFromResource.arguments.3.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
199+ fn.CFURLCreateDataAndPropertiesFromResource.arguments.4.generics = [" CoreFoundation.CFString.CFString" ]
200+ fn.CFURLWriteDataAndPropertiesToResource.arguments.2.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
201+
202+ fn.CFURLEnumeratorCreateForDirectoryURL.arguments.3.generics = [" CoreFoundation.CFString.CFString" ]
203+ fn.CFURLEnumeratorCreateForMountedVolumes.arguments.2.generics = [" CoreFoundation.CFString.CFString" ]
204+
205+ fn.CFUserNotificationCreate.arguments.4.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
206+ fn.CFUserNotificationGetResponseDictionary.return.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
207+ fn.CFUserNotificationUpdate.arguments.3.generics = [" CoreFoundation.CFString.CFString" , " CoreFoundation.CFType" ]
208+
209+ # TODO: Support this in `header-translator`
210+ # struct.CFXMLElementInfo.fields.0.generics = [...]
211+ # struct.CFXMLElementInfo.fields.1.generics = [...]
212+
213+ # TODO.
214+ fn.CFXMLTreeCreateFromDataWithError.arguments.5.generics = []
215+ fn.CFXMLCreateStringByEscapingEntities.arguments.2.generics = []
216+ fn.CFXMLCreateStringByUnescapingEntities.arguments.2.generics = []
217+
113218# #
114219# # Safety
115220# #
0 commit comments