binding-tools-for-swift icon indicating copy to clipboard operation
binding-tools-for-swift copied to clipboard

[DylibBinder] Obtaining Public Classes, Enums, Structs, Protocols, and Functions

Open tj-devel709 opened this issue 3 years ago • 0 comments

ModuleInventory.ClassesForName (SwiftName modName), ModuleInventory.ProtocolsForName (SwiftName modName), and ModuleInventory.FunctionsForName (SwiftName modName) should return public classes.

Issue: Sometimes it gives us internal or private classes as well

Example, from libswiftCore.dylib:

  • Swift._UnicodeEncoding
  • Swift._ObjectiveCBridgeable
  • Swift._Pointer
  • Swift._ArrayProtocol
  • Swift._UTFParser
  • Swift._UnicodeParser
  • Swift.Dictionary.Index._Variant
  • Swift.Dictionary.Iterator._Variant
  • Swift.Dictionary._Variant
  • Swift.Set.Index._Variant
  • Swift.Set.Iterator._Variant
  • Swift.Set._Variant
  • Swift._ArrayBody
  • Swift._HashTable
  • Swift._HashTable.Index
  • Swift._HashTable.Bucket
  • Swift._HashTable.Iterator
  • Swift._NativeSet
  • Swift._NativeSet.Iterator
  • Swift.__CocoaSet
  • Swift.__CocoaSet.Index
  • Swift.__CocoaSet.Iterator
  • Swift._MergeError
  • Swift._SetBuilder
  • Swift._SetStorage
  • Swift._StringGuts
  • Swift._UIntBuffer
  • Swift._UIntBuffer.Index
  • Swift._UIntBuffer.Iterator
  • Swift._ArrayBuffer
  • Swift._IteratorBox
  • Swift._SequenceBox
  • Swift._SliceBuffer
  • Swift._SmallString
  • Swift._MetadataKind
  • Swift._StringObject
  • Swift._StringObject.CountAndFlags
  • Swift._StringObject.Nibbles
  • Swift._UnsafeBitset
  • Swift._UnsafeBitset.Word
  • Swift._UnsafeBitset.Iterator
  • Swift.JoinedSequence.Iterator._JoinIteratorState
  • Swift._BridgeStorage
  • Swift._CollectionBox
  • Swift.UnboundedRange_
  • Swift._AnySequenceBox
  • Swift._CVarArgAligned
  • Swift.__RawSetStorage
  • Swift.__VaListBuilder
  • Swift.__VaListBuilder.Header
  • Swift._DebuggerSupport
  • Swift._DependenceToken
  • Swift._ValidUTF8Buffer
  • Swift._ValidUTF8Buffer.Index
  • Swift._ValidUTF8Buffer.Iterator
  • Swift._AnyCollectionBox
  • Swift._EachFieldOptions
  • Swift._NativeDictionary
  • Swift._NativeDictionary.Iterator
  • Swift.__CocoaDictionary
  • Swift.__CocoaDictionary.Index
  • Swift.__CocoaDictionary.Iterator
  • Swift._stdlib_AtomicInt
  • Swift._CocoaArrayWrapper
  • Swift._DictionaryBuilder
  • Swift._DictionaryStorage
  • Swift.__SwiftNativeNSSet
  • Swift._AnyIteratorBoxBase
  • Swift._BridgeableMetatype
  • Swift.__EmptyArrayStorage
  • Swift.__EmptySetSingleton
  • Swift._ArrayBufferProtocol
  • Swift._PlaygroundQuickLook
  • Swift._SwiftNSMutableArray
  • Swift._SwiftNewtypeWrapper
  • Swift.__SwiftNativeNSArray
  • Swift._ClosureBasedIterator
  • Swift._ClosureBasedSequence
  • Swift._StringRepresentation
  • Swift._StringRepresentation._Form
  • Swift._AnyCollectionProtocol
  • Swift._CVarArgPassedAsDouble
  • Swift._ContiguousArrayBuffer
  • Swift.__RawDictionaryStorage
  • Swift.__SwiftDeferredNSArray
  • Swift._ContiguousArrayStorage
  • Swift._StringComparisonResult
  • Swift._OpaqueStringSwitchCache
  • Swift.__SwiftNativeNSDictionary
  • Swift._OptionalNilComparisonType
  • Swift._RandomAccessCollectionBox
  • Swift._SwiftNativeNSMutableArray
  • Swift.__EmptyDictionarySingleton
  • Swift._BidirectionalCollectionBox
  • Swift.__ContiguousArrayStorageBase
  • Swift._AnyRandomAccessCollectionBox
  • Swift._AnyBidirectionalCollectionBox
  • Swift._ExpressibleByBuiltinStringLiteral
  • Swift.__SwiftNativeNSArrayWithContiguousStorage
  • Swift._UnsafePartiallyInitializedContiguousArrayBuffer
  • Swift._ExpressibleByBuiltinExtendedGraphemeClusterLiteral
  • Swift.Hasher._TailBuffer
  • Swift.Hasher._Core
  • Swift.Hasher._State
  • Swift.Float80._Representation
  • Swift._IndexBox
  • Swift._UTFParser
  • Swift._AnyIndexBox
  • Swift._AppendKeyPath
  • Swift._ArrayProtocol
  • Swift._StringElement
  • Swift._UnicodeParser
  • Swift._AnyHashableBox
  • Swift._CVarArgAligned
  • Swift._UnicodeEncoding
  • Swift._HashTableDelegate
  • Swift._HasContiguousBytes
  • Swift._ArrayBufferProtocol
  • Swift._SwiftNewtypeWrapper
  • Swift._ObjectiveCBridgeable
  • Swift._AnyCollectionProtocol
  • Swift._CVarArgPassedAsDouble
  • Swift._DestructorSafeContainer
  • Swift._ExpressibleByColorLiteral
  • Swift._ExpressibleByImageLiteral
  • Swift._CustomPlaygroundQuickLookable
  • Swift._ExpressibleByBuiltinFloatLiteral
  • Swift._ExpressibleByBuiltinStringLiteral
  • Swift._ExpressibleByFileReferenceLiteral
  • Swift._ExpressibleByBuiltinBooleanLiteral
  • Swift._ExpressibleByBuiltinIntegerLiteral
  • Swift._HasCustomAnyHashableRepresentation
  • Swift.__DefaultCustomPlaygroundQuickLookable
  • Swift._ExpressibleByBuiltinUnicodeScalarLiteral
  • Swift._ExpressibleByBuiltinExtendedGraphemeClusterLiteral
  • Swift._Pointer
  • Swift._maskingAdd
  • Swift._maskingSubtract
  • Swift._step
  • Swift._convertPointerToPointerArgument
  • Swift._bridgeAnyObjectToAny
  • Swift._expectEnd
  • Swift._hashValue
  • Swift._nearbyint
  • Swift._setUpCast
  • Swift._undefined
  • Swift._asciiDigit
  • Swift._branchHint
  • Swift._canBeClass
  • Swift._decodeUTF8
  • Swift._isOptional
  • Swift._isPowerOf2
  • Swift._onFastPath
  • Swift._parseASCII
  • Swift._typeByName
  • Swift._unsafePlus
  • Swift._withVaList
  • Swift._nullCodeUnitOffset
  • Swift._IteratorBox
  • Swift._SequenceBox
  • Swift._autorelease
  • Swift._findNextRun
  • Swift._fixLifetime
  • Swift._roundUpImpl
  • Swift._scalarAlign
  • Swift._setDownCast
  • Swift._unreachable
  • Swift._unsafeMinus
  • Swift._decodeScalar
  • Swift._forEachField
  • Swift._identityCast
  • Swift._precondition
  • Swift._ArrayProtocol
  • Swift._CollectionBox
  • Swift._toUTF16CodeUnit
  • Swift._fromUTF16CodeUnit
  • Swift._UnicodeParser
  • Swift._bytesToUInt64
  • Swift._stringCompare
  • Swift._AnySequenceBox
  • Swift.__VaListBuilder
  • Swift._arrayForceCast
  • Swift._isContinuation
  • Swift._isValidAddress
  • Swift._persistCString
  • Swift._print_unlocked
  • Swift._uint64ToString
  • Swift._isScalar
  • Swift._fatalErrorFlags
  • Swift._fpRegisterWords
  • Swift._isUnique_native
  • Swift._isspace_clocale
  • Swift._mangledTypeName
  • Swift._openExistential
  • Swift._overflowChecked
  • Swift._AnyCollectionBox
  • Swift._assertionFailure
  • Swift._bridgeCocoaArray
  • Swift._countFPRegisters
  • Swift._countGPRegisters
  • Swift._dictionaryUpCast
  • Swift._isBitwiseTakable
  • Swift._replDebugPrintln
  • Swift._stdlib_AtomicInt
  • Swift._swift_getKeyPath
  • Swift._utf8ScalarLength
  • Swift.__SwiftNativeNSSet
  • Swift._appendingKeyPaths
  • Swift._assumeNonNegative
  • Swift._bridgeCocoaString
  • Swift._debugPrecondition
  • Swift._emptyArrayStorage
  • Swift._encodeBitsAsWords
  • Swift._fatalErrorMessage
  • Swift._growArrayCapacity
  • Swift._internalInvariant
  • Swift._isValidArrayIndex
  • Swift._registerSaveWords
  • Swift._AnyIteratorBoxBase
  • Swift.__EmptyArrayStorage
  • Swift._dictionaryDownCast
  • Swift._parseUnsignedASCII
  • Swift._ArrayBufferProtocol
  • Swift.__SwiftNativeNSArray
  • Swift._continuationPayload
  • Swift._debugPrint_unlocked
  • Swift._getObjCTypeEncoding
  • Swift._isObjCTaggedPointer
  • Swift._playgroundPrintHook
  • Swift._preconditionFailure
  • Swift._tryToAppendKeyPaths
  • Swift._unsafeReferenceCast
  • Swift._forceBridgeFromObjectiveC
  • Swift._conditionallyBridgeFromObjectiveC
  • Swift._unconditionallyBridgeFromObjectiveC
  • Swift._arrayConditionalCast
  • Swift._convertToAnyHashable
  • Swift._findStringSwitchCase
  • Swift._stringForPrintObject
  • Swift.__SwiftDeferredNSArray
  • Swift._isBridgedToObjectiveC
  • Swift._isValidArraySubscript
  • Swift._minimumMergeRunLength
  • Swift._objCTaggedPointerBits
  • Swift._stringCompareInternal
  • Swift._uncheckedUnsafeAssume
  • Swift._writeBackMutableSlice
  • Swift._minAllocationAlignment
  • Swift._objectPointerIsObjCBit
  • Swift._objectPointerSpareBits
  • Swift._replPrintLiteralString
  • Swift._setDownCastConditional
  • Swift._getErrorEmbeddedNSError
  • Swift._stdlib_atomicLoadARCRef
  • Swift._unsafeUncheckedDowncast
  • Swift.unimplemented_utf8_32bit
  • Swift.__SwiftNativeNSDictionary
  • Swift._conditionallyUnreachable
  • Swift._debugPreconditionFailure
  • Swift._getBridgedObjectiveCType
  • Swift._internalInvariantFailure
  • Swift._isClassOrObjCExistential
  • Swift._unimplementedInitializer
  • Swift._ExpressibleByColorLiteral
  • Swift._ExpressibleByImageLiteral
  • Swift._RandomAccessCollectionBox
  • Swift._SwiftNativeNSMutableArray
  • Swift._isFastAssertConfiguration
  • Swift._unsafeDowncastToAnyObject
  • Swift._BidirectionalCollectionBox
  • Swift._bridgeAnythingToObjectiveC
  • Swift._debuggerTestingCheckExpect
  • Swift._diagnoseUnexpectedEnumCase
  • Swift._isDebugAssertConfiguration
  • Swift._reinterpretCastToAnyObject
  • Swift._stringCompareWithSmolCheck
  • Swift._swift_stdlib_atomicLoadInt
  • Swift.__ContiguousArrayStorageBase
  • Swift._swift_stdlib_atomicStoreInt
  • Swift._availabilityNextMajorVersion
  • Swift._isReleaseAssertConfiguration
  • Swift._bridgeObjectTaggedPointerBits
  • Swift._copySequenceToContiguousArray
  • Swift._dictionaryDownCastConditional
  • Swift._findStringSwitchCaseWithCache
  • Swift._isBridgedVerbatimToObjectiveC
  • Swift._isStdlibInternalChecksEnabled
  • Swift._objectPointerLowSpareBitShift
  • Swift._stdlib_atomicInitializeARCRef
  • Swift._swift_stdlib_atomicFetchOrInt
  • Swift._swift_stdlib_atomicFetchAddInt
  • Swift._swift_stdlib_atomicFetchAndInt
  • Swift._swift_stdlib_atomicFetchXorInt
  • Swift._bridgeNonVerbatimFromObjectiveC
  • Swift._copyCollectionToContiguousArray
  • Swift._diagnoseUnexpectedEnumCaseValue
  • Swift._makeSwiftNSFastEnumerationState
  • Swift._stdlib_binary_CFStringGetLength
  • Swift._swift_stdlib_atomicFetchOrInt32
  • Swift._swift_stdlib_atomicFetchOrInt64
  • Swift._isBridgedNonVerbatimToObjectiveC
  • Swift._stdlib_binary_CFStringCreateCopy
  • Swift._swift_stdlib_atomicFetchAddInt32
  • Swift._swift_stdlib_atomicFetchAddInt64
  • Swift._swift_stdlib_atomicFetchAndInt32
  • Swift._swift_stdlib_atomicFetchAndInt64
  • Swift._swift_stdlib_atomicFetchXorInt32
  • Swift._swift_stdlib_atomicFetchXorInt64
  • Swift._ExpressibleByFileReferenceLiteral
  • Swift._SwiftCreateBridgedArray_DoNotCall
  • Swift._SwiftCreateBridgedString_DoNotCall
  • Swift._convertConstArrayToPointerArgument
  • Swift._fastEnumerationStorageMutationsPtr
  • Swift._getUnsafePointerToStoredProperties
  • Swift._getBridgedNonVerbatimObjectiveCType
  • Swift._stdlib_initializeReturnAutoreleased
  • Swift._convertMutableArrayToPointerArgument
  • Swift._forceBridgeFromObjectiveC_bridgeable
  • Swift._fastEnumerationStorageMutationsTarget
  • Swift._stdlib_atomicCompareExchangeStrongPtr
  • Swift._stdlib_binary_CFStringGetCharactersPtr
  • Swift._convertConstStringToUTF8PointerArgument
  • Swift._SwiftCreateBridgedMutableArray_DoNotCall
  • Swift._hashContainerDefaultMaxLoadFactorInverse
  • Swift._bridgeNonVerbatimFromObjectiveCConditional
  • Swift._swift_stdlib_atomicCompareExchangeStrongInt
  • Swift._conditionallyBridgeFromObjectiveC_bridgeable
  • Swift._cos
  • Swift._exp
  • Swift._log
  • Swift._sin
  • Swift.ELEMENT_TYPE_OF_SET_VIOLATES_HASHABLE_REQUIREMENTS
  • Swift.KEY_TYPE_OF_DICTIONARY_VIOLATES_HASHABLE_REQUIREMENTS
  • Swift._exp2
  • Swift._log2
  • Swift._rint
  • Swift._isPOD
  • Swift._log10
  • Swift._merge
  • Swift._memcpy
  • Swift._ascii16
  • Swift._isASCII
  • Swift._memmove
  • Swift._roundUp
  • Swift._IndexBox
  • Swift._abstract
  • Swift._fastPath
  • Swift._isUnique
  • Swift._slowPath
  • Swift._typeName

I need to find another way other than looking for an underscore in the name to filter for public elements only.

tj-devel709 avatar Jun 08 '21 19:06 tj-devel709