Open
Description
Description
Compilation of a source file containing .quickLookPreview()
leads to the following error:
ExampleViewModifier.swift:8:17: error: value of type 'ExampleViewModifier.Content' (aka '_ViewModifier_Content<ExampleViewModifier>') has no member 'quickLookPreview'
content.quickLookPreview($quickLookItem)
~~~~~~~ ^~~~~~~~~~~~~~~~
error: fatalError
Reproduction
ExampleViewModifier.swift
import SwiftUI
import QuickLook
struct ExampleViewModifier: ViewModifier {
@State private var quickLookItem: URL?
func body(content: Content) -> some View {
content.quickLookPreview($quickLookItem)
}
}
$ xcrun -toolchain org.swift.5101202403041a swiftc ExampleViewModifier.swift
org.swift.5101202403041a
is a toolchain built from the swift-5.10-RELEASE
tag downloaded from here: https://download.swift.org/swift-5.10-release/xcode/swift-5.10-RELEASE/swift-5.10-RELEASE-osx.pkg
However, also other versions seem to produce the same error.
Expected behavior
Compiles successfully, i.e. same behaviour as when using toolchain distributed as part of Xcode 15.3:
$ swiftc --version
swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
Target: arm64-apple-macosx14.0
$ swiftc ExampleViewModifier.swift
<exit code 0>
Environment
$ xcrun -toolchain org.swift.5101202403041a swiftc --version
Apple Swift version 5.10 (swift-5.10-RELEASE)
Target: arm64-apple-macosx14.0
Additional information
When passing the -Rmodule-loading
flag to swiftc
, some differences in regards to the loaded modules can be observed:
Toolchain shipped with Xcode 15.3
$ swiftc ExampleViewModifier.swift -Rmodule-loading
...
ExampleViewModifier.swift:2:8: remark: loaded module 'QuickLook'; source: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/System/Library/Frameworks/QuickLook.framework/Modules/module.modulemap', loaded: '/var/folders/jh/vhc819237asdhjauw_0auqw20000gn/C/clang/ModuleCache/2BQW784XUIRDS/QuickLook-1TH8O9AVEIM3C.pcm'
import QuickLook
^
ExampleViewModifier.swift:2:8: remark: '_QuickLook_SwiftUI' has a required transitive dependency on 'Quartz'
import QuickLook
^
<unknown>:0: remark: 'QuickLookUI' has a required transitive dependency on 'PDFKit'
<unknown>:0: remark: loaded module 'PDFKit'; source: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/System/Library/Frameworks/PDFKit.framework/Modules/module.modulemap', loaded: '/var/folders/jh/vhc819237asdhjauw_0auqw20000gn/C/clang/ModuleCache/2BQW784XUIRDS/PDFKit-398FJ8DT2QBNH.pcm'
<unknown>:0: remark: 'QuickLookUI' has a required transitive dependency on 'QuickLookUI'
<unknown>:0: remark: 'QuickLookUI' has a required transitive dependency on 'Swift'
<unknown>:0: remark: 'QuickLookUI' has a required transitive dependency on '_Concurrency'
<unknown>:0: remark: 'QuickLookUI' has a required transitive dependency on '_StringProcessing'
<unknown>:0: remark: 'QuickLookUI' has a required transitive dependency on '_SwiftConcurrencyShims'
<unknown>:0: remark: loaded module 'QuickLookUI' (overlay for a clang dependency); source: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/lib/swift/QuickLookUI.swiftmodule/arm64e-apple-macos.swiftinterface', loaded: '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/14.4/QuickLookUI.swiftmodule/arm64e-apple-macos.swiftmodule'
<unknown>:0: remark: loaded module 'Quartz'; source: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/System/Library/Frameworks/Quartz.framework/Modules/module.modulemap', loaded: '/var/folders/jh/vhc819237asdhjauw_0auqw20000gn/C/clang/ModuleCache/2BQW784XUIRDS/Quartz-154VNH160KV8P.pcm'
ExampleViewModifier.swift:2:8: remark: '_QuickLook_SwiftUI' has a required transitive dependency on 'QuickLook'
import QuickLook
^
ExampleViewModifier.swift:2:8: remark: '_QuickLook_SwiftUI' has a required transitive dependency on 'Swift'
import QuickLook
^
ExampleViewModifier.swift:2:8: remark: '_QuickLook_SwiftUI' has a required transitive dependency on 'SwiftUI'
import QuickLook
^
ExampleViewModifier.swift:2:8: remark: '_QuickLook_SwiftUI' has a required transitive dependency on '_Concurrency'
import QuickLook
^
ExampleViewModifier.swift:2:8: remark: '_QuickLook_SwiftUI' has a required transitive dependency on '_StringProcessing'
import QuickLook
^
ExampleViewModifier.swift:2:8: remark: '_QuickLook_SwiftUI' has a required transitive dependency on '_SwiftConcurrencyShims'
import QuickLook
^
ExampleViewModifier.swift:2:8: remark: loaded module '_QuickLook_SwiftUI'; source: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/System/Library/Frameworks/_QuickLook_SwiftUI.framework/Modules/_QuickLook_SwiftUI.swiftmodule/arm64e-apple-macos.swiftinterface', loaded: '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/14.4/_QuickLook_SwiftUI.swiftmodule/arm64e-apple-macos.swiftmodule'
import QuickLook
^
"Open source" toolchain `org.swift.5101202403041a`
$ xcrun -toolchain org.swift.5101202403041a swiftc ExampleViewModifier.swift -Rmodule-loading
...
ExampleViewModifier.swift:2:8: remark: loaded module 'QuickLook'; source: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/System/Library/Frameworks/QuickLook.framework/Modules/module.modulemap', loaded: '/var/folders/jh/vhc819237asdhjauw_0auqw20000gn/C/clang/ModuleCache/3MN83M481CP0T/QuickLook-1TH8O9AVEIM3C.pcm'
import QuickLook
^
ExampleViewModifier.swift:8:17: error: value of type 'ExampleViewModifier.Content' (aka '_ViewModifier_Content<ExampleViewModifier>') has no member 'quickLookPreview'
content.quickLookPreview($quickLookItem)
~~~~~~~ ^~~~~~~~~~~~~~~~
error: fatalError