Code Monkey home page Code Monkey logo

swift-winrt's Introduction

Swift/WinRT

Swift Language Projection for WinRT

This project is based on the Microsoft created cppwinrt project and carries the same source structure.

Swift/WinRT generates both the C ABI definition, which is imported into a Swift module and the actual Swift bindings which call into the ABI.

Project Structure

This project has 4 different main projects:

  1. SwiftWinRT (C++)
  2. TestComponent (C++)
  3. Swift Bindings (Swift)
  4. Test app (Swift)

For all C++ code (1 and 2 above) - they are built with CMake For all Swift code (3 and 4 above) - they are built with SPM

Developer Workflow

Swift Toolchain

This project may require Swift toolchain builds which are more recent than the latest released version. For best results, find the release tag used by the GitHub Actions build workflow and download the corresponding toolchain build from swift-build releases.

Initial Setup

Initialize submodules:

git submodule init
git submodule update --recursive

Install the required version of the Windows SDK if you don't already have it (currently 10.0.17763):

winget install --id Microsoft.WindowsSDK.10.0.17763

Integrated Build with CMake

While SPM is the driving force for all Swift related code, we still maintain an integrated build system with CMake, which invokes SPM as can be seen here

You can use the following commands to build the project:

cmake --preset debug
cmake --build --preset debug
cmake --build --preset debug --target install

or, for a one-liner (on powershell); cmake --build --preset debug; cmake --build --preset debug --target install

NOTE: you don't want to re-run configure every-time, so the one-liner omits that step

While it is possible to use this one-liner for your inner-loop, there is a known issue which causes the swift-winrt build to be dirtied every time, and re-running swift-winrt in debug mode is very slow! This is why we set CMAKE_SKIP_INSTALL_ALL_DEPENDENCY in our CMakePresets.json. So when you can building/testing in release mode will be quicker. Generally, this is the golden path forward for when you don't need to debug tests. However, if you need to debug tests, then you will likely want to build debug. See below for optimal debug config workflow.

Debugging Tests in Visual Studio Code

The test code (written in Swift) is easily buildable and debuggable in VS Code. You can build using Ctrl+Shift+B and then debug via the standard VSCode debug window (or press F5).

NOTE: When building tests in VSCode, swift-winrt is not re-run, as this only runs the SPM portion of the build.

Optimal developer workflow for debugging tests

If you need to build debug, then the following workflow is recommended:

  1. Open swiftwinrt directory in Visual Studio and select the release configuration (see Debugging swift-winrt in Visual Studio)
  2. Open VSCode to the root of the repo and ensure the Debug preset is selected.

This workflow has a couple key benefits:

  1. This will let you quickly re-run swift-winrt in release mode when needed while still being able to only build debug for the tests.
  2. Controlling when swift-winrt is re-run has the benefit of allowing you to hand-edit any files you need to prototype with APIs.

You do have to be careful that when you are done iterating (especially on handwritten changes) that you run a full build. However, your PR will fail if this happens.

Debugging swift-winrt in Visual Studio

When working on the bindings, the best experience is to use full Visual Studio (not VS Code) and open the swift-winrt cmake file in VS and build that way.

The build process generates a .rsp file which can be used to easily generate the bindings. So first, run a build so that this file is generated.

Select the startup project to swiftwinrt.exe and update the debug settings by going to Debug -> Debug and Launch Settings for swiftwinrt and setting your arguments to look like this (paths may be different):

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "swiftwinrt.exe (swiftwinrt.exe)",
      "name": "swiftwinrt.exe (swiftwinrt.exe)",
      "args": [
        "@C:\\workspace\\swiftwinrt\\build\\debug\\tests\\test_component\\SwiftWinRT.rsp"
      ]
    }
  ]
}

swift-winrt's People

Contributors

stevenbrix avatar tristanlabelle avatar jeffdav avatar compnerd avatar vinocher-bc avatar jumhyn-browser avatar tonyschr avatar sherryshao avatar fischman-bcny avatar jakobfnf avatar kendalharland avatar

Stargazers

