Skip to content

Commit 944ad88

Browse files
committed
[NFC] Improve simple_display for AttributedImport
1 parent 48b866b commit 944ad88

File tree

2 files changed

+34
-39
lines changed

2 files changed

+34
-39
lines changed

include/swift/AST/Import.h

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -570,13 +570,27 @@ struct AttributedImport {
570570
}
571571
};
572572

573-
/// A module which has been implicitly imported.
574573
void simple_display(llvm::raw_ostream &out,
575-
const AttributedImport<ImportedModule> &import);
574+
const ImportedModule &import);
576575

577-
/// A module which will be implicitly imported.
578576
void simple_display(llvm::raw_ostream &out,
579-
const AttributedImport<UnloadedImportedModule> &import);
577+
const UnloadedImportedModule &import);
578+
579+
// This is a quasi-implementation detail of the template version below.
580+
void simple_display(llvm::raw_ostream &out,
581+
const AttributedImport<std::tuple<>> &import);
582+
583+
template<typename ModuleInfo>
584+
void simple_display(llvm::raw_ostream &out,
585+
const AttributedImport<ModuleInfo> &import) {
586+
// Print the module.
587+
simple_display(out, import.module);
588+
589+
// Print the other details of the import, using the std::tuple<>
590+
// specialization.
591+
AttributedImport<std::tuple<>> importWithoutModule({}, import);
592+
simple_display(out, importWithoutModule);
593+
}
580594

581595
// MARK: - Implicit imports
582596

lib/AST/TypeCheckRequests.cpp

Lines changed: 16 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1392,49 +1392,30 @@ TypeCheckFunctionBodyRequest::readDependencySource(
13921392
//----------------------------------------------------------------------------//
13931393

13941394
void swift::simple_display(llvm::raw_ostream &out,
1395-
const AttributedImport<ImportedModule> &import) {
1395+
const ImportedModule &module) {
13961396
out << "import of ";
1397-
1398-
simple_display(out, import.module.importedModule);
1399-
1400-
out << " [";
1401-
if (!import.module.accessPath.empty()) {
1402-
out << " scoped(";
1403-
import.module.accessPath.print(out);
1404-
out << ")";
1397+
if (!module.accessPath.empty()) {
1398+
module.accessPath.print(out);
1399+
out << " in ";
14051400
}
1406-
if (import.options.contains(ImportFlags::Exported))
1407-
out << " exported";
1408-
if (import.options.contains(ImportFlags::Testable))
1409-
out << " testable";
1410-
if (import.options.contains(ImportFlags::ImplementationOnly))
1411-
out << " implementation-only";
1412-
if (import.options.contains(ImportFlags::PrivateImport))
1413-
out << " private(" << import.sourceFileArg << ")";
1401+
simple_display(out, module.importedModule);
1402+
}
14141403

1415-
if (import.options.contains(ImportFlags::SPIAccessControl)) {
1416-
out << " spi(";
1417-
llvm::interleaveComma(import.spiGroups, out, [&out](Identifier name) {
1418-
simple_display(out, name);
1419-
});
1420-
out << ")";
1404+
void swift::simple_display(llvm::raw_ostream &out,
1405+
const UnloadedImportedModule &module) {
1406+
out << "import of ";
1407+
if (!module.getAccessPath().empty()) {
1408+
module.getAccessPath().print(out);
1409+
out << " in ";
14211410
}
1422-
1423-
out << " ]";
1411+
out << "unloaded ";
1412+
module.getModulePath().print(out);
14241413
}
14251414

14261415
void swift::simple_display(llvm::raw_ostream &out,
1427-
const AttributedImport<UnloadedImportedModule> &import) {
1428-
out << "import of unloaded ";
1429-
1430-
import.module.getModulePath().print(out);
1431-
1416+
const AttributedImport<std::tuple<>> &import) {
14321417
out << " [";
1433-
if (!import.module.getAccessPath().empty()) {
1434-
out << " scoped(";
1435-
import.module.getAccessPath().print(out);
1436-
out << ")";
1437-
}
1418+
14381419
if (import.options.contains(ImportFlags::Exported))
14391420
out << " exported";
14401421
if (import.options.contains(ImportFlags::Testable))

0 commit comments

Comments
 (0)