mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The `-require-explicit-availability` compiler flag is designed to help developers find declarations that they've written with missing availability. The flag is not printed in swiftinterface files, though, so if a module has both `-library-level=api` and also has `-require-explicity-availability=ignore` (as the Swift stdlib does) then the result is that superfluous diagnostics are emitted when typechecking the emitted module interface that should have been suppressed by the `ignore` flag. Suppress these diagnostics when typechecking swiftinterface files since they are only designed to be seen by the owner of the module when they are building the module from source and they don't have much value in the context of interface verification.
13 lines
755 B
Swift
13 lines
755 B
Swift
// -require-explicit-availability is not printed in interfaces, so no warnings
|
|
// should be emitted when verifying the interface.
|
|
// RUN: %target-swift-emit-module-interface(%t_require.swiftinterface) -require-explicit-availability=warn %s
|
|
// RUN: %target-swift-typecheck-module-from-interface(%t_require.swiftinterface) -verify
|
|
|
|
// -library-level=api implies -require-explicit-availability=warn and it _is_
|
|
// printed in the interface. Still, no diagnostics about required explicit
|
|
// availability should be emitted when verifying the interface.
|
|
// RUN: %target-swift-emit-module-interface(%t_api.swiftinterface) -library-level=api %s
|
|
// RUN: %target-swift-typecheck-module-from-interface(%t_api.swiftinterface) -verify
|
|
|
|
public struct NoAvailability { }
|