d2dyno avatar Avi Wadhwa avatar Rich Perez avatar Tariq West avatar Lucas Souza avatar Nikolay Kost avatar  avatar Savely Krasovsky avatar Brian Barnett avatar Rodrigo Santos de Souza avatar Ethan Reece avatar Jyoti Ranjan Swain avatar Andreas Ink avatar Shivam Sharma avatar Retouch Charis avatar senjyuren avatar Len Freehoffer avatar  avatar Ostap Brehin avatar Nathan avatar Andy Lu avatar Jens van de Wiel avatar W. Gustavo Cevallos avatar Akash Dakoor avatar Gamitha Samarasingha avatar Denys Sedchenko avatar Titw avatar André Ligné avatar Joshua Peek avatar Kingdom Wang avatar Nate Allison avatar Glenn 'devalias' Grant avatar  avatar Vojtěch Böhm avatar Stella avatar Nissi avatar Kusia avatar Ameer Arsala avatar  avatar Gan Jun Kai avatar Kush Srivastava avatar  avatar Stefan Cosma avatar fkunn1326 avatar  avatar Joseph Heck avatar Ian Baird avatar  avatar yistc avatar Felipe Bastos avatar Hikaru Watanabe avatar Lucky Clan avatar Eric avatar Raffy Alcoriza avatar  avatar Daniel Borges avatar Taras Vozniuk avatar Sean Ren avatar Kuba Martin avatar Tobias Viehweger avatar dzmitry-lahoda avatar Kofi Gumbs avatar susen avatar  avatar Chase Farmer avatar xiguagua avatar  avatar Gerard Adams avatar  avatar Raphaël Thériault avatar Pokai Chang avatar Jeff Zeng avatar xtuzy avatar George Cook avatar Max Strini avatar Aziz Saadana avatar Görkem Say avatar Instinct avatar Jason Pang avatar  avatar Marvin Rühe avatar Francesco Marisaldi avatar beforeold avatar Eric de Quartel avatar Valentin Dewolf avatar Andrew Schreiber avatar Ömer Ayhan avatar Youssef Shamass avatar Ezz avatar Dario Marchitelli avatar devlights avatar Gobi Rajesh Kumar avatar Tibin Thomas avatar Muruganandham K avatar Jon Toussaint avatar Ata Etgi avatar Jayson Lane avatar  avatar sadspear avatar JJTech avatar

Watchers

Darin Fisher avatar Ben Cunningham avatar Hursh Agrawal avatar Alex Lorenz avatar Andrew Monshizadeh avatar Josh Miller avatar  avatar Samir Mody avatar  avatar Tami Forrester avatar  avatar Calvin Hill avatar Guido Soranzio avatar Joel Henning avatar Suraj avatar Damy Wise avatar  avatar Sondre Lindkjølen avatar  avatar

swift-winrt's Issues

Undo the IID workaround

#90 introduced a workaround around the use of IID because of limitations of C++ interop. These might have been lifted since then, so we could remove the workaround.

How to build Swift Windows app using swift-winui but with the latest Windows App SDK 1.5.4 ?

The actually available swift-winui package seems tied to the Windows App SDK 1.5/1.5.240205001-preview1.
My experiments apps builds with swift-winui works well except for the busy cursor always showed for few seconds on app launch.
Some search and it seems this know issue in WinUI3 was fixed in most recent version.

So, I would like to build Swift Windows app using swift-winui but using the latest Windows App SDK 1.5.4 (1.5.240607001) and see if the busy cursor problem is fixed.

How can I do that ?

Thanks

Suggestion - Add support for IInitializeWithWindow and IWindowNative

Hello swift-winrt team,

I don't know if this is the right place to ask for this suggestion.
If not let me know where I can ask.
Also I posted my issue here: https://forums.swift.org/t/swift-winui-uwp-issue-with-fileopenpicker/72070

I have issue working with FileOpenPicker, FileSavePicker and other classes where we need to call in IInitializeWithWindow to initialize the picker instance with the window handle. Without such initialize, the picker dialog is not displayed and the "invalid handle" is returned.

My understanding is that both IInitializeWithWindow and IWindowNative are not available in the swift-winrt projections and we need to build the support by hand.

From ShObjIdl_core.idl, there is the following IInitializeWithWindow definition:

