]> granicus.if.org Git - clang/commit
Do not add a colon chunk to the code completion of class inheritance access modifiers
authorErik Verbruggen <erikjv@me.com>
Tue, 24 Oct 2017 13:46:58 +0000 (13:46 +0000)
committerErik Verbruggen <erikjv@me.com>
Tue, 24 Oct 2017 13:46:58 +0000 (13:46 +0000)
commit47dbb7c0df89914d76d70960557124df96725c5d
tree820689d59176e57636343e444c273fd74d328e91
parent230376a3f6366a23eb9187be0d6b9a37ead024fe
Do not add a colon chunk to the code completion of class inheritance access modifiers

With enabled CINDEXTEST_CODE_COMPLETE_PATTERNS env option (which enables
IncludeCodePatterns in completion options) code completion after colon
currently suggests access modifiers with 2 completion chunks which is
incorrect.

Example:
class A : <Cursor>B
{
}

Currently we get 'NotImplemented:{TypedText public}{Colon :} (40)'
but the correct line is just 'NotImplemented:{TypedText public} (40)'

The fix introduces more specific scope that occurs between ':' and '{'
It allows us to determine when we don't need to add ':' as a second
chunk to the public/protected/private access modifiers.

Patch by Ivan Donchevskii!

Differential Revision: https://reviews.llvm.org/D38618

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316436 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Sema/Scope.h
lib/Parse/ParseDeclCXX.cpp
lib/Sema/SemaCodeComplete.cpp
test/Index/complete-super.cpp