Improve some diagnostic with @_implementationOnly violations from internal bridging headers

This commit is contained in:
Doug Gregor
2025-09-19 16:48:22 -07:00
parent 30bdb6b37a
commit 7bc02d6a70
4 changed files with 38 additions and 7 deletions

View File

@@ -0,0 +1,21 @@
// RUN: %empty-directory(%t)
// RUN: mkdir -p %t/tmp
// Test with the normal bridging header.
// RUN: %target-typecheck-verify-swift -internal-import-bridging-header %S/../Inputs/c-bridging-header.h -sdk %clang-importer-sdk -verify-ignore-unknown
// RUN: not %target-swift-frontend -typecheck -internal-import-bridging-header %S/../Inputs/c-bridging-header.h -sdk %clang-importer-sdk %s 2>&1 | %FileCheck %s
// Test with a precompiled bridging header.
// RUN: %target-swift-frontend -emit-pch -o %t/c-bridging-header.pch %S/../Inputs/c-bridging-header.h -sdk %clang-importer-sdk
// RUN: %target-typecheck-verify-swift -internal-import-bridging-header %t/c-bridging-header.pch -sdk %clang-importer-sdk -verify-ignore-unknown
@inlinable
public func f() -> Any {
return red
// expected-error@-1{{var 'red' is internal and cannot be referenced from an '@inlinable' function}}
// expected-warning@-2{{getter for var 'red' is internal and should not be referenced from an '@inlinable' function}}
}
// CHECK: var 'red' imported as 'internal' from bridging header