// Implemented by objects the need to be provided a window, often an owner window for displaying UI.
// Used by clients of those objects to provide the window.
[
    uuid(3E68D4BD-7135-4D10-8018-9FB6D9F33FA1),
    object,
    pointer_default(unique)
]
interface IInitializeWithWindow : IUnknown
{
    HRESULT Initialize([in] HWND hwnd);
}

Also I found the following infos about IWindowNative
https://learn.microsoft.com/es/answers/questions/1167924/fixed-fontsize-for-textblock-inside-viewbox

        [ComImport]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        [Guid("EECDBF0E-BAE9-4CB6-A68E-9598E1CB57BB")]
        internal interface IWindowNative
        {
            IntPtr WindowHandle { get; }
        }

If think we can translate this to the following idl:

[
    uuid(EECDBF0E-BAE9-4CB6-A68E-9598E1CB57BB),
    object,
    pointer_default(unique)
]
interface IWindowNative : IUnknown
{
     IntPtr WindowHandle { get; }
}

Edit: IWindowNative appear in microsoft.ui.xaml.window.h in the swift-windowsappsdk package, but no trace in the Generated folder.

So probably The Browser Company team can add the required code in swift-winrt to support the two missing interfaces and/or provide a kind of generator we can call passing the above definitions and obtain the Swift wrappers we can add to our SwiftPM Windows projects.

In the meantime, some receipt and guidelines I can use to try to build by hand these two Swift wrappers ?

Any other suggestions?

Thanks

Cannot build the project

Hi!

I'm probably doing something wrong but no amount of Googling helped so I hope you might have an idea about what's going on.

When running "cmake --build --preset debug" the build fails with the following error:

[3/3] Running Swift build...
FAILED: tests/CMakeFiles/test_app tests/x86_64-unknown-windows-msvc/Debug/test_app.exe C:/windowsapps/swift-winrt/build/debug/tests/CMakeFiles/test_app C:/windowsapps/swift-winrt/build/debug/tests/x86_64-unknown-windows-msvc/Debug/test_app.exe
cmd.exe /C "cd /D C:\windowsapps\swift-winrt\tests && swift build -Xswiftc -debug-info-format=codeview -Xlinker -debug -j 4 -Xswiftc -disable-round-trip-debug-types -c debug --scratch-path C:/windowsapps/swift-winrt/build/debug/tests"
error: 'tests': Invalid manifest (compiled with: ["C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\bin\\swiftc.exe", "-L", "C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\lib\\swift\\pm\\ManifestAPI", "-lPackageDescription", "-sdk", "C:\\Library\\Developer\\Platforms\\Windows.platform\\Developer\\SDKs\\Windows.sdk", "-libc", "MD", "-I", "C:\\Library\\Developer\\Platforms\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows", "-I", "C:\\Library\\Developer\\Platforms\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows\\x86_64", "-L", "C:\\Library\\Developer\\Platforms\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows\\x86_64", "-use-ld=lld", "-swift-version", "5", "-I", "C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\lib\\swift\\pm\\ManifestAPI", "-package-description-version", "5.7.0", "C:\\Users\\STEFAN~1\\AppData\\Local\\Temp\\TemporaryDirectory.RB7uJs\\manifest.swift", "-Xfrontend", "-disable-implicit-concurrency-module-import", "-Xfrontend", "-disable-implicit-string-processing-module-import", "-o", "C:\\Users\\STEFAN~1\\AppData\\Local\\Temp\\TemporaryDirectory.JwEtcH\\tests-manifest.exe"])
error: fatalError
error: link command failed with exit code 1 (use -v to see invocation)
lld-link: error: <root>: undefined symbol: mainCRTStartup
lld-link: error: undefined symbol: memcpy
>>> referenced by C:\Users\STEFAN~1\AppData\Local\Temp\TemporaryDirectory.fqpdJu\manifest-1.o:($s18PackageDescription6TargetC10DependencyOWOb)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

