Skip to content

Commit 1143208

Browse files
authored
Merge pull request #26 from akyrtzi/track-test-symbols-in-units
Keep track and report the unit files that contain test symbols
2 parents 5cd214b + 79fbaac commit 1143208

15 files changed

+107
-30
lines changed

include/IndexStoreDB/Database/ImportTransaction.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ class INDEXSTOREDB_EXPORT ImportTransaction {
3131

3232
IDCode getUnitCode(StringRef unitName);
3333
IDCode addProviderName(StringRef name, bool *wasInserted = nullptr);
34+
// Marks a provider as containing test symbols.
35+
void setProviderContainsTestSymbols(IDCode provider);
36+
bool providerContainsTestSymbols(IDCode provider);
3437
/// \returns a IDCode of the USR.
3538
IDCode addSymbolInfo(IDCode provider,
3639
StringRef USR, StringRef symbolName, SymbolInfo symInfo,
@@ -56,6 +59,7 @@ class INDEXSTOREDB_EXPORT UnitDataImport {
5659
CanonicalFilePath Sysroot;
5760
llvm::sys::TimePoint<> ModTime;
5861
Optional<bool> IsSystem;
62+
Optional<bool> HasTestSymbols;
5963
Optional<SymbolProviderKind> SymProviderKind;
6064
std::string Target;
6165

@@ -83,6 +87,7 @@ class INDEXSTOREDB_EXPORT UnitDataImport {
8387
bool isMissing() const { return IsMissing; }
8488
bool isUpToDate() const { return IsUpToDate; }
8589
Optional<bool> getIsSystem() const { return IsSystem; }
90+
Optional<bool> getHasTestSymbols() const { return HasTestSymbols; }
8691
Optional<SymbolProviderKind> getSymbolProviderKind() const { return SymProviderKind; }
8792

8893
IDCode getPrevMainFileCode() const {

include/IndexStoreDB/Database/ReadTransaction.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ class INDEXSTOREDB_EXPORT ReadTransaction {
5353
bool foreachProviderAndFileCodeReference(function_ref<bool(IDCode unitCode)> unitFilter,
5454
function_ref<bool(IDCode provider, IDCode pathCode, IDCode unitCode, llvm::sys::TimePoint<> modTime, IDCode moduleNameCode, bool isSystem)> receiver);
5555

56+
bool foreachProviderContainingTestSymbols(function_ref<bool(IDCode provider)> receiver);
57+
5658
/// Returns USR codes in batches.
5759
bool foreachUSROfGlobalSymbolKind(SymbolKind symKind, llvm::function_ref<bool(ArrayRef<IDCode> usrCodes)> receiver);
5860

include/IndexStoreDB/Database/UnitInfo.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ struct UnitInfo {
4646
bool HasMainFile;
4747
bool HasSysroot;
4848
bool IsSystem;
49+
bool HasTestSymbols;
4950
SymbolProviderKind SymProviderKind;
5051
ArrayRef<IDCode> FileDepends;
5152
ArrayRef<IDCode> UnitDepends;

include/IndexStoreDB/Index/IndexSystem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class INDEXSTOREDB_EXPORT IndexSystem {
126126

127127
/// Returns unit test class/method occurrences that are referenced from units associated with the provided output file paths.
128128
/// \returns `false` if the receiver returned `false` to stop receiving symbols, `true` otherwise.
129-
bool foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<StringRef> FilePaths,
129+
bool foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<CanonicalFilePathRef> FilePaths,
130130
function_ref<bool(SymbolOccurrenceRef Occur)> Receiver);
131131

132132
private:

include/IndexStoreDB/Index/StoreUnitInfo.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,18 @@ struct StoreUnitInfo {
2424
std::string UnitName;
2525
CanonicalFilePath MainFilePath;
2626
CanonicalFilePath OutFilePath;
27+
bool HasTestSymbols = false;
2728
llvm::sys::TimePoint<> ModTime;
29+
30+
StoreUnitInfo() = default;
31+
StoreUnitInfo(std::string unitName, CanonicalFilePath mainFilePath,
32+
CanonicalFilePath outFilePath, bool hasTestSymbols,
33+
llvm::sys::TimePoint<> modTime)
34+
: UnitName(unitName),
35+
MainFilePath(mainFilePath),
36+
OutFilePath(outFilePath),
37+
HasTestSymbols(hasTestSymbols),
38+
ModTime(modTime) {}
2839
};
2940

3041
} // namespace index

include/IndexStoreDB/Index/SymbolIndex.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class SymbolIndex {
8383
bool foreachCanonicalSymbolOccurrenceByKind(SymbolKind symKind, bool workspaceOnly,
8484
function_ref<bool(SymbolOccurrenceRef Occur)> Receiver);
8585

86-
bool foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<CanonicalFilePath> FilePaths,
86+
bool foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<CanonicalFilePathRef> FilePaths,
8787
function_ref<bool(SymbolOccurrenceRef Occur)> Receiver);
8888

8989
private:

lib/Database/Database.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
using namespace IndexStoreDB;
3333
using namespace IndexStoreDB::db;
3434

35-
const unsigned Database::DATABASE_FORMAT_VERSION = 12;
35+
const unsigned Database::DATABASE_FORMAT_VERSION = 13;
3636

3737
static const char *DeadProcessDBSuffix = "-dead";
3838

@@ -144,7 +144,7 @@ Database::Implementation::create(StringRef path, bool readonly, Optional<size_t>
144144
db->SavedPath = savedPathBuf.str();
145145
db->ProcessPath = processPathBuf.str();
146146
db->DBEnv = lmdb::env::create();
147-
db->DBEnv.set_max_dbs(13);
147+
db->DBEnv.set_max_dbs(14);
148148

149149
// Start with 64MB. We'll update with the actual size after we open the database.
150150
db->MapSize = initialDBSize.getValueOr(64ULL*1024ULL*1024ULL);
@@ -168,6 +168,7 @@ Database::Implementation::create(StringRef path, bool readonly, Optional<size_t>
168168
db->DBISymbolProvidersByUSR = lmdb::dbi::open(txn, "usrs", MDB_INTEGERKEY|MDB_DUPSORT|MDB_DUPFIXED|MDB_CREATE);
169169
db->DBISymbolProvidersByUSR.set_dupsort(txn, providersForUSR_compare);
170170
db->DBISymbolProviderNameByCode = lmdb::dbi::open(txn, "providers", MDB_INTEGERKEY|MDB_CREATE);
171+
db->DBISymbolProvidersWithTestSymbols = lmdb::dbi::open(txn, "providers-with-test-symbols", MDB_INTEGERKEY|MDB_CREATE);
171172
db->DBIUSRsBySymbolName = lmdb::dbi::open(txn, "symbol-names", MDB_DUPSORT|MDB_DUPFIXED|MDB_INTEGERDUP|MDB_CREATE);
172173
db->DBIUSRsByGlobalSymbolKind = lmdb::dbi::open(txn, "symbol-kinds", MDB_INTEGERKEY|MDB_DUPSORT|MDB_DUPFIXED|MDB_INTEGERDUP|MDB_CREATE);
173174
db->DBIDirNameByCode = lmdb::dbi::open(txn, "directories", MDB_INTEGERKEY|MDB_CREATE);
@@ -240,7 +241,7 @@ UnitInfo Database::Implementation::getUnitInfo(IDCode unitCode, lmdb::txn &Txn)
240241
llvm::sys::TimePoint<> modTime = llvm::sys::TimePoint<>(std::chrono::nanoseconds(infoData.NanoTime));
241242
return UnitInfo{ unitName, unitCode, modTime,
242243
infoData.OutFileCode, infoData.MainFileCode, infoData.SysrootCode, infoData.TargetCode,
243-
infoData.HasMainFile, infoData.HasSysroot, infoData.IsSystem,
244+
infoData.HasMainFile, infoData.HasSysroot, infoData.IsSystem, infoData.HasTestSymbols,
244245
SymbolProviderKind(infoData.SymProviderKind),
245246
fileDepends, unitDepends, providerDepends };
246247
}

lib/Database/DatabaseImpl.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class Database::Implementation {
2727
lmdb::env DBEnv{nullptr};
2828
lmdb::dbi DBISymbolProvidersByUSR{0};
2929
lmdb::dbi DBISymbolProviderNameByCode{0};
30+
lmdb::dbi DBISymbolProvidersWithTestSymbols{0};
3031
lmdb::dbi DBIUSRsBySymbolName{0};
3132
lmdb::dbi DBIUSRsByGlobalSymbolKind{0};
3233
lmdb::dbi DBIDirNameByCode{0};
@@ -59,6 +60,7 @@ class Database::Implementation {
5960
lmdb::env &getDBEnv() { return DBEnv; }
6061
lmdb::dbi &getDBISymbolProvidersByUSR() { return DBISymbolProvidersByUSR; }
6162
lmdb::dbi &getDBISymbolProviderNameByCode() { return DBISymbolProviderNameByCode; }
63+
lmdb::dbi &getDBISymbolProvidersWithTestSymbols() { return DBISymbolProvidersWithTestSymbols; }
6264
lmdb::dbi &getDBIUSRsBySymbolName() { return DBIUSRsBySymbolName; }
6365
lmdb::dbi &getDBIUSRsByGlobalSymbolKind() { return DBIUSRsByGlobalSymbolKind; }
6466
lmdb::dbi &getDBIDirNameByCode() { return DBIDirNameByCode; }
@@ -137,6 +139,7 @@ struct UnitInfoData {
137139
bool HasMainFile : 1;
138140
bool HasSysroot : 1;
139141
bool IsSystem : 1;
142+
bool HasTestSymbols : 1;
140143
uint32_t FileDependSize;
141144
uint32_t UnitDependSize;
142145
uint32_t ProviderDependSize;

lib/Database/ImportTransaction.cpp

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@ IDCode ImportTransaction::Implementation::addProviderName(StringRef name, bool *
3838
return code;
3939
}
4040

41+
void ImportTransaction::Implementation::setProviderContainsTestSymbols(IDCode provider) {
42+
lmdb::val key{&provider, sizeof(provider)};
43+
lmdb::val val{nullptr, 0};
44+
DBase->impl().getDBISymbolProvidersWithTestSymbols().put(Txn, key, val, MDB_NOOVERWRITE);
45+
}
46+
47+
bool ImportTransaction::Implementation::providerContainsTestSymbols(IDCode provider) {
48+
return DBase->impl().getDBISymbolProvidersWithTestSymbols().get(Txn, provider);
49+
}
50+
4151
IDCode ImportTransaction::Implementation::addSymbolInfo(IDCode provider, StringRef USR, StringRef symbolName,
4252
SymbolInfo symInfo,
4353
SymbolRoleSet roles, SymbolRoleSet relatedRoles) {
@@ -225,7 +235,7 @@ void ImportTransaction::Implementation::addUnitInfo(const UnitInfo &info) {
225235
nanoTime,
226236
static_cast<uint16_t>(info.UnitName.size()),
227237
uint8_t(info.SymProviderKind),
228-
info.HasMainFile, info.HasSysroot, info.IsSystem,
238+
info.HasMainFile, info.HasSysroot, info.IsSystem, info.HasTestSymbols,
229239
static_cast<uint32_t>(info.FileDepends.size()),
230240
static_cast<uint32_t>(info.UnitDepends.size()),
231241
static_cast<uint32_t>(info.ProviderDepends.size()),
@@ -350,6 +360,14 @@ IDCode ImportTransaction::addProviderName(StringRef name, bool *wasInserted) {
350360
return Impl->addProviderName(name, wasInserted);
351361
}
352362

363+
void ImportTransaction::setProviderContainsTestSymbols(IDCode provider) {
364+
return Impl->setProviderContainsTestSymbols(provider);
365+
}
366+
367+
bool ImportTransaction::providerContainsTestSymbols(IDCode provider) {
368+
return Impl->providerContainsTestSymbols(provider);
369+
}
370+
353371
IDCode ImportTransaction::addSymbolInfo(IDCode provider, StringRef USR, StringRef symbolName,
354372
SymbolInfo symInfo,
355373
SymbolRoleSet roles, SymbolRoleSet relatedRoles) {
@@ -383,6 +401,7 @@ UnitDataImport::UnitDataImport(ImportTransaction &import, StringRef unitName, ll
383401
return; // Does not already exist.
384402

385403
IsSystem = dbUnit.IsSystem;
404+
HasTestSymbols = dbUnit.HasTestSymbols;
386405
SymProviderKind = dbUnit.SymProviderKind;
387406
PrevMainFileCode = dbUnit.MainFileCode;
388407
PrevOutFileCode = dbUnit.OutFileCode;
@@ -532,6 +551,15 @@ void UnitDataImport::commit() {
532551
import.addTargetName(Target);
533552
}
534553

554+
// Update the `HasTestSymbols` value.
555+
HasTestSymbols = false;
556+
for (const UnitInfo::Provider &prov : ProviderDepends) {
557+
if (import.providerContainsTestSymbols(prov.ProviderCode)) {
558+
HasTestSymbols = true;
559+
break;
560+
}
561+
}
562+
535563
UnitInfo info{
536564
UnitName,
537565
UnitCode,
@@ -543,6 +571,7 @@ void UnitDataImport::commit() {
543571
hasMainFile,
544572
hasSysroot,
545573
IsSystem.getValue(),
574+
HasTestSymbols.getValue(),
546575
SymProviderKind.getValue(),
547576
FileDepends,
548577
UnitDepends,

lib/Database/ImportTransactionImpl.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ class ImportTransaction::Implementation {
2929

3030
IDCode getUnitCode(StringRef unitName);
3131
IDCode addProviderName(StringRef name, bool *wasInserted);
32+
// Marks a provider as containing test symbols.
33+
void setProviderContainsTestSymbols(IDCode provider);
34+
bool providerContainsTestSymbols(IDCode provider);
3235
/// \returns a IDCode of the USR.
3336
IDCode addSymbolInfo(IDCode provider, StringRef USR, StringRef symbolName, SymbolInfo symInfo,
3437
SymbolRoleSet roles, SymbolRoleSet relatedRoles);

lib/Database/ReadTransaction.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,20 @@ static bool passMultipleIDCodes(lmdb::cursor &cursor, lmdb::val &key, lmdb::val
259259
return true;
260260
}
261261

262+
bool ReadTransaction::Implementation::foreachProviderContainingTestSymbols(function_ref<bool(IDCode provider)> receiver) {
263+
auto &db = DBase->impl();
264+
auto cursor = lmdb::cursor::open(Txn, db.getDBISymbolProvidersWithTestSymbols());
265+
266+
lmdb::val key{};
267+
lmdb::val value{};
268+
while (cursor.get(key, value, MDB_NEXT)) {
269+
IDCode providerCode = *(IDCode*)key.data();
270+
if (!receiver(providerCode))
271+
return false;
272+
}
273+
return true;
274+
}
275+
262276
bool ReadTransaction::Implementation::foreachUSROfGlobalSymbolKind(SymbolKind symKind,
263277
llvm::function_ref<bool(ArrayRef<IDCode> usrCodes)> receiver) {
264278
auto globalKindOpt = getGlobalSymbolKind(symKind);
@@ -665,6 +679,10 @@ bool ReadTransaction::foreachProviderAndFileCodeReference(
665679
return Impl->foreachProviderAndFileCodeReference(std::move(unitFilter), std::move(receiver));
666680
}
667681

682+
bool ReadTransaction::foreachProviderContainingTestSymbols(function_ref<bool(IDCode provider)> receiver) {
683+
return Impl->foreachProviderContainingTestSymbols(std::move(receiver));
684+
}
685+
668686
bool ReadTransaction::foreachUSROfGlobalSymbolKind(SymbolKind symKind, llvm::function_ref<bool(ArrayRef<IDCode> usrCodes)> receiver) {
669687
return Impl->foreachUSROfGlobalSymbolKind(symKind, std::move(receiver));
670688
}

lib/Database/ReadTransactionImpl.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ class ReadTransaction::Implementation {
5757
bool foreachProviderAndFileCodeReference(function_ref<bool(IDCode unitCode)> unitFilter,
5858
function_ref<bool(IDCode provider, IDCode pathCode, IDCode unitCode, llvm::sys::TimePoint<> modTime, IDCode moduleNameCode, bool isSystem)> receiver);
5959

60+
bool foreachProviderContainingTestSymbols(function_ref<bool(IDCode provider)> receiver);
61+
6062
bool foreachUSROfGlobalSymbolKind(SymbolKind symKind, llvm::function_ref<bool(ArrayRef<IDCode> usrCodes)> receiver);
6163
bool foreachUSROfGlobalUnitTestSymbol(llvm::function_ref<bool(ArrayRef<IDCode> usrCodes)> receiver);
6264
bool foreachUSROfGlobalSymbolKind(GlobalSymbolKind globalSymKind, function_ref<bool(ArrayRef<IDCode> usrCodes)> receiver);

lib/Index/IndexDatastore.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ void StoreUnitRepo::registerUnit(StringRef unitName) {
296296
IDCode unitCode;
297297
bool needDatabaseUpdate;
298298
Optional<bool> optIsSystem;
299+
Optional<bool> PrevHasTestSymbols;
299300
IDCode PrevMainFileCode;
300301
IDCode PrevOutFileCode;
301302
Optional<StoreUnitInfo> StoreUnitInfoOpt;
@@ -312,6 +313,7 @@ void StoreUnitRepo::registerUnit(StringRef unitName) {
312313
if (!needDatabaseUpdate) {
313314
PrevMainFileCode = unitImport.getPrevMainFileCode();
314315
PrevOutFileCode = unitImport.getPrevOutFileCode();
316+
PrevHasTestSymbols = unitImport.getHasTestSymbols();
315317
return false;
316318
}
317319

@@ -333,7 +335,6 @@ void StoreUnitRepo::registerUnit(StringRef unitName) {
333335
}
334336
CanonicalFilePath CanonOutFile = CanonPathCache->getCanonicalPath(Reader.getOutputFile(), WorkDir);
335337
unitImport.setOutFile(CanonOutFile);
336-
StoreUnitInfoOpt = StoreUnitInfo{unitName, CanonMainFile, CanonOutFile, unitModTime};
337338

338339
CanonicalFilePath CanonSysroot = CanonPathCache->getCanonicalPath(Reader.getSysrootPath(), WorkDir);
339340
unitImport.setSysroot(CanonSysroot);
@@ -385,6 +386,7 @@ void StoreUnitRepo::registerUnit(StringRef unitName) {
385386
});
386387

387388
unitImport.commit();
389+
StoreUnitInfoOpt = StoreUnitInfo{unitName, CanonMainFile, CanonOutFile, unitImport.getHasTestSymbols().getValue(), unitModTime};
388390
import.commit();
389391
return false;
390392
};
@@ -397,7 +399,7 @@ void StoreUnitRepo::registerUnit(StringRef unitName) {
397399
ReadTransaction reader(SymIndex->getDBase());
398400
CanonicalFilePath mainFile = reader.getFullFilePathFromCode(PrevMainFileCode);
399401
CanonicalFilePath outFile = reader.getFullFilePathFromCode(PrevOutFileCode);
400-
StoreUnitInfoOpt = StoreUnitInfo{unitName, mainFile, outFile, unitModTime};
402+
StoreUnitInfoOpt = StoreUnitInfo{unitName, mainFile, outFile, PrevHasTestSymbols.getValue(), unitModTime};
401403
}
402404
Delegate->processedStoreUnit(StoreUnitInfoOpt.getValue());
403405
}
@@ -501,6 +503,7 @@ void StoreUnitRepo::onUnitOutOfDate(IDCode unitCode, StringRef unitName,
501503
bool synchronous) {
502504
CanonicalFilePath MainFilePath;
503505
CanonicalFilePath OutFilePath;
506+
bool hasTestSymbols = false;
504507
llvm::sys::TimePoint<> CurrModTime;
505508
SmallVector<IDCode, 8> dependentUnits;
506509
{
@@ -511,13 +514,14 @@ void StoreUnitRepo::onUnitOutOfDate(IDCode unitCode, StringRef unitName,
511514
MainFilePath = reader.getFullFilePathFromCode(unitInfo.MainFileCode);
512515
}
513516
OutFilePath = reader.getFullFilePathFromCode(unitInfo.OutFileCode);
517+
hasTestSymbols = unitInfo.HasTestSymbols;
514518
CurrModTime = unitInfo.ModTime;
515519
}
516520
reader.getDirectDependentUnits(unitCode, dependentUnits);
517521
}
518522

519523
if (!MainFilePath.empty() && Delegate) {
520-
StoreUnitInfo unitInfo{unitName, MainFilePath, OutFilePath, CurrModTime};
524+
StoreUnitInfo unitInfo{unitName, MainFilePath, OutFilePath, hasTestSymbols, CurrModTime};
521525
Delegate->unitIsOutOfDate(unitInfo, outOfDateModTime, hint, synchronous);
522526
}
523527

lib/Index/IndexSystem.cpp

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class IndexSystemImpl {
180180
bool foreachFileIncludedByFile(StringRef SourcePath,
181181
function_ref<bool(CanonicalFilePathRef TargetPath, unsigned Line)> Receiver);
182182

183-
bool foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<StringRef> FilePaths,
183+
bool foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<CanonicalFilePathRef> FilePaths,
184184
function_ref<bool(SymbolOccurrenceRef Occur)> Receiver);
185185
};
186186

@@ -522,13 +522,8 @@ bool IndexSystemImpl::foreachFileIncludedByFile(StringRef SourcePath,
522522
return PathIndex->foreachFileIncludedByFile(canonSourcePath, Receiver);
523523
}
524524

525-
bool IndexSystemImpl::foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<StringRef> FilePaths, function_ref<bool(SymbolOccurrenceRef Occur)> Receiver) {
526-
SmallVector<CanonicalFilePath, 8> canonPaths;
527-
canonPaths.reserve(FilePaths.size());
528-
for (StringRef path : FilePaths) {
529-
canonPaths.push_back(PathIndex->getCanonicalPath(path));
530-
}
531-
return SymIndex->foreachUnitTestSymbolReferencedByOutputPaths(canonPaths, std::move(Receiver));
525+
bool IndexSystemImpl::foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<CanonicalFilePathRef> FilePaths, function_ref<bool(SymbolOccurrenceRef Occur)> Receiver) {
526+
return SymIndex->foreachUnitTestSymbolReferencedByOutputPaths(FilePaths, std::move(Receiver));
532527
}
533528

534529
//===----------------------------------------------------------------------===//
@@ -709,7 +704,7 @@ bool IndexSystem::foreachFileIncludedByFile(StringRef SourcePath,
709704
return IMPL->foreachFileIncludedByFile(SourcePath, Receiver);
710705
}
711706

712-
bool IndexSystem::foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<StringRef> FilePaths,
707+
bool IndexSystem::foreachUnitTestSymbolReferencedByOutputPaths(ArrayRef<CanonicalFilePathRef> FilePaths,
713708
function_ref<bool(SymbolOccurrenceRef Occur)> Receiver) {
714709
return IMPL->foreachUnitTestSymbolReferencedByOutputPaths(FilePaths, std::move(Receiver));
715710
}

0 commit comments

Comments
 (0)