Trass3r added a comment. In D120258#3340357 <https://reviews.llvm.org/D120258#3340357>, @sammccall wrote:
> I'll just suppress the hint here, ParamVarDecl::getLocation() appears to > incorrectly point at the rparen and it's not obvious what we're hinting > without a name in any case. I guess `(auto : type)` would be ok and maybe helpful in some cases. Though one could also argue it's not so important when you ignore the parameter anyway. In D120258#3340390 <https://reviews.llvm.org/D120258#3340390>, @sammccall wrote: > I haven't been able to reproduce this. > > I tried: > > template <int> class Foo { void foo(); }; > > template <int X> > void Foo<X>::foo() { > auto m = [this](auto x) {}; > m(42); > } > > Foo<0> a; > // Foo<1> b; > > And I get no hints at all. (Presumably because we only traverse the primary > template of `foo`, and Foo<X>::foo()::m::operator() is never instantiated, > only Foo<0>::foo()::m::operator() is (with `int`). In my case the lambda gets instantiated with different types depending on the template parameter. Funny enough they disappear for me too if I change `auto` to `auto&&`. Ah ok explicit instantiation made the difference: template <typename T> class Foo { void foo(); }; template <typename T> void Foo<T>::foo() { auto m = [](auto x) {}; // -> (auto x: short: int) m(T(42)); } Foo<int> a; Foo<short> b; template class Foo<int>; template class Foo<short>; Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D120258/new/ https://reviews.llvm.org/D120258 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits