Lantua
1
I was experimenting with @available to get a sense of how it works. I started with:
@available(OSX, introduced: 13.0)
struct Foo { }
func foo() {
_ = Foo()
}
and easy enough, when I tried to compile it to a mac target, I get an error:
'Foo' is only available in macOS 13.0 or newer
with a fix-it to add #available. This is pretty much what I expect.
However, when I tried the same code with deprecated: 13.0 and obsoleted: 13.0, there is no error/warning. I set the platforms on Package.swift to platforms: [.macOS(.v10_14)], so it's well out-of-range.
Is it expected to not produce any warning? What does the compiler pick up on when figuring out if something needs to be behind #available?
xwu
(Xiaodi Wu)
2
I'm confused about your question. If an API is to be deprecated in macOS 13, then of course there are no warnings when you compile it for macOS 10.14?
3 Likes
SDGGiesbrecht
(Jeremy David Giesbrecht)
3
Don’t feel bad. I forget the 10. in front all the time too.
4 Likes
Lantua
4
Ok, I was too restless to wait for 13.0 announcement in 2052
.
4 Likes