This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGc39dcd2c2bc7: [c++20][clangd] Simplify code using the new `ConceptReference` nodes. (authored by massberg).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D159268/new/ https://reviews.llvm.org/D159268 Files: clang-tools-extra/clangd/FindTarget.cpp clang-tools-extra/clangd/SemanticHighlighting.cpp Index: clang-tools-extra/clangd/SemanticHighlighting.cpp =================================================================== --- clang-tools-extra/clangd/SemanticHighlighting.cpp +++ clang-tools-extra/clangd/SemanticHighlighting.cpp @@ -736,14 +736,6 @@ return true; } - bool VisitAutoTypeLoc(AutoTypeLoc L) { - if (L.isConstrained()) { - H.addAngleBracketTokens(L.getLAngleLoc(), L.getRAngleLoc()); - H.addToken(L.getConceptNameInfo().getLoc(), HighlightingKind::Concept); - } - return true; - } - bool VisitFunctionDecl(FunctionDecl *D) { if (D->isOverloadedOperator()) { const auto AddOpDeclToken = [&](SourceLocation Loc) { Index: clang-tools-extra/clangd/FindTarget.cpp =================================================================== --- clang-tools-extra/clangd/FindTarget.cpp +++ clang-tools-extra/clangd/FindTarget.cpp @@ -742,13 +742,6 @@ // FIXME: handle more complicated cases: more ObjC, designated initializers. llvm::SmallVector<ReferenceLoc> Refs; - void VisitConceptSpecializationExpr(const ConceptSpecializationExpr *E) { - Refs.push_back(ReferenceLoc{E->getNestedNameSpecifierLoc(), - E->getConceptNameLoc(), - /*IsDecl=*/false, - {E->getNamedConcept()}}); - } - void VisitDeclRefExpr(const DeclRefExpr *E) { Refs.push_back(ReferenceLoc{E->getQualifierLoc(), E->getNameInfo().getLoc(), @@ -1063,15 +1056,12 @@ return RecursiveASTVisitor::TraverseConstructorInitializer(Init); } - bool TraverseTypeConstraint(const TypeConstraint *TC) { - // We want to handle all ConceptReferences but RAV is missing a - // polymorphic Visit or Traverse method for it, so we handle - // TypeConstraints specially here. - Out(ReferenceLoc{TC->getNestedNameSpecifierLoc(), - TC->getConceptNameLoc(), + bool VisitConceptReference(ConceptReference *ConceptRef) { + Out(ReferenceLoc{ConceptRef->getNestedNameSpecifierLoc(), + ConceptRef->getConceptNameLoc(), /*IsDecl=*/false, - {TC->getNamedConcept()}}); - return RecursiveASTVisitor::TraverseTypeConstraint(TC); + {ConceptRef->getNamedConcept()}}); + return true; } private:
Index: clang-tools-extra/clangd/SemanticHighlighting.cpp =================================================================== --- clang-tools-extra/clangd/SemanticHighlighting.cpp +++ clang-tools-extra/clangd/SemanticHighlighting.cpp @@ -736,14 +736,6 @@ return true; } - bool VisitAutoTypeLoc(AutoTypeLoc L) { - if (L.isConstrained()) { - H.addAngleBracketTokens(L.getLAngleLoc(), L.getRAngleLoc()); - H.addToken(L.getConceptNameInfo().getLoc(), HighlightingKind::Concept); - } - return true; - } - bool VisitFunctionDecl(FunctionDecl *D) { if (D->isOverloadedOperator()) { const auto AddOpDeclToken = [&](SourceLocation Loc) { Index: clang-tools-extra/clangd/FindTarget.cpp =================================================================== --- clang-tools-extra/clangd/FindTarget.cpp +++ clang-tools-extra/clangd/FindTarget.cpp @@ -742,13 +742,6 @@ // FIXME: handle more complicated cases: more ObjC, designated initializers. llvm::SmallVector<ReferenceLoc> Refs; - void VisitConceptSpecializationExpr(const ConceptSpecializationExpr *E) { - Refs.push_back(ReferenceLoc{E->getNestedNameSpecifierLoc(), - E->getConceptNameLoc(), - /*IsDecl=*/false, - {E->getNamedConcept()}}); - } - void VisitDeclRefExpr(const DeclRefExpr *E) { Refs.push_back(ReferenceLoc{E->getQualifierLoc(), E->getNameInfo().getLoc(), @@ -1063,15 +1056,12 @@ return RecursiveASTVisitor::TraverseConstructorInitializer(Init); } - bool TraverseTypeConstraint(const TypeConstraint *TC) { - // We want to handle all ConceptReferences but RAV is missing a - // polymorphic Visit or Traverse method for it, so we handle - // TypeConstraints specially here. - Out(ReferenceLoc{TC->getNestedNameSpecifierLoc(), - TC->getConceptNameLoc(), + bool VisitConceptReference(ConceptReference *ConceptRef) { + Out(ReferenceLoc{ConceptRef->getNestedNameSpecifierLoc(), + ConceptRef->getConceptNameLoc(), /*IsDecl=*/false, - {TC->getNamedConcept()}}); - return RecursiveASTVisitor::TraverseTypeConstraint(TC); + {ConceptRef->getNamedConcept()}}); + return true; } private:
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits