Mercurial > hg > CbC > CbC_llvm
view clang/test/CodeCompletion/accessibility.cpp @ 180:680fa57a2f20
fix compile errors.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 30 May 2020 17:44:06 +0900 |
parents | 1d019706d866 |
children | 1f2b6ac9f198 |
line wrap: on
line source
class X { public: int pub; protected: int prot; private: int priv; }; class Unrelated { public: static int pub; protected: static int prot; private: static int priv; }; class Y : public X { int test() { this->pub = 10; // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:21:11 %s -o - \ // RUN: | FileCheck -check-prefix=THIS %s // THIS: priv (InBase,Inaccessible) // THIS: prot (InBase) // THIS: pub (InBase) // // Also check implicit 'this->', i.e. complete at the start of the line. // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:21:1 %s -o - \ // RUN: | FileCheck -check-prefix=THIS %s X().pub + 10; // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:32:9 %s -o - \ // RUN: | FileCheck -check-prefix=X-OBJ %s // X-OBJ: priv (Inaccessible) // X-OBJ: prot (Inaccessible) // X-OBJ: pub : [#int#]pub Y().pub + 10; // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:39:9 %s -o - \ // RUN: | FileCheck -check-prefix=Y-OBJ %s // Y-OBJ: priv (InBase,Inaccessible) // Y-OBJ: prot (InBase) // Y-OBJ: pub (InBase) this->X::pub = 10; X::pub = 10; // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:46:14 %s -o - \ // RUN: | FileCheck -check-prefix=THIS-BASE %s // // THIS-BASE: priv (Inaccessible) // THIS-BASE: prot : [#int#]prot // THIS-BASE: pub : [#int#]pub // // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:47:8 %s -o - \ // RUN: | FileCheck -check-prefix=THIS-BASE %s this->Unrelated::pub = 10; // a check we don't crash in this cases. Y().Unrelated::pub = 10; // a check we don't crash in this cases. Unrelated::pub = 10; // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:59:22 %s -o - \ // RUN: | FileCheck -check-prefix=UNRELATED %s // UNRELATED: priv (Inaccessible) // UNRELATED: prot (Inaccessible) // UNRELATED: pub : [#int#]pub // // RUN: not %clang_cc1 -fsyntax-only -code-completion-at=%s:60:20 %s -o - \ // RUN: | FileCheck -check-prefix=UNRELATED %s // RUN: not %clang_cc1 -fsyntax-only -code-completion-at=%s:61:16 %s -o - \ // RUN: | FileCheck -check-prefix=UNRELATED %s } }; class Outer { public: static int pub; protected: static int prot; private: static int priv; class Inner { int test() { Outer::pub = 10; // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:85:14 %s -o - \ // RUN: | FileCheck -check-prefix=OUTER %s // OUTER: priv : [#int#]priv // OUTER: prot : [#int#]prot // OUTER: pub : [#int#]pub // Also check the unqualified case. // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:85:1 %s -o - \ // RUN: | FileCheck -check-prefix=OUTER %s } }; }; class Base { public: int pub; }; class Accessible : public Base { }; class Inaccessible : private Base { }; class Test : public Accessible, public Inaccessible { int test() { this->Accessible::pub = 10; // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:112:23 %s -o - \ // RUN: | FileCheck -check-prefix=ACCESSIBLE %s // ACCESSIBLE: pub (InBase) this->Inaccessible::pub = 10; // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:117:25 %s -o - \ // RUN: | FileCheck -check-prefix=INACCESSIBLE %s // INACCESSIBLE: pub (InBase,Inaccessible) } };