-
Notifications
You must be signed in to change notification settings - Fork 540
[GameController] Implement up to Xcode 16.3 RC. #22504
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…sts. (#22221) This is an attempt to fix a random connection issue: > Integrity check failed between source and target content. Source path: D:\AzDO\_work\16\s\xamarin-macios\tests\dotnet\Windows\bin\dotnet\packs\Microsoft.iOS.Windows.Sdk.net9.0_18.2\18.2.9451-ci.dev-rolf-xml-docs-1\tools\msbuild\iOS\Broker.zip, Target path: /Users/builder/Library/Caches/Xamarin/XMA/Agents/Broker/3.0.0.13 Ref: https://teams.microsoft.com/l/message/19:5b7decdb4a714a13bad3ff714961f6fe@thread.skype/1740052447890?tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47&groupId=0056f60b-301f-43ac-bbcf-f356d3c42c92&parentMessageId=1740052447890&teamName=VS%20Client%20Experiences&channelName=MaciOS%20%F0%9F%8D%8E&createdTime=1740052447890
* Add/adjust availability attributes. * Remove version checks that will always return the same value. This is a step towards fixing #21185.
This pull request updates the following dependencies ## From https://github.com/dotnet/xharness - **Subscription**: 02e03784-16b3-4ced-b02a-3715797fc7da - **Build**: [20250326.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2672309) - **Date Produced**: March 26, 2025 12:19:14 PM UTC - **Commit**: [ef94f7f3fbc9425fa33badca9e18221ab137fbe3](dotnet/xharness@ef94f7f) - **Branch**: refs/heads/main - **Updates**: - **Microsoft.DotNet.XHarness.iOS.Shared**: [from 10.0.0-prerelease.25175.1 to 10.0.0-prerelease.25176.1][1] [1]: dotnet/xharness@6a680e9...ef94f7f
* Remove a few unused parameters. * Try to define parameters in a single location unless otherwise needed.
…#22499) Example comment where we got it wrong: #22498 (comment) The comment is not for a PR, but for a CI build: c90957b, but since the PR contains the actual commit, it got reported there.
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
* Add/adjust availability attributes. * Ignore availability warnings in a couple of places. * Remove !.NET availability attributes / code. This is a step towards fixing #21185.
…#22503) It tends to randomly fail, so try to avoid that.
…paces. Fixes #22481. (#22500) Original PR #22482 contributed by @NatElkins. Fixes #22481. Co-authored-by: Nat Elkins <nathaniel.elkins@gmail.com>
This comment has been minimized.
This comment has been minimized.
This has to be done in parts, because the Roslyn importer runs out of memory otherwise. Which also means I have no idea how many parts there will end up being. Partial fix for #17399.
…tallation. (#22654) Hopefully fixes this random build error: gmake[1]: Entering directory '[...]/macios/dotnet' GEN Microsoft.iOS.Sdk.Versions.props GEN Microsoft.tvOS.Sdk.Versions.props GEN Microsoft.macOS.Sdk.Versions.props GEN Microsoft.MacCatalyst.Sdk.Versions.props GEN Microsoft.iOS.Sdk.DefaultItems.props GEN Microsoft.iOS.Sdk.ImplicitNamespaceImports.props GEN AutoImport.props GEN Microsoft.tvOS.Sdk.ImplicitNamespaceImports.props GEN Microsoft.tvOS.Sdk.DefaultItems.props GEN AutoImport.props GEN Microsoft.MacCatalyst.Sdk.DefaultItems.props GEN Microsoft.MacCatalyst.Sdk.ImplicitNamespaceImports.props GEN AutoImport.props GEN AutoImport.props GEN Microsoft.macOS.Sdk.ImplicitNamespaceImports.props GEN Microsoft.macOS.Sdk.DefaultItems.props Removing existing workload shipped with .NET 9.0.106-servicing.25217.33: [...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk-manifests/9.0.100/microsoft.net.sdk.ios Removing existing workload shipped with .NET 9.0.106-servicing.25217.33: [...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk-manifests/9.0.100/microsoft.net.sdk.tvos Removing existing workload shipped with .NET 9.0.106-servicing.25217.33: [...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk-manifests/9.0.100/microsoft.net.sdk.maccatalyst [...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk/9.0.106/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props(14,38): error MSB4242: SDK Resolver Failure: "The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed while attempting to resolve the SDK "Microsoft.NET.SDK.WorkloadAutoImportPropsLocator". Exception: "System.IO .DirectoryNotFoundException: Could not find a part of the path '[...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk-manifests/9.0.100/microsoft.net.sdk. ios'. at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator`1.Init() at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized) at System.IO.Enumeration.FileSystemEnu[...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk/9.0.106/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props(14,38): error MSB4242: SDK Resolver Failure: "The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed while attempting to resolve the SDK "Microsoft.NET.SDK.WorkloadAutoImportPropsLocator". Exception: "System.IO .DirectoryNotFoundException: Could not find a part of the path '[...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk-manifests/9.0.100/microsoft.net.sdk. ios'. at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator`1.Init() at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized) at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory, String expression, EnumerationOptions options) at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options) at System.IO.Directory.GetDirectories(String path, String searchPattern, EnumerationOptions enumerationOptions) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.ResolveManifestDirectory(String manifestDirectory) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<>c__DisplayClass22_0.<GetManifests>g__ProbeDirectory|1(String manifestDirectory, String featureBand) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.GetManifests() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider) at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.InitializeManifests() at Micr[...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk/9.0.106/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props(14,38): error MSB4242: SDK Resolver Failure: "The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed while attempting to resolve the SDK "Microsoft.NET.SDK.WorkloadAutoImportPropsLocator". Exception: "System.IO .DirectoryNotFoundException: Could not find a part of the path '[...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk-manifests/9.0.100/microsoft.net.sdk. ios'. at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator`1.Init() at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized) at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory, String expression, EnumerationOptions options) at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options) at System.IO.merableFactory.UserDirectories(String directory, String expression, EnumerationOptions options) at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options) at System.IO.Directory.GetDirectories(String path, String searchPattern, EnumerationOptions enumerationOptions) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.ResolveManifestDirectory(String manifestDirectory) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<>c__DisplayClass22_0.<GetManifests>g__ProbeDirectory|1(String manifestDirectory, String featureBand) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.GetManifests() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider) at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.InitializeManifests() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.GetInstalledWorkloadPacksOfKind(WorkloadPackKind kind)+MoveNext() at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, IWorkloadManifestProvider manifestProvider, IWorkloadResolver workloadResolver) at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, String dotnetRootPath, String sdkVersion, String userProfileDir, String globalJsonPath) at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.WorkloadSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext resolverContext, SdkResultFactory factory) at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.TryResolveSdkUsingSpecifiedResolvers(IReadOnlyList`1 resolvers, Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, Elemen tLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive, Boolean isRunningInVisualStudio, SdkResult& sdkResult, IEnumerable`1& errors, IEnumerable`1& warnings)"" osoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.GetInstalledWorkloadPacksOfKind(WorkloadPackKind kind)+MoveNext() at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, IWorkloadManifestProvider manifestProvider, IWorkloadResolver workloadResolver) at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, String dotnetRootPath, String sdkVersion, String userProfileDir, String globalJsonPath) at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.WorkloadSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext resolverContext, SdkResultFactory factory) at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.TryResolveSdkUsingSpecifiedResolvers(IReadOnlyList`1 resolvers, Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, Elemen tLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive, Boolean isRunningInVisualStudio, SdkResult& sdkResult, IEnumerable`1& errors, IEnumerable`1& warnings)"" Directory.GetDirectories(String path, String searchPattern, EnumerationOptions enumerationOptions) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.ResolveManifestDirectory(String manifestDirectory) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<>c__DisplayClass22_0.<GetManifests>g__ProbeDirectory|1(String manifestDirectory, String featureBand) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.GetManifests() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider) at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.InitializeManifests() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.GetInstalledWorkloadPacksOfKind(WorkloadPackKind kind)+MoveNext() at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, IWorkloadManifestProvider manifestProvider, IWorkloadResolver workloadResolver) at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, String dotnetRootPath, String sdkVersion, String userProfileDir, String globalJsonPath) at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.WorkloadSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext resolverContext, SdkResultFactory factory) at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.TryResolveSdkUsingSpecifiedResolvers(IReadOnlyList`1 resolvers, Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, Elemen tLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive, Boolean isRunningInVisualStudio, SdkResult& sdkResult, IEnumerable`1& errors, IEnumerable`1& warnings)"" [...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk/9.0.106/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props(14,38): error MSB4242: SDK Resolver Failure: "The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed while attempting to resolve the SDK "Microsoft.NET.SDK.WorkloadAutoImportPropsLocator". Exception: "System.IO .DirectoryNotFoundException: Could not find a part of the path '[...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk-manifests/9.0.100/microsoft.net.sdk. ios'. at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator`1.Init() at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized) at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory, String expression, EnumerationOptions options) at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options) at System.IO.Directory.GetDirectories(String path, String searchPattern, EnumerationOptions enumerationOptions) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.ResolveManifestDirectory(String manifestDirectory) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<>c__DisplayClass22_0.<GetManifests>g__ProbeDirectory|1(String manifestDirectory, String featureBand) at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.GetManifests() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider) at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.InitializeManifests() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.GetInstalledWorkloadPacksOfKind(WorkloadPackKind kind)+MoveNext() at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, IWorkloadManifestProvider manifestProvider, IWorkloadResolver workloadResolver) at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, String dotnetRootPath, String sdkVersion, String userProfileDir, String globalJsonPath) at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.WorkloadSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext resolverContext, SdkResultFactory factory) at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.TryResolveSdkUsingSpecifiedResolvers(IReadOnlyList`1 resolvers, Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, Elemen tLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive, Boolean isRunningInVisualStudio, SdkResult& sdkResult, IEnumerable`1& errors, IEnumerable`1& warnings)"" Removing existing workload shipped with .NET 9.0.106-servicing.25217.33: [...]/macios/builds/downloads/dotnet-sdk-9.0.106-servicing.25217.33/sdk-manifests/9.0.100/microsoft.net.sdk.macos gmake[1]: *** [../scripts/generate-workloaddependencies-json/fragment.mk:2: ../scripts/generate-workloaddependencies-json/bin/Debug/generate-workloaddependencies-json.dll] Error 1 gmake[1]: *** Waiting for unfinished jobs.... gmake[1]: *** [../scripts/generate-target-platforms/fragment.mk:2: ../scripts/generate-target-platforms/bin/Debug/generate-target-platforms.dll] Error 1 gmake[1]: *** [../scripts/generate-workloadmanifest-targets/fragment.mk:2: ../scripts/generate-workloadmanifest-targets/bin/Debug/generate-workloadmanifest-targets.dll] Error 1 gmake[1]: *** [../scripts/generate-workloadmanifest-json/fragment.mk:2: ../scripts/generate-workloadmanifest-json/bin/Debug/generate-workloadmanifest-json.dll] Error 1 gmake[1]: Leaving directory '[...]/macios/dotnet' gmake: *** [mk/subdirs.mk:18: all-recurse] Error 1
…extContainer slightly. (#22655) Improve and simplify the manually bound constructors for NSTextContainer by using the same pattern we use elsewhere for manually bound constructors.
This has to be done in parts, because the Roslyn importer runs out of memory otherwise. Which also means I have no idea how many parts there will end up being. Partial fix for #17399.
This has to be done in parts, because the Roslyn importer runs out of memory otherwise. Which also means I have no idea how many parts there will end up being. Partial fix for #17399.
… NSString slightly. (#22659) Improve and simplify the manually bound constructors for NSString by using the same pattern we use elsewhere for manually bound constructors.
…22657) Improve and simplify the manually bound constructors for CKSyncEngineFetchChangesScope, CKSyncEngineSendChangesScope and CKUserIdentityLookupInfo by using the same pattern we use elsewhere for manually bound constructors.
* Add/adjust availability attributes. * Remove !.NET availability attributes / code. This is a step towards fixing #21185.
… NSThread slightly. (#22662) Improve and simplify the manually bound constructors for NSThread by using the same pattern we use elsewhere for manually bound constructors.
This has to be done in parts, because the Roslyn importer runs out of memory otherwise. Which also means I have no idea how many parts there will end up being. Partial fix for #17399.
We don't support any 32-bit platforms anymore.
All pointers we support are now 64-bits.
This had to be done in parts, because the Roslyn importer I wrote ran out of memory otherwise. Which also means I had no idea how many parts there would end up being. Until now - this is the last PR importing xml docs. There's still some curating left of the imported docs before this can be considered completed however. Partial fix for #17399.
…rs for NEHotspotConfiguration slightly. (#22665) Improve and simplify the manually bound constructors for NEHotspotConfiguration by using the same pattern we use elsewhere for manually bound constructors.
This pull request updates the following dependencies ## From https://github.com/dotnet/xharness - **Subscription**: [02e03784-16b3-4ced-b02a-3715797fc7da](https://maestro.dot.net/subscriptions?search=02e03784-16b3-4ced-b02a-3715797fc7da) - **Build**: [20250425.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2695385) - **Date Produced**: April 25, 2025 9:46:50 AM UTC - **Commit**: [6702e80281066daa33390d759263823298486439](dotnet/xharness@6702e80) - **Branch**: refs/heads/main - **Updates**: - **Microsoft.DotNet.XHarness.iOS.Shared**: [from 10.0.0-prerelease.25221.2 to 10.0.0-prerelease.25225.1][1] [1]: dotnet/xharness@026a0d0...6702e80
* Add/adjust availability attributes. * Remove !.NET availability attributes / code. This is a step towards fixing #21185.
… to Windows (#22677) With the new ICorDebug engine for MAUI, we need the debugger to always load the assemblies from Windows. Given that some dll and pdb files changes as part of the remote build, we need a mechanism to copy those modified files back to the Windows OutputPath, so the debugger can always load the right files. Otherwise, the debugger will try to load files that are not the same that are in the running app, so no symbols will be loaded. This also improves the debugger performance by ensuring the files are not loaded remotely but locally --------- Co-authored-by: Mauro Agnoletti <mauro.agnoletti@gmail.com>
…itmapImageRep slightly. (#22676) Improve and simplify the manually bound constructors for NSBitmapImageRep by using the same pattern we use elsewhere for manually bound constructors. Also fix a few nullability issues.
Relax certain generic constraints: * Make `NSEnumerator<TKey>` able to iterate over any `INativeObject`, it doesn't have to be a class. This is required so that we can declare APIs that iterate over protocols: ```cs public NSEnumerator<ISomeProtocol> GetEnumerator (); ``` * Make `Runtime.GetINativeObject<T>` able to return any `INativeObject`, it doesn't have to be a class. This is required so that we can declare generic APIs over protocols: ```cs [BaseType (typeof (NSObject))] interface GenericCollection<Key, Element> where Key : NSString where Element : ISomeProtocol { [Export ("getElement:"), NullAllowed] Element GetElement (Key key); } [Protocol] interface ProtocolWithGenericCollection { [Export ("first", ArgumentSemantic.Retain)] VeryGenericCollection<NSString, ISomeOtherProtocol> Collection { get; } } ``` the problem is the `Collection` property, ideally we'd like to use a combined generic constraint to constrain it to classes, something like this: ```cs VeryGenericCollection<NSString, {class, ISomeOtherProtocol}> Collection { get; } ``` but this isn't possible in C#, thus we have to relax the generic constraints elsewhere.
This includes some older APIs as well. Fixes #15725.
8de718b
to
52b6652
Compare
Closing in favor of #22699. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This includes some older APIs as well.
Fixes #15725.