================
@@ -3216,38 +3216,20 @@ def __getitem__(self, key: int) -> CodeCompletionResult:
         return self.results[key]
 
 
-class CodeCompletionResults(ClangObject):
-    def __init__(self, ptr: _Pointer[CCRStructure]):
-        assert isinstance(ptr, POINTER(CCRStructure)) and ptr
-        self.ptr = self._as_parameter_ = ptr
-
-    def from_param(self) -> _Pointer[CCRStructure]:
-        return self._as_parameter_
+class CodeCompletionResults(Structure):
+    _fields_ = [("results", POINTER(CodeCompletionResult)), ("numResults", 
c_uint)]
 
     def __del__(self) -> None:
-        conf.lib.clang_disposeCodeCompleteResults(self)
+        conf.lib.clang_disposeCodeCompleteResults(byref(self))
 
     def __len__(self) -> int:
-        return self.ptr.contents.numResults
+        return self.numResults
 
     def __getitem__(self, key: int) -> CodeCompletionResult:
         if len(self) <= key:
             raise IndexError
 
-        return self.ptr.contents.results[key]
-
-    @property
-    def results(self) -> CCRStructure:
-        warnings.warn(
-            "'CodeCompletionResults.results' will become an implementation 
detail "
-            "with changed behavior in a future release and should not be used 
directly. "
-            "Existing uses of 'CodeCompletionResults.results' should be 
changed "
-            "to directly use 'CodeCompletionResults': it nows supports 
'__len__' "
-            "and '__getitem__', so it can be used the same as "
-            "'CodeCompletionResults.results'.",
-            DeprecationWarning,
-        )
-        return self.ptr.contents
+        return self.results[key]
----------------
Endilll wrote:

I'm surprised you can use square brackets on `POINTER(CodeCompletionResult)`, 
but I see this is what `CCRStructure.__getitem__` used to do, so I guess it's 
fine.

https://github.com/llvm/llvm-project/pull/224678
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to