Index: lib/Sema/SemaCodeComplete.cpp =================================================================== --- lib/Sema/SemaCodeComplete.cpp +++ lib/Sema/SemaCodeComplete.cpp @@ -1495,6 +1495,7 @@ Policy.AnonymousTagLocations = false; Policy.SuppressStrongLifetime = true; Policy.SuppressUnwrittenScope = true; + Policy.SuppressScope = true; return Policy; } Index: test/CodeCompletion/call.cpp =================================================================== --- test/CodeCompletion/call.cpp +++ test/CodeCompletion/call.cpp @@ -19,10 +19,10 @@ f(Y(), 0, 0); // RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:19:9 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s // CHECK-CC1: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>) - // CHECK-CC1: f(N::Y y, <#int ZZ#>) + // CHECK-CC1: f(Y y, <#int ZZ#>) // CHECK-CC1-NEXT: f(int i, <#int j#>, int k) // CHECK-CC1-NEXT: f(float x, <#float y#>) // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:19:13 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s - // CHECK-CC2-NOT: f(N::Y y, int ZZ) + // CHECK-CC2-NOT: f(Y y, int ZZ) // CHECK-CC2: f(int i, int j, <#int k#>) } Index: test/CodeCompletion/enum-switch-case-qualified.cpp =================================================================== --- test/CodeCompletion/enum-switch-case-qualified.cpp +++ test/CodeCompletion/enum-switch-case-qualified.cpp @@ -22,11 +22,11 @@ switch (color) { case // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:23:8 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s - // CHECK-CC1: Blue : [#M::N::C::Color#]N::C::Blue - // CHECK-CC1-NEXT: Green : [#M::N::C::Color#]N::C::Green - // CHECK-CC1-NEXT: Indigo : [#M::N::C::Color#]N::C::Indigo - // CHECK-CC1-NEXT: Orange : [#M::N::C::Color#]N::C::Orange - // CHECK-CC1-NEXT: Red : [#M::N::C::Color#]N::C::Red - // CHECK-CC1-NEXT: Violet : [#M::N::C::Color#]N::C::Violet - // CHECK-CC1: Yellow : [#M::N::C::Color#]N::C::Yellow + // CHECK-CC1: Blue : [#Color#]N::C::Blue + // CHECK-CC1-NEXT: Green : [#Color#]N::C::Green + // CHECK-CC1-NEXT: Indigo : [#Color#]N::C::Indigo + // CHECK-CC1-NEXT: Orange : [#Color#]N::C::Orange + // CHECK-CC1-NEXT: Red : [#Color#]N::C::Red + // CHECK-CC1-NEXT: Violet : [#Color#]N::C::Violet + // CHECK-CC1: Yellow : [#Color#]N::C::Yellow Index: test/CodeCompletion/enum-switch-case.cpp =================================================================== --- test/CodeCompletion/enum-switch-case.cpp +++ test/CodeCompletion/enum-switch-case.cpp @@ -20,9 +20,9 @@ case // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:21:8 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s - // CHECK-CC1: Blue : [#N::Color#]N::Blue - // CHECK-CC1-NEXT: Green : [#N::Color#]N::Green - // CHECK-CC1-NEXT: Indigo : [#N::Color#]N::Indigo - // CHECK-CC1-NEXT: Orange : [#N::Color#]N::Orange - // CHECK-CC1-NEXT: Violet : [#N::Color#]N::Violet + // CHECK-CC1: Blue : [#Color#]N::Blue + // CHECK-CC1-NEXT: Green : [#Color#]N::Green + // CHECK-CC1-NEXT: Indigo : [#Color#]N::Indigo + // CHECK-CC1-NEXT: Orange : [#Color#]N::Orange + // CHECK-CC1-NEXT: Violet : [#Color#]N::Violet Index: test/CodeCompletion/qualifiers-as-written.cpp =================================================================== --- /dev/null +++ test/CodeCompletion/qualifiers-as-written.cpp @@ -0,0 +1,11 @@ +struct foo { + typedef int type; + + type method(type, foo::type, ::foo::type, ::foo::foo::type); +}; + +void test() { + foo(). + // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:8:9 %s -o - | FileCheck %s + // CHECK: COMPLETION: method : [#type#]method(<#type#>, <#foo::type#>, <#::foo::type#>, <#::foo::foo::type#>) +} Index: test/CodeCompletion/uninstantiated_params.cpp =================================================================== --- test/CodeCompletion/uninstantiated_params.cpp +++ test/CodeCompletion/uninstantiated_params.cpp @@ -9,5 +9,5 @@ unique_ptr x; x. // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:10:5 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s - // CHECK-CC1: [#void#]reset({#<#unique_ptr::pointer ptr = pointer()#>#}) + // CHECK-CC1: [#void#]reset({#<#pointer ptr = pointer()#>#}) } Index: test/Index/code-completion.cpp =================================================================== --- test/Index/code-completion.cpp +++ test/Index/code-completion.cpp @@ -55,7 +55,7 @@ // CHECK-MEMBER: CXXMethod:{ResultType Z &}{TypedText operator=}{LeftParen (}{Placeholder const Z &}{RightParen )} // CHECK-MEMBER: CXXMethod:{ResultType X &}{Text X::}{TypedText operator=}{LeftParen (}{Placeholder const X &}{RightParen )} // CHECK-MEMBER: CXXMethod:{ResultType Y &}{Text Y::}{TypedText operator=}{LeftParen (}{Placeholder const Y &}{RightParen )} -// CHECK-MEMBER: EnumConstantDecl:{ResultType X::E}{Informative E::}{TypedText Val1} +// CHECK-MEMBER: EnumConstantDecl:{ResultType E}{Informative E::}{TypedText Val1} // CHECK-MEMBER: StructDecl:{TypedText X}{Text ::} // CHECK-MEMBER: StructDecl:{TypedText Y}{Text ::} // CHECK-MEMBER: StructDecl:{TypedText Z}{Text ::} Index: test/Index/complete-cxx-inline-methods.cpp =================================================================== --- test/Index/complete-cxx-inline-methods.cpp +++ test/Index/complete-cxx-inline-methods.cpp @@ -25,7 +25,7 @@ // RUN: c-index-test -code-completion-at=%s:4:9 -std=c++98 %s | FileCheck %s // RUN: c-index-test -code-completion-at=%s:13:7 -std=c++98 %s | FileCheck %s -// CHECK: CXXMethod:{ResultType MyCls::Vec &}{TypedText operator=}{LeftParen (}{Placeholder const MyCls::Vec &}{RightParen )} (79) +// CHECK: CXXMethod:{ResultType Vec &}{TypedText operator=}{LeftParen (}{Placeholder const Vec &}{RightParen )} (79) // CHECK-NEXT: StructDecl:{TypedText Vec}{Text ::} (75) // CHECK-NEXT: FieldDecl:{ResultType int}{TypedText x} (35) // CHECK-NEXT: FieldDecl:{ResultType int}{TypedText y} (35) Index: test/Index/complete-documentation-templates.cpp =================================================================== --- test/Index/complete-documentation-templates.cpp +++ test/Index/complete-documentation-templates.cpp @@ -119,7 +119,7 @@ // CHECK-CC3: FieldDecl:{ResultType int}{TypedText T7}{{.*}}(brief comment: This is T7.) // RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:59:12 %s | FileCheck -check-prefix=CHECK-CC4 %s -// CHECK-CC4: EnumConstantDecl:{ResultType T3::T9}{TypedText T10}{{.*}}(brief comment: This is T10.) +// CHECK-CC4: EnumConstantDecl:{ResultType T9}{TypedText T10}{{.*}}(brief comment: This is T10.) // FIXME: after we implement propagating comments through typedefs, this // typedef for implicit instantiation should pick up the documentation // comment from class template. @@ -140,7 +140,7 @@ // RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:105:20 %s | FileCheck -check-prefix=CHECK-CC7 %s // CHECK-CC7: ClassDecl:{TypedText T105}{{.*}}(brief comment: This is T105.) // CHECK-CC7: EnumDecl:{TypedText T106}{{.*}}(brief comment: This is T106.) -// CHECK-CC7: EnumConstantDecl:{ResultType T100::T106}{TypedText T107}{{.*}}(brief comment: This is T107.) +// CHECK-CC7: EnumConstantDecl:{ResultType T106}{TypedText T107}{{.*}}(brief comment: This is T107.) // FIXME: after we implement propagating comments through typedefs, these two // typedefs for implicit instantiations should pick up the documentation // comment from class template.