Skip to content

Commit 6470497

Browse files
Revert "[AST] Traverse the class type loc inside the member type loc."
This reverts commit 7f93cb6. The assertion at RecursiveASTVisitor.h:1169 fails when passed a TypeLocNode. Not sure if the correct fix is to use getTypeLocClass or something else.
1 parent 54a3c2a commit 6470497

File tree

4 files changed

+4
-53
lines changed

4 files changed

+4
-53
lines changed

clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,8 +407,8 @@ TEST(SemanticHighlighting, GetsCorrectTokens) {
407407
}
408408
)cpp",
409409
R"cpp(
410-
template<typename $TemplateParameter[[T]],
411-
void ($TemplateParameter[[T]]::*$TemplateParameter[[method]])(int)>
410+
template<typename $TemplateParameter[[T]],
411+
void (T::*$TemplateParameter[[method]])(int)>
412412
struct $Class[[G]] {
413413
void $Method[[foo]](
414414
$TemplateParameter[[T]] *$Parameter[[O]]) {

clang/include/clang/AST/RecursiveASTVisitor.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,12 +1162,11 @@ DEF_TRAVERSE_TYPELOC(LValueReferenceType,
11621162
DEF_TRAVERSE_TYPELOC(RValueReferenceType,
11631163
{ TRY_TO(TraverseTypeLoc(TL.getPointeeLoc())); })
11641164

1165+
// FIXME: location of base class?
11651166
// We traverse this in the type case as well, but how is it not reached through
11661167
// the pointee type?
11671168
DEF_TRAVERSE_TYPELOC(MemberPointerType, {
1168-
auto *TSI = TL.getClassTInfo();
1169-
assert(TSI);
1170-
TRY_TO(TraverseTypeLoc(TSI->getTypeLoc()));
1169+
TRY_TO(TraverseType(QualType(TL.getTypePtr()->getClass(), 0)));
11711170
TRY_TO(TraverseTypeLoc(TL.getPointeeLoc()));
11721171
})
11731172

clang/unittests/Tooling/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ add_clang_unittest(ToolingTests
4242
RecursiveASTVisitorTests/LambdaDefaultCapture.cpp
4343
RecursiveASTVisitorTests/LambdaExpr.cpp
4444
RecursiveASTVisitorTests/LambdaTemplateParams.cpp
45-
RecursiveASTVisitorTests/MemberPointerTypeLoc.cpp
4645
RecursiveASTVisitorTests/NestedNameSpecifiers.cpp
4746
RecursiveASTVisitorTests/ParenExpr.cpp
4847
RecursiveASTVisitorTests/TemplateArgumentLocTraverser.cpp

clang/unittests/Tooling/RecursiveASTVisitorTests/MemberPointerTypeLoc.cpp

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)