|  | int function(int x) { | 
|  | return x + 1; | 
|  | } | 
|  |  | 
|  | int variable = 0; | 
|  |  | 
|  | class Class { | 
|  | public: | 
|  | Class() { } | 
|  |  | 
|  | int method(int x) { | 
|  | return x + 1; | 
|  | } | 
|  |  | 
|  | virtual void virtualMethod() { | 
|  | } | 
|  |  | 
|  | static void staticMethod() { | 
|  | } | 
|  |  | 
|  | static int staticVar; | 
|  | }; | 
|  |  | 
|  | class SubClass : public Class { | 
|  | void virtualMethod() override final { | 
|  | } | 
|  | }; | 
|  |  | 
|  | struct Struct { | 
|  | }; | 
|  |  | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:5:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:11:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s | 
|  | // CHECK-TOP-LEVEL: alignas(<#expression#>) | 
|  | // CHECK-TOP-LEVEL: constexpr | 
|  | // CHECK-TOP-LEVEL: static_assert(<#expression#>, <#message#>) | 
|  | // CHECK-TOP-LEVEL: thread_local | 
|  | // CHECK-TOP-LEVEL-NOT: final | 
|  | // CHECK-TOP-LEVEL-NOT: noexcept | 
|  |  | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:14 %s | FileCheck --check-prefix=CHECK-PARAM %s | 
|  | // CHECK-PARAM-NOT: alignas | 
|  | // CHECK-PARAM-NOT: constexpr | 
|  | // CHECK-PARAM-NOT: final | 
|  | // CHECK-PARAM-NOT: thread_local | 
|  |  | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:21:10 %s | FileCheck --check-prefix=CHECK-STATICVAR1 %s | 
|  | // CHECK-STATICVAR1: constexpr | 
|  | // CHECK-STATICVAR1: thread_local | 
|  |  | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:7:13 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:24:16 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:29:15 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s | 
|  | // CHECK-CLASS-QUALIFIER: final | 
|  |  | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:21 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:9:11 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:18:30 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s | 
|  | // CHECK-FUNCTION-QUALIFIER: noexcept | 
|  | // CHECK-FUNCTION-QUALIFIER-NOT: final | 
|  | // CHECK-FUNCTION-QUALIFIER-NOT: override | 
|  |  | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:11:21 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:15:32 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:24 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s | 
|  | // CHECK-METHOD-QUALIFIER: final | 
|  | // CHECK-METHOD-QUALIFIER: noexcept | 
|  | // CHECK-METHOD-QUALIFIER: override | 
|  |  | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:33 %s | FileCheck --check-prefix=CHECK-OVERRIDE-SPECIFIED %s | 
|  | // CHECK-OVERRIDE-SPECIFIED: final | 
|  | // CHECK-OVERRIDE-SPECIFIED: noexcept | 
|  | // CHECK-OVERRIDE-SPECIFIED-NOT: override | 
|  |  | 
|  | // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:39 %s | FileCheck --check-prefix=CHECK-OVERRIDE-FINAL-SPECIFIED %s | 
|  | // CHECK-OVERRIDE-FINAL-SPECIFIED: noexcept | 
|  | // CHECK-OVERRIDE-FINAL-SPECIFIED-NOT: final | 
|  | // CHECK-OVERRIDE-FINAL-SPECIFIED-NOT: override |