Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[generator] Do not generate PlatformNotSupportedException in chaining…
… .ctor Types that are new in 64bits only OS are generated differently on 32bits bindings. They mainly throw a `PlatformNotSupportedException` so it's easier to diagnose (than a crash) what's happening at runtime. This works well in all cases except one. When a new type, let's say `UIMenuElement` is added **and** serves as a new base type for existing types. `UIKeyCommand` (iOS 7) -> `UICommand` (iOS 13)-> `UIMenuElement` (iOS 13) This is _correct_ as new base types can be added (in ObjC and C#). However the generated code for the constructors of `UICommand` and `UIMenuElement` would be throwing a `PlatformNotSupportedException` which breaks the `UIKeyCommand` on 32 bits devices. We fixed this in a few places by tweaking the availability attribute but that requires spotting the new base type while doing bindings and that is error prone [1][2]. This PR simply does let the `protected` constructor, using when chaining, be generated normally. It's simpler and will cover all the cases (without requiring hacks in the availability of those types) [1] dotnet#7083 [2] dotnet#7084
- Loading branch information