Home | History | Annotate | Download | only in Index
      1 // The run lines are below, because this test is line- and
      2 // column-number sensitive.
      3 struct Foo {
      4   void babble() const volatile;
      5   void bar();
      6   void baz() const;
      7   void bingo() volatile;
      8   void theend() const volatile;
      9 };
     10 
     11 template<typename T>
     12 struct smart_ptr {
     13   T *operator->();
     14   const T* operator->() const;
     15 };
     16 
     17 void text(Foo f, Foo *fp, const Foo &fc, const Foo *fcp,
     18           smart_ptr<Foo> sf, const smart_ptr<Foo> &sfc, Foo volatile *fvp) {
     19   f.bar();
     20   fp->bar();
     21   fc.baz();
     22   fcp->baz();
     23   sf->bar();
     24   sfc->baz();
     25   fvp->babble();
     26 }
     27 
     28 void Foo::bar() {
     29 
     30 }
     31 
     32 void Foo::baz() const {
     33 
     34 }
     35 
     36 void Foo::bingo() volatile {
     37 
     38 }
     39 
     40 // Check member access expressions.
     41 // RUN: c-index-test -code-completion-at=%s:19:5 %s | FileCheck -check-prefix=CHECK-NOQUALS %s
     42 // RUN: c-index-test -code-completion-at=%s:20:7 %s | FileCheck -check-prefix=CHECK-NOQUALS %s
     43 // RUN: c-index-test -code-completion-at=%s:23:7 %s | FileCheck -check-prefix=CHECK-NOQUALS %s
     44 // CHECK-NOQUALS: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative  const volatile} (35)
     45 // CHECK-NOQUALS: CXXMethod:{ResultType void}{TypedText bar}{LeftParen (}{RightParen )} (34)
     46 // CHECK-NOQUALS: CXXMethod:{ResultType void}{TypedText baz}{LeftParen (}{RightParen )}{Informative  const} (35)
     47 // CHECK-NOQUALS: CXXMethod:{ResultType void}{TypedText bingo}{LeftParen (}{RightParen )}{Informative  volatile} (35)
     48 // RUN: c-index-test -code-completion-at=%s:21:6 %s | FileCheck -check-prefix=CHECK-CONST %s
     49 // RUN: c-index-test -code-completion-at=%s:22:8 %s | FileCheck -check-prefix=CHECK-CONST %s
     50 // RUN: c-index-test -code-completion-at=%s:24:8 %s | FileCheck -check-prefix=CHECK-CONST %s
     51 // CHECK-CONST: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative  const volatile} (35)
     52 // CHECK-CONST-NOT: bar
     53 // CHECK-CONST: CXXMethod:{ResultType void}{TypedText baz}{LeftParen (}{RightParen )}{Informative  const} (34)
     54 // CHECK-CONST-NOT: bingo
     55 // CHECK-CONST: theend
     56 // RUN: c-index-test -code-completion-at=%s:25:8 %s | FileCheck -check-prefix=CHECK-VOLATILE %s
     57 // CHECK-VOLATILE: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative  const volatile} (35)
     58 // CHECK-VOLATILE-NOT: baz
     59 // CHECK-VOLATILE: CXXMethod:{ResultType void}{TypedText bingo}{LeftParen (}{RightParen )}{Informative  volatile} (34)
     60 
     61 // Check implicit member access expressions.
     62 // RUN: c-index-test -code-completion-at=%s:29:2 %s | FileCheck -check-prefix=CHECK-IMPLICIT-NOQUALS %s
     63 // CHECK-IMPLICIT-NOQUALS: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative  const volatile} (35)
     64 // CHECK-IMPLICIT-NOQUALS: CXXMethod:{ResultType void}{TypedText bar}{LeftParen (}{RightParen )} (34)
     65 // CHECK-IMPLICIT-NOQUALS: CXXMethod:{ResultType void}{TypedText baz}{LeftParen (}{RightParen )}{Informative  const} (35)
     66 // CHECK-IMPLICIT-NOQUALS: CXXMethod:{ResultType void}{TypedText bingo}{LeftParen (}{RightParen )}{Informative  volatile} (35)
     67 
     68 // RUN: c-index-test -code-completion-at=%s:33:1 %s | FileCheck -check-prefix=CHECK-IMPLICIT-CONST %s
     69 // CHECK-IMPLICIT-CONST: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative  const volatile} (35)
     70 // CHECK-IMPLICIT-CONST-NOT: bar
     71 // CHECK-IMPLICIT-CONST: CXXMethod:{ResultType void}{TypedText baz}{LeftParen (}{RightParen )}{Informative  const} (34)
     72 // CHECK-IMPLICIT-CONST-NOT: bingo
     73 // CHECK-IMPLICIT-CONST: theend
     74 
     75 // RUN: c-index-test -code-completion-at=%s:37:1 %s | FileCheck -check-prefix=CHECK-IMPLICIT-VOLATILE %s
     76 // CHECK-IMPLICIT-VOLATILE: CXXMethod:{ResultType void}{TypedText babble}{LeftParen (}{RightParen )}{Informative  const volatile} (35)
     77 // CHECK-IMPLICIT-VOLATILE-NOT: baz
     78 // CHECK-IMPLICIT-VOLATILE: CXXMethod:{ResultType void}{TypedText bingo}{LeftParen (}{RightParen )}{Informative  volatile} (34)
     79 
     80 // RUN: c-index-test -code-completion-at=%s:4:17 %s | FileCheck -check-prefix=CHECK-CVQUAL-AFTER %s
     81 // CHECK-CVQUAL-AFTER: NotImplemented:{TypedText const} (40)
     82 // CHECK-CVQUAL-AFTER: NotImplemented:{TypedText volatile} (40)
     83 
     84 // RUN: c-index-test -code-completion-at=%s:4:23 %s | FileCheck -check-prefix=CHECK-CVQUAL-AFTER2 %s
     85 // CHECK-CVQUAL-AFTER2-NOT: NotImplemented:{TypedText const} (40)
     86 // CHECK-CVQUAL-AFTER2: NotImplemented:{TypedText volatile} (40)
     87