Finishes resolving rdar://139236053.
This commit is contained in:
Allan Shortlidge
2024-11-05 14:37:46 -08:00
parent fa5b783e3f
commit 49b59f69c9
12 changed files with 53 additions and 137 deletions

View File

@@ -1,8 +1,7 @@
// RUN: %empty-directory(%t)
// RUN: split-file %s %t
/// Do not print package-name for public or private interfaces
// RUN: %target-build-swift -emit-module %t/Bar.swift -I %t \
// RUN: %target-build-swift -emit-module %s -I %t \
// RUN: -module-name Bar -package-name foopkg \
// RUN: -enable-library-evolution -swift-version 6 \
// RUN: -package-name barpkg \
@@ -23,9 +22,9 @@
// CHECK-PRIVATE-NOT: pkgVar
// CHECK-PACKAGE-NOT: -package-name foopkg
// CHECK-PUBLIC: -enable-library-evolution -swift-version 6 -module-name Bar
// CHECK-PRIVATE: -enable-library-evolution -swift-version 6 -module-name Bar
// CHECK-PACKAGE: -enable-library-evolution -swift-version 6 -module-name Bar -package-name barpkg
// CHECK-PUBLIC: -enable-library-evolution -swift-version 6 -disable-print-package-name-for-non-package-interface -module-name Bar
// CHECK-PRIVATE: -enable-library-evolution -swift-version 6 -disable-print-package-name-for-non-package-interface -module-name Bar
// CHECK-PACKAGE: -enable-library-evolution -swift-version 6 -disable-print-package-name-for-non-package-interface -module-name Bar -package-name barpkg
/// Typechecking interface files (without package-name in non-package interface) should succeed.
// RUN: %target-swift-frontend -typecheck-module-from-interface %t/Bar.swiftinterface
@@ -34,17 +33,10 @@
/// Verify building modules from non-package interfaces succeeds without the package-name flag.
// RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -verify
// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -package-name barpkg -verify
// RUN: rm -rf %t/Bar.swiftmodule
// RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.private.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -verify
// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -package-name barpkg -verify
// RUN: rm -rf %t/Bar.swiftmodule
// RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.package.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -package-name barpkg -experimental-package-interface-load -verify
// RUN: rm -rf %t/Bar.swiftmodule
// RUN: rm -rf %t/Bar.swiftinterface
@@ -53,7 +45,7 @@
/// By default, -package-name is printed in all interfaces.
// RUN: env SWIFT_USE_OLD_DRIVER=1 %target-build-swift \
// RUN: -emit-module %t/Bar.swift -I %t \
// RUN: -emit-module %s -I %t \
// RUN: -module-name Bar -package-name barpkg \
// RUN: -enable-library-evolution -swift-version 6 \
// RUN: -emit-module-interface-path %t/Bar.swiftinterface \
@@ -68,51 +60,12 @@
/// Building modules from non-package interfaces with package-name (default mode) should succeed.
// RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
// RUN: %target-swift-frontend -typecheck %t/ExpectFail.swift -I %t -package-name barpkg -verify
// RUN: rm -rf %t/Bar.swiftmodule
// RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.private.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
// RUN: %target-swift-frontend -typecheck %t/ExpectFail.swift -I %t -package-name barpkg -verify
// RUN: rm -rf %t/Bar.swiftmodule
// RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.package.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -package-name barpkg -experimental-package-interface-load -verify
//--- Bar.swift
public struct PubStruct {
public var pubVar: Int
package var pkgVar: Int
}
public struct PubStruct {}
@_spi(bar) public struct SPIStruct {}
package struct PkgStruct {}
@usableFromInline
package struct UfiPkgStruct {
@usableFromInline
package var ufiPkgVar: PubStruct
package var pkgVar: PubStruct
@usableFromInline
package init(_ x: PubStruct, _ y: PubStruct) {
ufiPkgVar = x
pkgVar = y
}
}
//--- Use.swift
import Bar
func use(_ arg: PubStruct) -> PubStruct {
return UfiPkgStruct(arg, arg).ufiPkgVar
}
//--- ExpectFail.swift
import Bar // expected-error {{module 'Bar' is in package 'barpkg' but was built from a non-package interface; modules of the same package can only be loaded if built from source or package interface}}
func use(_ arg: PubStruct) -> PubStruct {
return UfiPkgStruct(arg, arg).ufiPkgVar
}