[clang] [libclang/python] Move SPELLING_CACHE into CodeCompletion (PR #177586)
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Sat Jan 24 09:35:08 PST 2026
================
@@ -3149,6 +3073,107 @@ def __str__(self) -> str:
VERTICAL_SPACE = 20
+class CompletionChunk:
+ class SpellingCacheAlias:
+ """
+ A temporary utility that acts as an alias to CompletionChunk.SPELLING_CACHE.
+ This will be removed without deprecation warning in a future release.
+ Please do not use it directly!
+ """
+
+ deprecation_message = (
+ "'SPELLING_CACHE' has been moved into the scope of 'CompletionChunk' "
+ "and adapted to use 'CompletionChunkKind's as keys instead of their "
+ "enum values. Please adapt all uses of 'SPELLING_CACHE' to use "
+ "'CompletionChunk.SPELLING_CACHE' instead. The old 'SPELLING_CACHE' "
+ "will be removed in a future release."
+ )
+
+ def __getitem__(self, value: int):
+ warnings.warn(self.deprecation_message, DeprecationWarning)
+ return CompletionChunk.SPELLING_CACHE[CompletionChunkKind.from_id(value)]
+
+ def __contains__(self, value: int):
+ warnings.warn(self.deprecation_message, DeprecationWarning)
+ return CompletionChunkKind.from_id(value) in CompletionChunk.SPELLING_CACHE
----------------
Endilll wrote:
I think replicating the behavior `__getitem__` and `__contains__` is enough. We can handle the rest by throwing an error from `__getattr__`.
https://github.com/llvm/llvm-project/pull/177586
More information about the cfe-commits
mailing list