tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit aacea06b4085448e4548c5740be6c436c5111b3c
parent 4b04feb633a9d9dd0b1e769341db2f8335a0177e
Author: Tooru Fujisawa <arai_a@mac.com>
Date:   Fri, 28 Nov 2025 23:39:39 +0000

Bug 2002475 - Emit nestingRange for var decl with 10+ lines. r=asuth

Differential Revision: https://phabricator.services.mozilla.com/D274404

Diffstat:
Mbuild/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp | 23+++++++++++++++++++++++
1 file changed, 23 insertions(+), 0 deletions(-)

diff --git a/build/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp b/build/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp @@ -443,6 +443,25 @@ private: return result; } + bool needsNestingRangeForVarDecl(SourceRange& Range) { + std::pair<FileID, unsigned> Begin = SM.getDecomposedExpansionLoc(Range.getBegin()); + std::pair<FileID, unsigned> End = SM.getDecomposedExpansionLoc(Range.getEnd()); + + bool IsInvalid; + unsigned Line1 = SM.getLineNumber(Begin.first, Begin.second, &IsInvalid); + if (IsInvalid) { + return false; + } + unsigned Line2 = SM.getLineNumber(End.first, End.second, &IsInvalid); + if (IsInvalid) { + return false; + } + + static constexpr unsigned MinVarDeclNestingRangeLines = 10; + + return Line2 > Line1 + MinVarDeclNestingRangeLines; + } + // Convert SourceRange to "line:column-line:column". // In the resulting string rep, line is 1-based, column is 0-based. std::string fullRangeToString(SourceRange Range) { @@ -2185,6 +2204,10 @@ public: ? "decl" : "def"; PrettyKind = "variable"; + + if (needsNestingRangeForVarDecl(PeekRange)) { + NestingRange = PeekRange; + } } else if (isa<NamespaceDecl>(D) || isa<NamespaceAliasDecl>(D)) { Kind = "def"; PrettyKind = "namespace";