<div dir="ltr">Hi, <div><br></div><div>I am a little stuck with <a href="https://reviews.llvm.org/D77598">https://reviews.llvm.org/D77598</a> and would really appreciate any help.</div><div><br></div><div>I am trying to get the proper suffixes in the error messages for the following two examples - <br></div><div><br></div><div><font face="monospace">template<auto N> struct S {};</font></div><div><font face="monospace">template<> struct S<1> { using type = int };</font></div><div><font face="monospace">S<1L>::type t;</font></div><div><br></div><div>which should give the error message with a suffix - </div><div><font face="monospace">error: no type named 'type' in 'S<1L>'; did you mean 'S<1>::type'?</font></div><div><br></div><div>and</div><div><br></div><div><font face="monospace">template <unsigned long long N> struct enable_if_unsigned_long_long {};<br>template <> struct enable_if_unsigned_long_long<1> { typedef int type; }; <br>void test_unsigned_long_long() { enable_if_unsigned_long_long<2>::type i; } </font><br></div><div><br></div><div>which should give no suffix in the error message - </div><div><font face="monospace">error: no type named 'type' in 'enable_if_unsigned_int<2>'; did you mean 'enable_if_unsigned_int<1>::type'?</font><br></div><div><br></div><div>I am trying to find the correct combination that would enable suffix in the first case, but not in the second case. I have been tinkering with checks for DeducedType and DependentType, but always either the suffixes are disabled for both the cases, or enabled for both the cases. </div><div><br></div><div>Can anyone please provide any insight on how to proceed?</div><div><br clear="all"><div>Thanks!</div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Pratyush Das(Reik)<br></div></div></div></div></div></div></div>