003 File Manager
Current Path:
/usr/src/contrib/llvm-project/clang/lib/Tooling/Refactoring/Rename
usr
/
src
/
contrib
/
llvm-project
/
clang
/
lib
/
Tooling
/
Refactoring
/
Rename
/
📁
..
📄
RenamingAction.cpp
(10.33 KB)
📄
SymbolOccurrences.cpp
(1.44 KB)
📄
USRFinder.cpp
(4.98 KB)
📄
USRFindingAction.cpp
(10.63 KB)
📄
USRLocFinder.cpp
(22.15 KB)
Editing: SymbolOccurrences.cpp
//===--- SymbolOccurrences.cpp - Clang refactoring library ----------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "clang/Tooling/Refactoring/Rename/SymbolOccurrences.h" #include "clang/Tooling/Refactoring/Rename/SymbolName.h" #include "llvm/ADT/STLExtras.h" using namespace clang; using namespace tooling; SymbolOccurrence::SymbolOccurrence(const SymbolName &Name, OccurrenceKind Kind, ArrayRef<SourceLocation> Locations) : Kind(Kind) { ArrayRef<std::string> NamePieces = Name.getNamePieces(); assert(Locations.size() == NamePieces.size() && "mismatching number of locations and lengths"); assert(!Locations.empty() && "no locations"); if (Locations.size() == 1) { RangeOrNumRanges = SourceRange( Locations[0], Locations[0].getLocWithOffset(NamePieces[0].size())); return; } MultipleRanges = std::make_unique<SourceRange[]>(Locations.size()); RangeOrNumRanges.setBegin( SourceLocation::getFromRawEncoding(Locations.size())); for (const auto &Loc : llvm::enumerate(Locations)) { MultipleRanges[Loc.index()] = SourceRange( Loc.value(), Loc.value().getLocWithOffset(NamePieces[Loc.index()].size())); } }
Upload File
Create Folder