[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / deduction-guide3.cppm
blob1165dd40bcfb8c9267132506f69ac831cc0176e0
1 // RUN: rm -rf %t
2 // RUN: mkdir %t
3 // RUN: split-file %s %t
4 //
5 // RUN: %clang_cc1 -std=c++20 %t/Templ.cppm -emit-module-interface -o %t/Templ.pcm
6 // RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -verify -fsyntax-only
8 // RUN: %clang_cc1 -std=c++20 %t/Templ.cppm -emit-reduced-module-interface -o %t/Templ.pcm
9 // RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -verify -fsyntax-only
11 //--- Templ.cppm
12 export module Templ;
13 template <typename T>
14 class Templ {
15 public:
16     Templ(T a) {}
19 template<typename T>
20 Templ(T t) -> Templ<T>;
22 //--- Use.cpp
23 import Templ;
24 void func() {
25     Templ t(5); // expected-error {{declaration of 'Templ' must be imported from module 'Templ' before it is required}}
26                 // expected-error@-1 {{unknown type name 'Templ'}}
27                 // expected-note@Templ.cppm:3 {{declaration here is not visible}}