Skip to content

Commit 098c1f5

Browse files
fix: Add external symbols to forward decl resolver (#353)
1 parent 452dde5 commit 098c1f5

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

indexer/ScipExtras.cc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -269,13 +269,9 @@ void IndexBuilder::addExternalSymbolUnchecked(
269269
for (auto &rel : *extSym.mutable_relationships()) {
270270
rels.insert({std::move(rel)});
271271
}
272-
// SAFETY: Don't inline this assignment statement since lack of
273-
// guarantees around subexpression evaluation order mean that
274-
// the std::move(name) may happen before name.asStringRef() is called.
275272
auto builder = std::make_unique<SymbolInformationBuilder>(
276273
name, std::move(docs), std::move(rels));
277274
this->externalSymbols.emplace(name, std::move(builder));
278-
return;
279275
}
280276

281277
void IndexBuilder::addExternalSymbol(scip::SymbolInformation &&extSym) {
@@ -313,6 +309,9 @@ IndexBuilder::populateForwardDeclResolver() {
313309
for (auto &[_, docBuilder] : this->multiplyIndexed) {
314310
docBuilder->populateForwardDeclResolver(forwardDeclResolver);
315311
}
312+
for (auto &[symbolName, _] : this->externalSymbols) {
313+
forwardDeclResolver.insertExternal(symbolName);
314+
}
316315
return std::make_unique<ForwardDeclResolver>(std::move(forwardDeclResolver));
317316
}
318317

0 commit comments

Comments
 (0)