mirror of
https://github.com/apple/swift.git
synced 2026-10-30 22:15:52 +01:00
Diagnose was already supported by swift syntax, so we don't need to track it at all in C++. Adds support for propagating a file default availability via a side effect of a request. Ideally this would go away in a future compiler that doesn't mutate decls to apply inferred attributes. Future default attributes probably end up in this request, unfortunately.
40 lines
933 B
Swift
40 lines
933 B
Swift
// RUN: %target-swift-frontend -enable-experimental-feature DefaultIsolationPerFile -typecheck -verify %s
|
|
|
|
// REQUIRES: swift_feature_DefaultIsolationPerFile
|
|
|
|
using @diagnose(DeprecatedDeclaration, as: error)
|
|
|
|
@available(*, deprecated)
|
|
func deprecatedThing() {}
|
|
|
|
func callerA() {
|
|
deprecatedThing() // expected-error {{'deprecatedThing()' is deprecated}}
|
|
}
|
|
|
|
func callerB() {
|
|
deprecatedThing() // expected-error {{'deprecatedThing()' is deprecated}}
|
|
}
|
|
|
|
class UseDefault {
|
|
func methodA() {
|
|
deprecatedThing() // expected-error {{'deprecatedThing()' is deprecated}}
|
|
}
|
|
|
|
@diagnose(DeprecatedDeclaration, as: warning)
|
|
func methodB() {
|
|
deprecatedThing() // expected-warning {{'deprecatedThing()' is deprecated}}
|
|
}
|
|
|
|
@diagnose(DeprecatedDeclaration, as: ignored)
|
|
func methodC() {
|
|
deprecatedThing()
|
|
}
|
|
}
|
|
|
|
@diagnose(DeprecatedDeclaration, as: ignored)
|
|
class Override {
|
|
func method() {
|
|
deprecatedThing()
|
|
}
|
|
}
|