[Frontend] Ignore adjacent swiftmodule in compiler host modules

`lib/swift/host` contains modules/libraries that are built by the host
compiler. Their `.swiftmodule` will never be able to be read, ignore
them entirely.
This commit is contained in:
Ben Barham
2023-06-07 17:24:36 -07:00
parent ae2287dbb6
commit ee3a47b624
6 changed files with 75 additions and 17 deletions

View File

@@ -0,0 +1,26 @@
// RUN: %empty-directory(%t)
// RUN: %empty-directory(%t/build/host)
// RUN: %empty-directory(%t/cache)
// RUN: split-file %s %t
/// Modules loaded from within lib/swift/host should also be rebuilt from
/// their interface (which actually means anything within resource-dir/host).
// RUN: %target-swift-frontend -emit-module %t/Lib.swift \
// RUN: -swift-version 5 -enable-library-evolution \
// RUN: -parse-stdlib -module-cache-path %t/cache \
// RUN: -o %t/build/host -emit-module-interface-path %t/build/host/Lib.swiftinterface
// RUN: %target-swift-frontend -typecheck %t/Client.swift \
// RUN: -resource-dir %t/build -I %t/build/host \
// RUN: -parse-stdlib -module-cache-path %t/cache \
// RUN: -Rmodule-loading 2>&1 | %FileCheck %s
// CHECK: remark: loaded module 'Lib'; source: '{{.*}}{{/|\\}}host{{/|\\}}Lib.swiftinterface', loaded: '{{.*}}{{/|\\}}cache{{/|\\}}Lib-{{.*}}.swiftmodule'
//--- Lib.swift
public func foo() {}
//--- Client.swift
import Lib
foo()