hokein added inline comments.

================
Comment at: clang/test/Index/Core/index-instantiated-source.cpp:103
+// explicit instantiations.
+template class Foo<float>;
+Foo<float> t3;
----------------
kadircet wrote:
> yes this is an explicit instantiation and will have TSKKind set properly.
> 
> but i was talking about an explicit specialization in the example above, i.e:
> 
> ```
> template <> class Foo<float>;
> ```
> 
> which will still have `TSK_Undeclared` (I believe, haven't checked).
> 
> 
> and let me make myself clear, I am not opposed to the idea of making this 
> also a ref to the primary template instead of the specialization, I just want 
> to make sure we spell it out in the comments and tests explicitly.
Added an  explicit specialization declaration (but not definition) case.

In this case, the TSK_Kind is ` TSK_ExplicitSpecialization`, so the result is 
`SpecializationDecl`.


================
Comment at: clang/test/Index/Core/index-instantiated-source.cpp:104
+template class Foo<float>;
+Foo<float> t3;
+// CHECK: [[@LINE-1]]:1 | class(Gen)/C++ | Foo | 
c:@N@index_specialization@ST>1#T@Foo | <no-cgname> | Ref,RelCont | rel: 1
----------------
kadircet wrote:
> this is not valid, as you can't define a variable of incomplete type, this 
> needs to be in a function declaration (as I provided in the example) or you 
> can also try making this a pointer as you did below.
> 
> i.e.:
> 
> ```
> void foo(Foo<float>);
> ```
This is valid code, as this is an explicit instantiation (I thought you meat 
explicit instantiation).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74830/new/

https://reviews.llvm.org/D74830



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to