Files
swift-mirror/test/Serialization/module-merging-implementation-only.swift
Saleem Abdulrasool 2b8ee6e5a2 test: disallow llvm-bcanalyzer and use new macro
This ensures that we use the correct llvm-bcanalyzer from the just built
compiler tools.
2026-04-13 16:22:02 -07:00

24 lines
1.0 KiB
Swift

// This is a very simple test that module merging does not eliminate
// @_implementationOnly imports or declarations referenced from those imports.
// More thorough tests exist in LLDB, which can look into those imports when
// debugging a client of the module with @_implementationOnly imports.
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -emit-module -o %t %S/Inputs/def_struct.swift
// RUN: %target-swift-frontend -emit-module -I %t -o %t/main~partial.swiftmodule -module-name main %s
// RUN: %llvm-bcanalyzer -dump %t/main~partial.swiftmodule | %FileCheck %s
// RUN: grep -q TwoInts %t/main~partial.swiftmodule
// RUN: %target-swift-frontend -merge-modules -emit-module -I %t -o %t/main.swiftmodule %t/main~partial.swiftmodule
// RUN: %llvm-bcanalyzer -dump %t/main.swiftmodule | %FileCheck %s
// RUN: grep -q TwoInts %t/main.swiftmodule
@_implementationOnly import def_struct
struct Container {
var wrapped: TwoInts
}
// CHECK: <IMPORTED_MODULE abbrevid={{[0-9]+}} op0=2 op1=0{{.*}}/> blob data = 'def_struct'