nridge added inline comments.
================ Comment at: clang-tools-extra/clangd/InlayHints.cpp:81 + if (auto *AT = D->getType()->getContainedAutoType()) { + if (!D->getType()->isDependentType()) { + addInlayHint(D->getLocation(), InlayHintKind::TypeHint, ---------------- nridge wrote: > sammccall wrote: > > why this check vs checking whether AT is deduced? > > (thus fixing the dependent `T` testcase) > > At first I assumed this was the usual "AutoType in AST doesn't store the > > deduced type" problem, but shouldn't it work properly if we're starting at > > the variable type? > Not sure if I'm understanding the suggestion correctly, but if I make the > condition `AT->isDeduced()`, I get an unwanted `auto` hint for `var1` in > `TypeHints.DependentType` as well (and moreover, the hint for `var2` is also > `auto` instead of the desired `T`). > and moreover, the hint for `var2` is also `auto` instead of the desired `T` I've looked into this a bit further, and it looks to me like the `T` isn't even stored in the AST. The type is just recorded as `auto` (and that's what e.g. hover shows too). I suspect the `auto` is only filled in **after** instantiation (i.e. once the initializer expression has a concrete type). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102148/new/ https://reviews.llvm.org/D102148 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits