diff options
Diffstat (limited to 'clang/test/Index/complete-memfunc-cvquals.cpp')
-rw-r--r-- | clang/test/Index/complete-memfunc-cvquals.cpp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/clang/test/Index/complete-memfunc-cvquals.cpp b/clang/test/Index/complete-memfunc-cvquals.cpp new file mode 100644 index 0000000..9068ef8 --- /dev/null +++ b/clang/test/Index/complete-memfunc-cvquals.cpp @@ -0,0 +1,86 @@ +// The run lines are below, because this test is line- and +// column-number sensitive. +struct Foo { + void babble() const volatile; + void bar(); + void baz() const; + void bingo() volatile; + void theend() const volatile; +}; + +template<typename T> +struct smart_ptr { + T *operator->(); + const T* operator->() const; +}; + +void text(Foo f, Foo *fp, const Foo &fc, const Foo *fcp, + smart_ptr<Foo> sf, const smart_ptr<Foo> &sfc, Foo volatile *fvp) { + f.bar(); + fp->bar(); + fc.baz(); + fcp->baz(); + sf->bar(); + sfc->baz(); + fvp->babble(); +} + +void Foo::bar() { + +} + +void Foo::baz() const { + +} + +void Foo::bingo() volatile { + +} + +// Check member access expressions. +// RUN: c-index-test -code-completion-at=%s:19:5 %s | FileCheck -check-prefix=CHECK-NOQUALS %s +// RUN: c-index-test -code-completion-at=%s:20:7 %s | FileCheck -check-prefix=CHECK-NOQUALS %s +// RUN: c-index-test -code-completion-at=%s:23:7 %s | FileCheck -check-prefix=CHECK-NOQUALS %s +// CHECK-NOQUALS: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative const volatile} (35) +// CHECK-NOQUALS: CXXMethod:{ResultType void}{TypedText bar}{LeftParen (}{RightParen )} (34) +// CHECK-NOQUALS: CXXMethod:{ResultType void}{TypedText baz}{LeftParen (}{RightParen )}{Informative const} (35) +// CHECK-NOQUALS: CXXMethod:{ResultType void}{TypedText bingo}{LeftParen (}{RightParen )}{Informative volatile} (35) +// RUN: c-index-test -code-completion-at=%s:21:6 %s | FileCheck -check-prefix=CHECK-CONST %s +// RUN: c-index-test -code-completion-at=%s:22:8 %s | FileCheck -check-prefix=CHECK-CONST %s +// RUN: c-index-test -code-completion-at=%s:24:8 %s | FileCheck -check-prefix=CHECK-CONST %s +// CHECK-CONST: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative const volatile} (35) +// CHECK-CONST-NOT: bar +// CHECK-CONST: CXXMethod:{ResultType void}{TypedText baz}{LeftParen (}{RightParen )}{Informative const} (34) +// CHECK-CONST-NOT: bingo +// CHECK-CONST: theend +// RUN: c-index-test -code-completion-at=%s:25:8 %s | FileCheck -check-prefix=CHECK-VOLATILE %s +// CHECK-VOLATILE: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative const volatile} (35) +// CHECK-VOLATILE-NOT: baz +// CHECK-VOLATILE: CXXMethod:{ResultType void}{TypedText bingo}{LeftParen (}{RightParen )}{Informative volatile} (34) + +// Check implicit member access expressions. +// RUN: c-index-test -code-completion-at=%s:29:2 %s | FileCheck -check-prefix=CHECK-IMPLICIT-NOQUALS %s +// CHECK-IMPLICIT-NOQUALS: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative const volatile} (35) +// CHECK-IMPLICIT-NOQUALS: CXXMethod:{ResultType void}{TypedText bar}{LeftParen (}{RightParen )} (34) +// CHECK-IMPLICIT-NOQUALS: CXXMethod:{ResultType void}{TypedText baz}{LeftParen (}{RightParen )}{Informative const} (35) +// CHECK-IMPLICIT-NOQUALS: CXXMethod:{ResultType void}{TypedText bingo}{LeftParen (}{RightParen )}{Informative volatile} (35) + +// RUN: c-index-test -code-completion-at=%s:33:1 %s | FileCheck -check-prefix=CHECK-IMPLICIT-CONST %s +// CHECK-IMPLICIT-CONST: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative const volatile} (35) +// CHECK-IMPLICIT-CONST-NOT: bar +// CHECK-IMPLICIT-CONST: CXXMethod:{ResultType void}{TypedText baz}{LeftParen (}{RightParen )}{Informative const} (34) +// CHECK-IMPLICIT-CONST-NOT: bingo +// CHECK-IMPLICIT-CONST: theend + +// RUN: c-index-test -code-completion-at=%s:37:1 %s | FileCheck -check-prefix=CHECK-IMPLICIT-VOLATILE %s +// CHECK-IMPLICIT-VOLATILE: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative const volatile} (35) +// CHECK-IMPLICIT-VOLATILE-NOT: baz +// CHECK-IMPLICIT-VOLATILE: CXXMethod:{ResultType void}{TypedText bingo}{LeftParen (}{RightParen )}{Informative volatile} (34) + +// RUN: c-index-test -code-completion-at=%s:4:17 %s | FileCheck -check-prefix=CHECK-CVQUAL-AFTER %s +// CHECK-CVQUAL-AFTER: NotImplemented:{TypedText const} (40) +// CHECK-CVQUAL-AFTER: NotImplemented:{TypedText volatile} (40) + +// RUN: c-index-test -code-completion-at=%s:4:23 %s | FileCheck -check-prefix=CHECK-CVQUAL-AFTER2 %s +// CHECK-CVQUAL-AFTER2-NOT: NotImplemented:{TypedText const} (40) +// CHECK-CVQUAL-AFTER2: NotImplemented:{TypedText volatile} (40) |