[Sema] Report imports marked as public that are not used in API

This commit is contained in:
Alexis Laferrière
2023-09-22 16:19:48 -07:00
parent 8dcfadd546
commit a0b848ea96
17 changed files with 167 additions and 25 deletions

View File

@@ -3087,6 +3087,25 @@ void SourceFile::setImportUsedPreconcurrency(
PreconcurrencyImportsUsed.insert(import);
}
AccessLevel
SourceFile::getMaxAccessLevelUsingImport(
AttributedImport<ImportedModule> import) const {
auto known = ImportsUseAccessLevel.find(import);
if (known == ImportsUseAccessLevel.end())
return AccessLevel::Internal;
return known->second;
}
void SourceFile::registerAccessLevelUsingImport(
AttributedImport<ImportedModule> import,
AccessLevel accessLevel) {
auto known = ImportsUseAccessLevel.find(import);
if (known == ImportsUseAccessLevel.end())
ImportsUseAccessLevel[import] = accessLevel;
else
ImportsUseAccessLevel[import] = std::max(accessLevel, known->second);
}
bool HasImportsMatchingFlagRequest::evaluate(Evaluator &evaluator,
SourceFile *SF,
ImportFlags flag) const {