[clang] [clang-bindings] Add strict typing to clang Python bindings (#76664) (PR #78114)

Jannick Kremer via cfe-commits cfe-commits at lists.llvm.org
Sun Jun 9 14:24:08 PDT 2024


================
@@ -2286,192 +2869,151 @@ class TypeKind(BaseEnumeration):
     Describes the kind of type.
     """
 
-    # The unique kind objects, indexed by id.
-    _kinds = []
-    _name_map = None
-
     @property
-    def spelling(self):
+    def spelling(self) -> str:
         """Retrieve the spelling of this TypeKind."""
         return conf.lib.clang_getTypeKindSpelling(self.value)
 
-    def __repr__(self):
-        return "TypeKind.%s" % (self.name,)
-
-
-TypeKind.INVALID = TypeKind(0)
-TypeKind.UNEXPOSED = TypeKind(1)
-TypeKind.VOID = TypeKind(2)
-TypeKind.BOOL = TypeKind(3)
-TypeKind.CHAR_U = TypeKind(4)
-TypeKind.UCHAR = TypeKind(5)
-TypeKind.CHAR16 = TypeKind(6)
-TypeKind.CHAR32 = TypeKind(7)
-TypeKind.USHORT = TypeKind(8)
-TypeKind.UINT = TypeKind(9)
-TypeKind.ULONG = TypeKind(10)
-TypeKind.ULONGLONG = TypeKind(11)
-TypeKind.UINT128 = TypeKind(12)
-TypeKind.CHAR_S = TypeKind(13)
-TypeKind.SCHAR = TypeKind(14)
-TypeKind.WCHAR = TypeKind(15)
-TypeKind.SHORT = TypeKind(16)
-TypeKind.INT = TypeKind(17)
-TypeKind.LONG = TypeKind(18)
-TypeKind.LONGLONG = TypeKind(19)
-TypeKind.INT128 = TypeKind(20)
-TypeKind.FLOAT = TypeKind(21)
-TypeKind.DOUBLE = TypeKind(22)
-TypeKind.LONGDOUBLE = TypeKind(23)
-TypeKind.NULLPTR = TypeKind(24)
-TypeKind.OVERLOAD = TypeKind(25)
-TypeKind.DEPENDENT = TypeKind(26)
-TypeKind.OBJCID = TypeKind(27)
-TypeKind.OBJCCLASS = TypeKind(28)
-TypeKind.OBJCSEL = TypeKind(29)
-TypeKind.FLOAT128 = TypeKind(30)
-TypeKind.HALF = TypeKind(31)
-TypeKind.IBM128 = TypeKind(40)
-TypeKind.COMPLEX = TypeKind(100)
-TypeKind.POINTER = TypeKind(101)
-TypeKind.BLOCKPOINTER = TypeKind(102)
-TypeKind.LVALUEREFERENCE = TypeKind(103)
-TypeKind.RVALUEREFERENCE = TypeKind(104)
-TypeKind.RECORD = TypeKind(105)
-TypeKind.ENUM = TypeKind(106)
-TypeKind.TYPEDEF = TypeKind(107)
-TypeKind.OBJCINTERFACE = TypeKind(108)
-TypeKind.OBJCOBJECTPOINTER = TypeKind(109)
-TypeKind.FUNCTIONNOPROTO = TypeKind(110)
-TypeKind.FUNCTIONPROTO = TypeKind(111)
-TypeKind.CONSTANTARRAY = TypeKind(112)
-TypeKind.VECTOR = TypeKind(113)
-TypeKind.INCOMPLETEARRAY = TypeKind(114)
-TypeKind.VARIABLEARRAY = TypeKind(115)
-TypeKind.DEPENDENTSIZEDARRAY = TypeKind(116)
-TypeKind.MEMBERPOINTER = TypeKind(117)
-TypeKind.AUTO = TypeKind(118)
-TypeKind.ELABORATED = TypeKind(119)
-TypeKind.PIPE = TypeKind(120)
-TypeKind.OCLIMAGE1DRO = TypeKind(121)
-TypeKind.OCLIMAGE1DARRAYRO = TypeKind(122)
-TypeKind.OCLIMAGE1DBUFFERRO = TypeKind(123)
-TypeKind.OCLIMAGE2DRO = TypeKind(124)
-TypeKind.OCLIMAGE2DARRAYRO = TypeKind(125)
-TypeKind.OCLIMAGE2DDEPTHRO = TypeKind(126)
-TypeKind.OCLIMAGE2DARRAYDEPTHRO = TypeKind(127)
-TypeKind.OCLIMAGE2DMSAARO = TypeKind(128)
-TypeKind.OCLIMAGE2DARRAYMSAARO = TypeKind(129)
-TypeKind.OCLIMAGE2DMSAADEPTHRO = TypeKind(130)
-TypeKind.OCLIMAGE2DARRAYMSAADEPTHRO = TypeKind(131)
-TypeKind.OCLIMAGE3DRO = TypeKind(132)
-TypeKind.OCLIMAGE1DWO = TypeKind(133)
-TypeKind.OCLIMAGE1DARRAYWO = TypeKind(134)
-TypeKind.OCLIMAGE1DBUFFERWO = TypeKind(135)
-TypeKind.OCLIMAGE2DWO = TypeKind(136)
-TypeKind.OCLIMAGE2DARRAYWO = TypeKind(137)
-TypeKind.OCLIMAGE2DDEPTHWO = TypeKind(138)
-TypeKind.OCLIMAGE2DARRAYDEPTHWO = TypeKind(139)
-TypeKind.OCLIMAGE2DMSAAWO = TypeKind(140)
-TypeKind.OCLIMAGE2DARRAYMSAAWO = TypeKind(141)
-TypeKind.OCLIMAGE2DMSAADEPTHWO = TypeKind(142)
-TypeKind.OCLIMAGE2DARRAYMSAADEPTHWO = TypeKind(143)
-TypeKind.OCLIMAGE3DWO = TypeKind(144)
-TypeKind.OCLIMAGE1DRW = TypeKind(145)
-TypeKind.OCLIMAGE1DARRAYRW = TypeKind(146)
-TypeKind.OCLIMAGE1DBUFFERRW = TypeKind(147)
-TypeKind.OCLIMAGE2DRW = TypeKind(148)
-TypeKind.OCLIMAGE2DARRAYRW = TypeKind(149)
-TypeKind.OCLIMAGE2DDEPTHRW = TypeKind(150)
-TypeKind.OCLIMAGE2DARRAYDEPTHRW = TypeKind(151)
-TypeKind.OCLIMAGE2DMSAARW = TypeKind(152)
-TypeKind.OCLIMAGE2DARRAYMSAARW = TypeKind(153)
-TypeKind.OCLIMAGE2DMSAADEPTHRW = TypeKind(154)
-TypeKind.OCLIMAGE2DARRAYMSAADEPTHRW = TypeKind(155)
-TypeKind.OCLIMAGE3DRW = TypeKind(156)
-TypeKind.OCLSAMPLER = TypeKind(157)
-TypeKind.OCLEVENT = TypeKind(158)
-TypeKind.OCLQUEUE = TypeKind(159)
-TypeKind.OCLRESERVEID = TypeKind(160)
-
-TypeKind.OBJCOBJECT = TypeKind(161)
-TypeKind.OBJCCLASS = TypeKind(162)
-TypeKind.ATTRIBUTED = TypeKind(163)
-
-TypeKind.OCLINTELSUBGROUPAVCMCEPAYLOAD = TypeKind(164)
-TypeKind.OCLINTELSUBGROUPAVCIMEPAYLOAD = TypeKind(165)
-TypeKind.OCLINTELSUBGROUPAVCREFPAYLOAD = TypeKind(166)
-TypeKind.OCLINTELSUBGROUPAVCSICPAYLOAD = TypeKind(167)
-TypeKind.OCLINTELSUBGROUPAVCMCERESULT = TypeKind(168)
-TypeKind.OCLINTELSUBGROUPAVCIMERESULT = TypeKind(169)
-TypeKind.OCLINTELSUBGROUPAVCREFRESULT = TypeKind(170)
-TypeKind.OCLINTELSUBGROUPAVCSICRESULT = TypeKind(171)
-TypeKind.OCLINTELSUBGROUPAVCIMERESULTSINGLEREFERENCESTREAMOUT = TypeKind(172)
-TypeKind.OCLINTELSUBGROUPAVCIMERESULTSDUALREFERENCESTREAMOUT = TypeKind(173)
-TypeKind.OCLINTELSUBGROUPAVCIMERESULTSSINGLEREFERENCESTREAMIN = TypeKind(174)
-TypeKind.OCLINTELSUBGROUPAVCIMEDUALREFERENCESTREAMIN = TypeKind(175)
-
-TypeKind.EXTVECTOR = TypeKind(176)
-TypeKind.ATOMIC = TypeKind(177)
-TypeKind.BTFTAGATTRIBUTED = TypeKind(178)
+    INVALID = 0
+    UNEXPOSED = 1
+    VOID = 2
+    BOOL = 3
+    CHAR_U = 4
+    UCHAR = 5
+    CHAR16 = 6
+    CHAR32 = 7
+    USHORT = 8
+    UINT = 9
+    ULONG = 10
+    ULONGLONG = 11
+    UINT128 = 12
+    CHAR_S = 13
+    SCHAR = 14
+    WCHAR = 15
+    SHORT = 16
+    INT = 17
+    LONG = 18
+    LONGLONG = 19
+    INT128 = 20
+    FLOAT = 21
+    DOUBLE = 22
+    LONGDOUBLE = 23
+    NULLPTR = 24
+    OVERLOAD = 25
+    DEPENDENT = 26
+    OBJCID = 27
+    OBJCCLASS = 28
+    OBJCSEL = 29
+    FLOAT128 = 30
+    HALF = 31
+    IBM128 = 40
+    COMPLEX = 100
+    POINTER = 101
+    BLOCKPOINTER = 102
+    LVALUEREFERENCE = 103
+    RVALUEREFERENCE = 104
+    RECORD = 105
+    ENUM = 106
+    TYPEDEF = 107
+    OBJCINTERFACE = 108
+    OBJCOBJECTPOINTER = 109
+    FUNCTIONNOPROTO = 110
+    FUNCTIONPROTO = 111
+    CONSTANTARRAY = 112
+    VECTOR = 113
+    INCOMPLETEARRAY = 114
+    VARIABLEARRAY = 115
+    DEPENDENTSIZEDARRAY = 116
+    MEMBERPOINTER = 117
+    AUTO = 118
+    ELABORATED = 119
+    PIPE = 120
+    OCLIMAGE1DRO = 121
+    OCLIMAGE1DARRAYRO = 122
+    OCLIMAGE1DBUFFERRO = 123
+    OCLIMAGE2DRO = 124
+    OCLIMAGE2DARRAYRO = 125
+    OCLIMAGE2DDEPTHRO = 126
+    OCLIMAGE2DARRAYDEPTHRO = 127
+    OCLIMAGE2DMSAARO = 128
+    OCLIMAGE2DARRAYMSAARO = 129
+    OCLIMAGE2DMSAADEPTHRO = 130
+    OCLIMAGE2DARRAYMSAADEPTHRO = 131
+    OCLIMAGE3DRO = 132
+    OCLIMAGE1DWO = 133
+    OCLIMAGE1DARRAYWO = 134
+    OCLIMAGE1DBUFFERWO = 135
+    OCLIMAGE2DWO = 136
+    OCLIMAGE2DARRAYWO = 137
+    OCLIMAGE2DDEPTHWO = 138
+    OCLIMAGE2DARRAYDEPTHWO = 139
+    OCLIMAGE2DMSAAWO = 140
+    OCLIMAGE2DARRAYMSAAWO = 141
+    OCLIMAGE2DMSAADEPTHWO = 142
+    OCLIMAGE2DARRAYMSAADEPTHWO = 143
+    OCLIMAGE3DWO = 144
+    OCLIMAGE1DRW = 145
+    OCLIMAGE1DARRAYRW = 146
+    OCLIMAGE1DBUFFERRW = 147
+    OCLIMAGE2DRW = 148
+    OCLIMAGE2DARRAYRW = 149
+    OCLIMAGE2DDEPTHRW = 150
+    OCLIMAGE2DARRAYDEPTHRW = 151
+    OCLIMAGE2DMSAARW = 152
+    OCLIMAGE2DARRAYMSAARW = 153
+    OCLIMAGE2DMSAADEPTHRW = 154
+    OCLIMAGE2DARRAYMSAADEPTHRW = 155
+    OCLIMAGE3DRW = 156
+    OCLSAMPLER = 157
+    OCLEVENT = 158
+    OCLQUEUE = 159
+    OCLRESERVEID = 160
+
+    OBJCOBJECT = 161
+    OBJCTYPEPARAM = 162
----------------
DeinAlptraum wrote:

Again changed the enum variant name since it was a duplicate with variant 28 (`OBJCCLASS`). Corrected name taken from https://clang.llvm.org/doxygen/group__CINDEX__TYPES.html

https://github.com/llvm/llvm-project/pull/78114


More information about the cfe-commits mailing list