================
@@ -138,15 +138,9 @@ std::string getNamespaceScope(const Decl *D) {
 
 std::string printDefinition(const Decl *D, PrintingPolicy PP,
                             const syntax::TokenBuffer &TB) {
-  if (auto *VD = llvm::dyn_cast<VarDecl>(D)) {
-    if (auto *IE = VD->getInit()) {
-      // Initializers might be huge and result in lots of memory allocations in
-      // some catostrophic cases. Such long lists are not useful in hover cards
-      // anyway.
-      if (200 < TB.expandedTokens(IE->getSourceRange()).size())
-        PP.SuppressInitializers = true;
-    }
-  }
+  // Initializers might be huge and result in lots of memory allocations in 
some
+  // catostrophic cases. Such long lists are not useful in hover cards anyway.
+  PP.EntireContentsOfLargeArray = false;
----------------
kadircet wrote:

i am not sure if this completely addresses the previous implementation. e.g. we 
can have a nested initializer list, which never has more than N elements 
directly, but the overall initalizer list might be huge. in such a scenario, 
we'll still end up allocating lots of strings.

so can we keep the old filtering while also setting this flag here? note that 
it'll still be ~incomplete. a more concrete approach could be based on counting 
number of "total" elements in the initializer list, and setting the suppression 
flag based on that. i'd actually lean towards such a solution, WDYT?

https://github.com/llvm/llvm-project/pull/79746
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to