The logic seems to want to verify MPSPredicate on maOS 10.14, but not on macOS
10.15+. But checking for macOS 10.14 is always successful on macOS 10.15+,
which means that we can't check for macOS 10.14 before checking macOS 10.15.
So I moved the macOS 10.14 check to after the macOS 10.15 check, but that made
the macOS 10.14 check redundant, because both branches of the condition did
the same thing, so I removed the whole check.
Fixes this introspectionf failure:
[FAIL] DefaultCtorAllowed : 1 potential errors found in 1387 default ctor validated:
Default constructor not allowed for MetalPerformanceShaders.MPSPredicate : Could not initialize an instance of the type 'MetalPerformanceShaders.MPSPredicate': the native 'init' method returned nil.
* 'GKGameCenterViewController' init throws on macOS 11 and makes sense
to remove the DefaultCtor since it has other init methods that
should be used instead. Added XAMCORE_4_0 removal.
* 'ModelIO' seems to be broken in macOS 11.0, if you touch several
types you end up getting some C++ errors
* 'CoreSpotlight.CSLocalizedString' crashes in Xcode 12.0 GM and now
in Xcode 12.2 Beta 2 on macOS.
Added issues to check for future betas/GM here #9744
* [generator] Properly set the IsDirectBinding value.
Properly set the IsDirectBinding value to false for models and synthetic types.
This also means we can now stop excluding models when testing if the
IsDirectBinding value is correct.
Also set IsDirectBinding value to true for sealed wrapper types, since those
will always be direct bindings since they can't be subclassed.
https://gist.github.com/rolfbjarne/24028bf944db848fed4083c460d0ec71
* [tests] Add introspection exclusion for XM.
* [introspection] Add back exclusions for Classic, since we can't modify/fix Classic assemblies anymore.
* [generator] Print the correct protocol name with the protocol attribute.
Fixes this test failure:
[FAIL] Foundation.NSUrlDownloadDelegate : ConformsToProtocol(null) failed
because our binding code claimed that our `NSUrlDownloadDelegate` class
implemented the `NSUrlDownloadDelegate` protocol, but since the
`NSUrlDownloadDelegate` protocol doesn't exist (it's `NSURLDownloadDelegate` -
different case), we'd verify against a null protocol (and return true from
`ConformsToProtocol(null)`, which would fail the test).
* [xtro] Only treat interfaces as protocols.
Unfortunately we add [Protocol] to [Model]s as well as on interfaces, but we
must not process those in xtro, since they don't correspond with the actual protocol.
The latest Sierra had a few surprises:
* CITextFeature is now 64bits only;
* The MediaPlayer framework is now 64bits only [1]
Both made the classic tests fails for XM.
[1] https://bugzilla.xamarin.com/show_bug.cgi?id=52065
* [XM] AppKit Xcode8 Beta3 changes
* [XM] Update intents.cs with macOS attributes
* [XM] Fix bindings caught by introspection test
* [XM] Fix classic introspection tests by marking safariservices as 64-bit only
* [XM] Async upgrade
* [XM] Fix apitest on classic by noting IntentsLibrary is 64-bit only
Those tests needs to be run with the linker disabled since they use
reflection for most of their work.
The original dontlink (for linker tests) was becoming too large in
some configuration (e.g. tvOS release with bitcode) but this was
due to other BCL assemblies (not the introspection tests)