I have Swift 5.9.1 installed and I followed the instructions in the windows-samples repository to get my environment ready. (That project doesn't build as well)

support creating IReference of any WinRT type

right now we have an internal implementation of IPropertyValue, which is not needed now that we have the handwritten PropertyValue class. the purpose of the IPropertyValueImpl was to provide IReference support, but that is unlikely to ever be used, especially since it doesn't work in the general case.

we should implement IReference for any WinRTStruct or WinRTEnum and once we do that, we can remove a lot of the code we have generated today and just use that

ArrayVector does not respond to QI for IIterable<T>

The Swift-implemented ArrayVector class implements IIterable<T> but does not respond to QI for it from WinRT callers.

The problem is that the wrapper class for a given IVector<T> interface implements its vtable's QueryInterface by delegating to CustomQueryInterface, but ArrayVector<T> cannot implement queryInterface for IIterable<T> because the IIDs and wrapper types it would need to create depend on T. It could possibly generate the correct IID based on T, but it instantiating the matching wrapper type would be complex.

Type safety improvements for IUnknownRef

the IUnknownRef class should be strongly typed so that we don't have to lose type safety.

we should only create swift objects when we know we have a valid winrt pointer, so anything in the guts of the projection should not be nullable, but what we return to the caller has to be

Receiving an error for unknown attribute @retroactive

I've tried to compile a minimal example project using the Swift-WinUI package:

import WinUI

print("Hello, world")

However, I keep receiving build errors about an unknown @retroactive attribute:

Build error log
Building for debugging...
error: emit-module command failed with exit code 1 (use -v to see invocation)
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:42: error: unknown attribute 'retroactive'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:1: error: inheritance from non-protocol type 'any Hashable'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive CustomStringConvertible {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:1: error: inheritance from non-protocol type 'any CustomStringConvertible'
extension GUID: @retroactive CustomStringConvertible {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive Equatable {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:1: error: inheritance from non-protocol type 'any Equatable'
extension GUID: @retroactive Equatable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:47: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                              ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:70: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                                                     ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:42: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:65: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                                                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:43: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                          ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:66: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                                                 ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:42: error: unknown attribute 'retroactive'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:1: error: inheritance from non-protocol type 'any Hashable'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive CustomStringConvertible {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:1: error: inheritance from non-protocol type 'any CustomStringConvertible'
extension GUID: @retroactive CustomStringConvertible {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive Equatable {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:1: error: inheritance from non-protocol type 'any Equatable'
extension GUID: @retroactive Equatable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:42: error: unknown attribute 'retroactive'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:1: error: inheritance from non-protocol type 'any Hashable'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive CustomStringConvertible {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:1: error: inheritance from non-protocol type 'any CustomStringConvertible'
extension GUID: @retroactive CustomStringConvertible {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive Equatable {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:1: error: inheritance from non-protocol type 'any Equatable'
extension GUID: @retroactive Equatable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:42: error: unknown attribute 'retroactive'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:1: error: inheritance from non-protocol type 'any Hashable'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive CustomStringConvertible {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:1: error: inheritance from non-protocol type 'any CustomStringConvertible'
extension GUID: @retroactive CustomStringConvertible {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive Equatable {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:1: error: inheritance from non-protocol type 'any Equatable'
extension GUID: @retroactive Equatable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:42: error: unknown attribute 'retroactive'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:1: error: inheritance from non-protocol type 'any Hashable'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive CustomStringConvertible {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:1: error: inheritance from non-protocol type 'any CustomStringConvertible'
extension GUID: @retroactive CustomStringConvertible {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive Equatable {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:1: error: inheritance from non-protocol type 'any Equatable'
extension GUID: @retroactive Equatable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:42: error: unknown attribute 'retroactive'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\EVENTSOURCE.swift:25:1: error: inheritance from non-protocol type 'any Hashable'
extension CWinRT.EventRegistrationToken: @retroactive Hashable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive CustomStringConvertible {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:4:1: error: inheritance from non-protocol type 'any CustomStringConvertible'
extension GUID: @retroactive CustomStringConvertible {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:17: error: unknown attribute 'retroactive'
extension GUID: @retroactive Equatable {
                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Support\GUID.swift:31:1: error: inheritance from non-protocol type 'any Equatable'
extension GUID: @retroactive Equatable {
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:47: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                              ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:70: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                                                     ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:47: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                              ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:70: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                                                     ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:47: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                              ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:70: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                                                     ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:47: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                              ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:70: error: unknown attribute 'retroactive'
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
                                                                     ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.Collections.swift:503:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.CollectionChange: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:42: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:65: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                                                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:43: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                          ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:66: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                                                 ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:42: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:65: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                                                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:43: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                          ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:66: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                                                 ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:42: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:65: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                                                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:43: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                          ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:66: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                                                 ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:42: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                         ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:65: error: unknown attribute 'retroactive'
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
                                                                ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:828:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.AsyncStatus: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:43: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                          ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Hashable'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:66: error: unknown attribute 'retroactive'
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
                                                                 ^
C:\Users\marqu\Developer\BabysFirstWindowsApp\.build\checkouts\swift-windowsfoundation\Sources\WindowsFoundation\Generated\Windows.Foundation.swift:955:1: error: inheritance from non-protocol type 'any Codable' (aka 'any Decodable & Encodable')
extension WindowsFoundation.PropertyType: @retroactive Hashable, @retroactive Codable {}
^
error: fatalError


 *  The terminal process "C:\Users\marqu\AppData\Local\Programs\Swift\Toolchains\5.10.0+Asserts\usr\bin\swift.exe 'build', '--product', 'BabysFirstWindowsApp', '-Xlinker', '-debug:dwarf'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

It seems that https://github.com/tristanlabelle/swift-winrt might have this fixed, but it wasn't backported here.

Environment

Swift Version: 5.10.0
Windows Version 11 Pro (23H2, OS Build 22631.3374)

MinimalRepro.zip

Compilation errors when generating sources for Microsoft.UI.Xaml.Controls.WebView2

Issue
Using swift-winrt to generate bindings for WebView2 results in Swift code that doesn't compile.

Environment
IDE: VSCode (latest version)
Swift Toolchain: 20231211.3
swift-winrt: local nupkg compiled from b261b11

Steps to reproduce

  • Add "-include Microsoft.UI.Xaml.Controls.WebView2" to SWIFT_WINRT_PARAMETERS of a swiftwinrt.cmake file in a project similar to the windows-samples repo.
  • Clean the project and run the swift-winrt configuration step. Note that the bindings are generated.
  • Attempt to build the parent project.

Expected behavior
The project should compile.

Observed behavior
Compilation fails with the following output:

[build] [264/348] Emitting module UWP
[build] C:\Users\biscuit\Documents\Developer\windows-swift-demo\Shared\WinRT\Sources\UWP\UWP+Generics.swift:34381:33: error: 'GUID' is ambiguous for type lookup in this context
[build]     typealias SwiftProjection = GUID
[build]                                 ^~~~
[build] C:\Users\biscuit\Documents\Developer\windows-swift-demo\Shared\WinRT\Sources\WindowsFoundation\Support\cppinteropworkaround.swift:4:18: note: found this candidate
[build] public typealias GUID = CWinRT.GUID_Workaround
[build]                  ^
[build] WinSDK.GUID:1:18: note: found this candidate
[build] public typealias GUID = _GUID
[build]                  ^
[build] C:\Users\biscuit\Documents\Developer\windows-swift-demo\Shared\WinRT\Sources\UWP\UWP+Generics.swift:34379:15: error: type '__x_ABI_C__FIReference_1_GUIDBridge' does not conform to protocol 'AbiBridge'
[build] internal enum __x_ABI_C__FIReference_1_GUIDBridge: ReferenceBridge {
[build]               ^
[build] C:\Users\biscuit\Documents\Developer\windows-swift-demo\Shared\WinRT\Sources\WindowsFoundation\Support\winrtwrapperbase.swift:23:20: note: protocol requires nested type 'SwiftProjection'; add nested type 'SwiftProjection' for conformance
[build]     associatedtype SwiftProjection
[build]                    ^
[build] C:\Users\biscuit\Documents\Developer\windows-swift-demo\Shared\WinRT\Sources\UWP\UWP+Generics.swift:34398:52: error: generic parameter 'Prototype' could not be inferred
[build]     AddRef: { __x_ABI_C__FIReference_1_GUIDWrapper.addRef($0) },
[build]                                                    ^
[build] C:\Users\biscuit\Documents\Developer\windows-swift-demo\Shared\WinRT\Sources\UWP\UWP+Generics.swift:34399:53: error: generic parameter 'Prototype' could not be inferred
[build]     Release: { __x_ABI_C__FIReference_1_GUIDWrapper.release($0) },
[build]                                                     ^

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.