mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
These are tests that fail in the next commit without this flag. This does not add -verify-ignore-unrelated to all tests with -verify, only the ones that would fail without it. This is NFC since this flag is currently a no-op.
65 lines
1.8 KiB
Swift
65 lines
1.8 KiB
Swift
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -I %S/Inputs/custom-modules -enable-objc-interop -import-objc-header %S/Inputs/macros_redef.h -emit-silgen %s | %FileCheck -check-prefix=NEGATIVE %s
|
|
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -I %S/Inputs/custom-modules -enable-objc-interop -import-objc-header %S/Inputs/macros_redef.h -DCONFLICT -typecheck -verify -verify-ignore-unrelated %s
|
|
|
|
// NEGATIVE-NOT: OLDTAG
|
|
|
|
import MacrosRedefA
|
|
import MacrosRedefB
|
|
import MacrosDeliberateRedefA
|
|
import MacrosDeliberateRedefB
|
|
|
|
#if CONFLICT
|
|
import MacrosRedefWithSubmodules
|
|
import MacrosRedefWithSubmodules.TheSubmodule
|
|
import MacrosRedefWithParallelSubmodules.A
|
|
import MacrosRedefWithParallelSubmodules.B
|
|
#else
|
|
import MacrosRedefWithSubmodules.TheSubmodule
|
|
import MacrosRedefWithParallelSubmodules.A
|
|
#endif
|
|
|
|
func testFrameworkRedef() {
|
|
var s: String
|
|
s = REDEF_1
|
|
#if CONFLICT
|
|
s = REDEF_2 // expected-error{{ambiguous use of 'REDEF_2'}}
|
|
#endif
|
|
}
|
|
|
|
func testBridgingHeaderRedef() {
|
|
var s: String
|
|
s = BRIDGING_HEADER_1
|
|
s = BRIDGING_HEADER_2
|
|
_ = s
|
|
}
|
|
|
|
func testSubmodules() {
|
|
var s: String
|
|
s = MRWS_REDEF_1
|
|
s = MRWS_REDEF_2
|
|
_ = s
|
|
}
|
|
|
|
func testParallelSubmodules() {
|
|
var s: String
|
|
s = MRWPS_REDEF_1
|
|
s = MRWPS_REDEF_2 // expected-error{{ambiguous use of 'MRWPS_REDEF_2'}}
|
|
_ = s
|
|
}
|
|
|
|
func testDeliberateRedef() {
|
|
var s: String
|
|
s = MacrosDeliberateRedefA.MDR_REDEF_1
|
|
s = MacrosDeliberateRedefB.MDR_REDEF_1
|
|
s = MDR_REDEF_1
|
|
|
|
#if CONFLICT
|
|
// The first two lines ought to work even when SILGen-ing, but the two
|
|
// definitions of MDR_REDEF_2 end up getting the same mangled name.
|
|
s = MacrosDeliberateRedefA.MDR_REDEF_2 // ok
|
|
s = MacrosDeliberateRedefB.MDR_REDEF_2 // ok
|
|
s = MDR_REDEF_2 // expected-error{{ambiguous use of 'MDR_REDEF_2'}}
|
|
#endif
|
|
}
|
|
|