mirror of
https://github.com/intel/llvm.git
synced 2026-01-21 04:14:03 +08:00
Fix the translation of the PCC_ForInit code-completion context for
C++/C99/Objective-C, so that we properly include types. This fix affects global caching of code-completion results; without caching, the behavior was already correct. llvm-svn: 116757
This commit is contained in:
@@ -2589,9 +2589,15 @@ static enum CodeCompletionContext::Kind mapCodeCompletionContext(Sema &S,
|
||||
|
||||
case Sema::PCC_RecoveryInFunction:
|
||||
return CodeCompletionContext::CCC_Recovery;
|
||||
|
||||
case Sema::PCC_Expression:
|
||||
|
||||
case Sema::PCC_ForInit:
|
||||
if (S.getLangOptions().CPlusPlus || S.getLangOptions().C99 ||
|
||||
S.getLangOptions().ObjC1)
|
||||
return CodeCompletionContext::CCC_ParenthesizedExpression;
|
||||
else
|
||||
return CodeCompletionContext::CCC_Expression;
|
||||
|
||||
case Sema::PCC_Expression:
|
||||
case Sema::PCC_Condition:
|
||||
return CodeCompletionContext::CCC_Expression;
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ typedef signed char BOOL;
|
||||
@implementation A
|
||||
- (int)method:(id)param1 {
|
||||
|
||||
for(BOOL B = YES; ; ) { }
|
||||
}
|
||||
@end
|
||||
|
||||
@@ -21,3 +22,8 @@ typedef signed char BOOL;
|
||||
// CHECK-CC1: macro definition:{TypedText NO} (65)
|
||||
// CHECK-CC1: NotImplemented:{ResultType A *}{TypedText self} (8)
|
||||
// CHECK-CC1: macro definition:{TypedText YES} (65)
|
||||
// RUN: c-index-test -code-completion-at=%s:14:7 %s | FileCheck -check-prefix=CHECK-CC2 %s
|
||||
// RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:14:7 %s | FileCheck -check-prefix=CHECK-CC2 %s
|
||||
// CHECK-CC2: TypedefDecl:{TypedText BOOL} (50)
|
||||
// CHECK-CC2: NotImplemented:{TypedText char} (50)
|
||||
// CHECK-CC2: NotImplemented:{TypedText sizeof}{LeftParen (}{Placeholder expression-or-type}{RightParen )} (30)
|
||||
|
||||
Reference in New Issue
Block a user