Files
swift-mirror/test/ModuleInterface/ambiguous-aliases-workaround-swiftinterface.swift
Alexis Laferrière c8ca517e56 [ModuleInterface] Don't alias the stdlib or builtin module
Not aliasing the stdlib should allows it to be used in inlinable code.
Since builtin isn't imported explicitly, references to it shouldn't use
the alias.

rdar://104582241
2023-01-23 17:52:37 -08:00

58 lines
2.0 KiB
Swift

/// Test the generated swiftinterface with -alias-module-names-in-module-interface.
// RUN: %empty-directory(%t)
// RUN: split-file %s %t
// RUN: %target-swift-frontend -emit-module \
// RUN: -swift-version 5 -enable-library-evolution \
// RUN: -o %t/PublicLib.swiftmodule %t/EmptyLib.swift
// RUN: %target-swift-frontend -emit-module \
// RUN: -swift-version 5 -enable-library-evolution \
// RUN: -o %t/SPILib.swiftmodule %t/EmptyLib.swift
// RUN: %target-swift-frontend -emit-module \
// RUN: -swift-version 5 -enable-library-evolution \
// RUN: -o %t/IOILib.swiftmodule %t/EmptyLib.swift
// RUN: %target-swift-frontend -emit-module \
// RUN: -swift-version 5 -enable-library-evolution \
// RUN: -o %t/Client.swiftmodule \
// RUN: -emit-module-interface-path %t/Client.swiftinterface \
// RUN: -emit-private-module-interface-path %t/Client.private.swiftinterface \
// RUN: %t/Client.swift -I %t -experimental-spi-only-imports \
// RUN: -alias-module-names-in-module-interface -parse-stdlib
// RUN: %target-swift-typecheck-module-from-interface(%t/Client.swiftinterface) -I%t
// RUN: %target-swift-typecheck-module-from-interface(%t/Client.private.swiftinterface) -module-name Client -I%t
// RUN: cat %t/Client.swiftinterface | %FileCheck %s -check-prefix=PUBLIC
// RUN: cat %t/Client.private.swiftinterface | %FileCheck %s -check-prefix=PRIVATE
//--- EmptyLib.swift
public struct SomeType {}
//--- Client.swift
@_implementationOnly import IOILib
@_spiOnly import SPILib
import PublicLib
/// Check alias declarations.
// PUBLIC-NOT: IOILib
// PUBLIC-NOT: SPILib
// PUBLIC: -module-alias Module___PublicLib
// PRIVATE-NOT: IOILib
// PRIVATE: -module-alias Module___SPILib
// PRIVATE: -module-alias Module___PublicLib
/// Check imports.
// PUBLIC: import Module___PublicLib
// PRIVATE: import Module___PublicLib
// PRIVATE: import Module___SPILib
public func builtinUser(_ a: Builtin.Int32) {}
@inlinable
public func builtinInlinableUser() {
var a: Builtin.Int32
}