Skip to content

Commit 6cce3d3

Browse files
committed
Add swiftcrossimport and swiftoverlays file_types
1 parent 7c0859d commit 6cce3d3

File tree

4 files changed

+19
-0
lines changed

4 files changed

+19
-0
lines changed

include/swift/Basic/FileTypes.def

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@ TYPE("module-trace", ModuleTrace, "trace.json", "")
7373
TYPE("index-data", IndexData, "", "")
7474
TYPE("opt-record", OptRecord, "opt.yaml", "")
7575

76+
// Overlay files declare wrapper modules, called "separately-imported overlays",
77+
// that should be automatically imported when a particular module is imported.
78+
// Cross-import directories conditionalize overlay files so they only take
79+
// effect when certain other modules are also loaded.
80+
TYPE("swiftcrossimport", SwiftCrossImportDir, "swiftcrossimport","")
81+
TYPE("swiftoverlay", SwiftOverlayFile, "swiftoverlay", "")
82+
7683
// Misc types
7784
TYPE("pcm", ClangModuleFile, "pcm", "")
7885
TYPE("pch", PCH, "pch", "")

lib/Basic/FileTypes.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ bool file_types::isTextual(ID Id) {
8080
case file_types::TY_ModuleTrace:
8181
case file_types::TY_OptRecord:
8282
case file_types::TY_SwiftModuleInterfaceFile:
83+
case file_types::TY_SwiftOverlayFile:
8384
return true;
8485
case file_types::TY_Image:
8586
case file_types::TY_Object:
@@ -90,6 +91,7 @@ bool file_types::isTextual(ID Id) {
9091
case file_types::TY_SwiftModuleFile:
9192
case file_types::TY_SwiftModuleDocFile:
9293
case file_types::TY_SwiftSourceInfoFile:
94+
case file_types::TY_SwiftCrossImportDir:
9395
case file_types::TY_LLVM_BC:
9496
case file_types::TY_SerializedDiagnostics:
9597
case file_types::TY_ClangModuleFile:
@@ -132,6 +134,8 @@ bool file_types::isAfterLLVM(ID Id) {
132134
case file_types::TY_SwiftModuleFile:
133135
case file_types::TY_SwiftModuleDocFile:
134136
case file_types::TY_SwiftSourceInfoFile:
137+
case file_types::TY_SwiftCrossImportDir:
138+
case file_types::TY_SwiftOverlayFile:
135139
case file_types::TY_SerializedDiagnostics:
136140
case file_types::TY_ClangModuleFile:
137141
case file_types::TY_SwiftDeps:
@@ -176,6 +180,8 @@ bool file_types::isPartOfSwiftCompilation(ID Id) {
176180
case file_types::TY_SwiftModuleDocFile:
177181
case file_types::TY_SwiftModuleInterfaceFile:
178182
case file_types::TY_SwiftSourceInfoFile:
183+
case file_types::TY_SwiftCrossImportDir:
184+
case file_types::TY_SwiftOverlayFile:
179185
case file_types::TY_SerializedDiagnostics:
180186
case file_types::TY_ClangModuleFile:
181187
case file_types::TY_SwiftDeps:

lib/Driver/Driver.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1942,6 +1942,8 @@ void Driver::buildActions(SmallVectorImpl<const Action *> &TopLevelActions,
19421942
case file_types::TY_ModuleTrace:
19431943
case file_types::TY_OptRecord:
19441944
case file_types::TY_SwiftModuleInterfaceFile:
1945+
case file_types::TY_SwiftCrossImportDir:
1946+
case file_types::TY_SwiftOverlayFile:
19451947
// We could in theory handle assembly or LLVM input, but let's not.
19461948
// FIXME: What about LTO?
19471949
Diags.diagnose(SourceLoc(), diag::error_unexpected_input_file,

lib/Driver/ToolChains.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,8 @@ const char *ToolChain::JobContext::computeFrontendModeForCompile() const {
562562
case file_types::TY_OptRecord:
563563
case file_types::TY_SwiftModuleInterfaceFile:
564564
case file_types::TY_SwiftSourceInfoFile:
565+
case file_types::TY_SwiftCrossImportDir:
566+
case file_types::TY_SwiftOverlayFile:
565567
llvm_unreachable("Output type can never be primary output.");
566568
case file_types::TY_INVALID:
567569
llvm_unreachable("Invalid type ID");
@@ -811,6 +813,8 @@ ToolChain::constructInvocation(const BackendJobAction &job,
811813
case file_types::TY_OptRecord:
812814
case file_types::TY_SwiftModuleInterfaceFile:
813815
case file_types::TY_SwiftSourceInfoFile:
816+
case file_types::TY_SwiftCrossImportDir:
817+
case file_types::TY_SwiftOverlayFile:
814818
llvm_unreachable("Output type can never be primary output.");
815819
case file_types::TY_INVALID:
816820
llvm_unreachable("Invalid type ID");

0 commit comments

Comments
 (0)