I'm looking at the source for SPM and I see @_exported import for some of the imports in TSCLibc. What does this do exactly?
1 Like
BigSur
({ @MainActor in M1.Ultra }(Swift))
2
Just re-export whatever you import, or import proxy/forwarding.
1 Like
Thanks for the response. So just to be clear, this would mean that if I had module Foo:
// Foo.swift
func foo() { ... }
And module Bar:
// Bar.swift
@_exported import Foo
And dependencies set up like so:
//Package.swift
...
targets: [
.library(name: "Foo"),
.library(name: "Bar", dependencies: ["Foo"]),
.library(name: "Baz", dependencies: ["Bar"]),
]
...
Then from inside Baz, I wold still be able to caall foo without importing Foo directly:
// Baz.swift
import Bar
foo() // imported from Foo via Bar
Is that correct?
4 Likes
Yes. But keep in mind that anything starting with an underscore isn’t finalized yet, so you should not rely on it being stable.
2 Likes