From: Tobias Grosser Date: Sat, 19 Jan 2013 11:03:40 +0000 (+0000) Subject: [cindex.py]: Speed up lookup of the completion kind X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e43d3861d969ad583e10ef7e46c5e08e866dfaa5;p=clang [cindex.py]: Speed up lookup of the completion kind We can directly the number of the kind instead of going through the completionChunkKindMap. Formatting time changes from 0.84 to 0.72 seconds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172899 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py index 581f5e6fef..474e10b434 100644 --- a/bindings/python/clang/cindex.py +++ b/bindings/python/clang/cindex.py @@ -1668,9 +1668,13 @@ class CompletionChunk: return conf.lib.clang_getCompletionChunkText(self.cs, self.key).spelling @CachedProperty - def kind(self): + def __kindNumber(self): res = conf.lib.clang_getCompletionChunkKind(self.cs, self.key) - return completionChunkKindMap[res] + return res + + @CachedProperty + def kind(self): + return completionChunkKindMap[self.__kindNumber] @CachedProperty def string(self): @@ -1683,19 +1687,19 @@ class CompletionChunk: None def isKindOptional(self): - return self.kind == completionChunkKindMap[0] + return self.__kindNumber == 0 def isKindTypedText(self): - return self.kind == completionChunkKindMap[1] + return self.__kindNumber == 1 def isKindPlaceHolder(self): - return self.kind == completionChunkKindMap[3] + return self.__kindNumber == 3 def isKindInformative(self): - return self.kind == completionChunkKindMap[4] + return self.__kindNumber == 4 def isKindResultType(self): - return self.kind == completionChunkKindMap[15] + return self.__kindNumber == 15 completionChunkKindMap = { 0: CompletionChunk.Kind("Optional"),