1 module; 2 3 export module M; 4 5 export const char8_t x = 1; 6 7 template<typename T> requires true 8 const int y = requires { typename T::type; requires T::value; }; 9 10 class co_test {}; 11 12 int f(){ co_test test; return 1; } 13 14 module: private; 15 16 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:1:3 %s | FileCheck --check-prefix=CHECK-MODULE1 %s 17 // CHECK-MODULE1: module; 18 // CHECK-MODULE1: module <#name#>; 19 20 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:3:11 %s | FileCheck --check-prefix=CHECK-MODULE2 %s 21 // CHECK-MODULE2: module <#name#>; 22 23 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:14:3 %s | FileCheck --check-prefix=CHECK-MODULE3 %s 24 // CHECK-MODULE3: module: private; 25 26 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:3:3 %s | FileCheck --check-prefix=CHECK-EXPORT %s 27 // CHECK-EXPORT: export 28 29 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:5:11 %s | FileCheck --check-prefix=CHECK-CONST %s 30 // CHECK-CONST: const 31 // CHECK-CONST: consteval 32 // CHECK-CONST: constexpr 33 // CHECK-CONST: constinit 34 35 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:5:19 %s | FileCheck --check-prefix=CHECK-CHAR %s 36 // CHECK-CHAR: char8_t 37 38 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:8:3 %s | FileCheck --check-prefix=CHECK-CONSTRAINT %s 39 // CHECK-CONSTRAINT: concept 40 // CHECK-CONSTRAINT: const 41 // CHECK-CONSTRAINT: consteval 42 // CHECK-CONSTRAINT: constexpr 43 // CHECK-CONSTRAINT: constinit 44 45 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:7:27 %s | FileCheck --check-prefix=CHECK-REQUIRES2 %s 46 // CHECK-REQUIRES2: requires 47 48 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:8:20 %s | FileCheck -check-prefix=CHECK-REQUIRE %s 49 // CHECK-REQUIRE: [#bool#]requires (<#parameters#>) { 50 // CHECK-REQUIRE: <#requirements#> 51 // CHECK-REQUIRE: } 52 53 // RUN: %clang_cc1 -std=c++20 -code-completion-at=%s:12:13 %s | FileCheck --check-prefix=CHECK-COROUTINE %s 54 // CHECK-COROUTINE: co_await <#expression#> 55 // CHECK-COROUTINE: co_return <#expression#>; 56 // CHECK-COROUTINE: co_yield <#expression#> 57 58