diff --git a/dotnet/targets/Xamarin.Shared.Sdk.targets b/dotnet/targets/Xamarin.Shared.Sdk.targets
index 11d01c8c4fe5..86745895a19a 100644
--- a/dotnet/targets/Xamarin.Shared.Sdk.targets
+++ b/dotnet/targets/Xamarin.Shared.Sdk.targets
@@ -133,6 +133,7 @@
false
true
true
+ true
false
diff --git a/runtime/runtime.m b/runtime/runtime.m
index 3b258ec245f7..ccbd684b8fa7 100644
--- a/runtime/runtime.m
+++ b/runtime/runtime.m
@@ -1349,7 +1349,7 @@ -(void) xamarinSetFlags: (enum XamarinGCHandleFlags) flags;
if (main_bundle == NULL)
xamarin_assertion_message ("Could not find the main bundle in the app ([NSBundle mainBundle] returned nil)");
-#if MONOMAC
+#if TARGET_OS_MACCATALYST || TARGET_OS_OSX
if (xamarin_launch_mode == XamarinLaunchModeEmbedded) {
bundle_path = [[[NSBundle bundleForClass: [XamarinAssociatedObject class]] bundlePath] stringByAppendingPathComponent: @"Versions/Current"];
} else {
diff --git a/src/CoreFoundation/CFArray.cs b/src/CoreFoundation/CFArray.cs
index d3b9dd5f08c3..8fa805cc547e 100644
--- a/src/CoreFoundation/CFArray.cs
+++ b/src/CoreFoundation/CFArray.cs
@@ -38,53 +38,25 @@
using CFArrayRef = System.IntPtr;
using CFAllocatorRef = System.IntPtr;
+#nullable enable
+
namespace CoreFoundation {
- partial class CFArray : INativeObject, IDisposable {
-
- internal IntPtr handle;
+ public partial class CFArray : NativeObject {
internal CFArray (IntPtr handle)
- : this (handle, false)
+ : base (handle, false)
{
}
[Preserve (Conditional = true)]
internal CFArray (IntPtr handle, bool owns)
+ : base (handle, owns)
{
- if (handle == IntPtr.Zero)
- throw new ArgumentNullException ("handle");
-
- this.handle = handle;
- if (!owns)
- CFObject.CFRetain (handle);
}
- public IntPtr Handle {
- get {return handle;}
- }
-
[DllImport (Constants.CoreFoundationLibrary, EntryPoint="CFArrayGetTypeID")]
- public extern static /* CFTypeID */ nint GetTypeID ();
-
- ~CFArray ()
- {
- Dispose (false);
- }
-
- public void Dispose ()
- {
- Dispose (true);
- GC.SuppressFinalize (this);
- }
-
- protected virtual void Dispose (bool disposing)
- {
- if (handle != IntPtr.Zero){
- CFObject.CFRelease (handle);
- handle = IntPtr.Zero;
- }
- }
+ internal extern static /* CFTypeID */ nint GetTypeID ();
// pointer to a const struct (REALLY APPLE?)
static IntPtr kCFTypeArrayCallbacks_ptr_value;
@@ -97,18 +69,18 @@ static IntPtr kCFTypeArrayCallbacks_ptr {
}
}
- public static CFArray FromIntPtrs (params IntPtr[] values)
+ internal static CFArray FromIntPtrs (params IntPtr[] values)
{
return new CFArray (Create (values), true);
}
- public static CFArray FromNativeObjects (params INativeObject[] values)
+ internal static CFArray FromNativeObjects (params INativeObject[] values)
{
return new CFArray (Create (values), true);
}
public nint Count {
- get {return CFArrayGetCount (handle);}
+ get { return CFArrayGetCount (GetCheckedHandle ()); }
}
[DllImport (Constants.CoreFoundationLibrary)]
@@ -119,13 +91,13 @@ public nint Count {
public IntPtr GetValue (nint index)
{
- return CFArrayGetValueAtIndex (handle, index);
+ return CFArrayGetValueAtIndex (GetCheckedHandle (), index);
}
- public static unsafe IntPtr Create (params IntPtr[] values)
+ internal static unsafe IntPtr Create (params IntPtr[] values)
{
- if (values == null)
- throw new ArgumentNullException ("values");
+ if (values is null)
+ ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (values));
fixed (IntPtr* pv = values) {
return CFArrayCreate (IntPtr.Zero,
(IntPtr) pv,
@@ -134,10 +106,10 @@ public static unsafe IntPtr Create (params IntPtr[] values)
}
}
- public static IntPtr Create (params INativeObject[] values)
+ internal static IntPtr Create (params INativeObject[] values)
{
- if (values == null)
- throw new ArgumentNullException ("values");
+ if (values is null)
+ ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (values));
IntPtr[] _values = new IntPtr [values.Length];
for (int i = 0; i < _values.Length; ++i)
_values [i] = values [i].Handle;
@@ -147,7 +119,7 @@ public static IntPtr Create (params INativeObject[] values)
[DllImport (Constants.CoreFoundationLibrary)]
extern static /* CFIndex */ nint CFArrayGetCount (/* CFArrayRef */ IntPtr theArray);
- public static nint GetCount (IntPtr array)
+ internal static nint GetCount (IntPtr array)
{
return CFArrayGetCount (array);
}
@@ -155,7 +127,7 @@ public static nint GetCount (IntPtr array)
[DllImport (Constants.CoreFoundationLibrary)]
extern static CFArrayRef CFArrayCreateCopy (CFAllocatorRef allocator, CFArrayRef theArray);
- public CFArray Clone () => new CFArray (CFArrayCreateCopy (IntPtr.Zero, this.Handle), true);
+ internal CFArray Clone () => new CFArray (CFArrayCreateCopy (IntPtr.Zero, GetCheckedHandle ()), true);
}
}
diff --git a/src/Foundation/DictionaryContainer.cs b/src/Foundation/DictionaryContainer.cs
index 9529d7b4dd0a..f77a15dae516 100644
--- a/src/Foundation/DictionaryContainer.cs
+++ b/src/Foundation/DictionaryContainer.cs
@@ -342,7 +342,7 @@ protected void SetArrayValue (NSString key, string[]? values)
protected void SetArrayValue (NSString key, INativeObject[]? values)
{
if (NullCheckAndRemoveKey (key, values == null))
- CFMutableDictionary.SetValue (Dictionary.Handle, key!.Handle, CFArray.FromNativeObjects (values).Handle);
+ CFMutableDictionary.SetValue (Dictionary.Handle, key!.Handle, CFArray.FromNativeObjects (values!).Handle);
}
#region Sets CFBoolean value
diff --git a/src/appkit.cs b/src/appkit.cs
index d168e24339b6..df49adb14922 100644
--- a/src/appkit.cs
+++ b/src/appkit.cs
@@ -17672,55 +17672,6 @@ interface NSTextAttachmentCell {
NSTextAttachment Attachment { get; set; }
}
- [BaseType (typeof (NSObject))]
- interface NSTextAttachment : NSCoding, NSSecureCoding {
- [Export ("initWithFileWrapper:")]
- IntPtr Constructor (NSFileWrapper fileWrapper);
-
- [Mac (10,11)]
- [Export ("initWithData:ofType:")]
- [DesignatedInitializer]
- IntPtr Constructor ([NullAllowed] NSData contentData, [NullAllowed] string uti);
-
- //Detected properties
- [Export ("fileWrapper", ArgumentSemantic.Retain)]
- NSFileWrapper FileWrapper { get; set; }
-
- [Export ("attachmentCell", ArgumentSemantic.Retain)]
- NSTextAttachmentCell AttachmentCell { get; set; }
-
- [Mac (10,11)] // 32-bit gives: [FAIL] Selector not found for AppKit.NSTextAttachment : contents
- [NullAllowed, Export ("contents", ArgumentSemantic.Copy)]
- NSData Contents { get; set; }
-
- [Mac (10,11)]
- [NullAllowed, Export ("fileType")]
- string FileType { get; set; }
-
- [Mac (10,11)] // 32-bit gives: [FAIL] Selector not found for AppKit.NSTextAttachment : image
- [NullAllowed, Export ("image", ArgumentSemantic.Strong)]
- NSImage Image { get; set; }
-
- [Mac (10,11)] // 32-bit gives: [FAIL] Selector not found for AppKit.NSTextAttachment : bounds
- [Export ("bounds", ArgumentSemantic.Assign)]
- CGRect Bounds { get; set; }
- }
-
- [Mac (10,11)]
- [Protocol, Model]
- [BaseType (typeof(NSObject))]
- interface NSTextAttachmentContainer
- {
- [Abstract]
- [Export ("imageForBounds:textContainer:characterIndex:")]
- [return: NullAllowed]
- NSImage GetImage (CGRect imageBounds, [NullAllowed] NSTextContainer textContainer, nuint charIndex);
-
- [Abstract]
- [Export ("attachmentBoundsForTextContainer:proposedLineFragment:glyphPosition:characterIndex:")]
- CGRect GetAttachmentBounds ([NullAllowed] NSTextContainer textContainer, CGRect lineFrag, CGPoint position, nuint charIndex);
- }
-
[DesignatedDefaultCtor]
[BaseType (typeof (NSObject))]
interface NSTextBlock : NSCoding, NSCopying, NSSecureCoding {
diff --git a/src/gamecontroller.cs b/src/gamecontroller.cs
index d590f760c19b..7a25bfb54227 100644
--- a/src/gamecontroller.cs
+++ b/src/gamecontroller.cs
@@ -1995,6 +1995,26 @@ enum GCInputDirectional {
[Field ("GCInputDirectionalCardinalDpad")]
CardinalDpad,
+
+ [TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15,0)]
+ [Field ("GCInputDirectionalCenterButton")]
+ CenterButton,
+
+ [TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15,0)]
+ [Field ("GCInputDirectionalTouchSurfaceButton")]
+ TouchSurfaceButton,
+ }
+
+ [TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15,0)]
+ enum GCInputMicroGamepad {
+ [Field ("GCInputMicroGamepadDpad")]
+ Dpad,
+
+ [Field ("GCInputMicroGamepadButtonA")]
+ ButtonA,
+
+ [Field ("GCInputMicroGamepadButtonX")]
+ ButtonX,
}
delegate GCVirtualControllerElementConfiguration GCVirtualControllerElementUpdateBlock (GCVirtualControllerElementConfiguration configuration);
@@ -2008,8 +2028,12 @@ interface GCVirtualController
[Export ("virtualControllerWithConfiguration:")]
GCVirtualController Create (GCVirtualControllerConfiguration configuration);
+ [Export ("initWithConfiguration:")]
+ [DesignatedInitializer]
+ IntPtr Constructor (GCVirtualControllerConfiguration configuration);
+
[Async]
- [Export ("connectWithReply:")]
+ [Export ("connectWithReplyHandler:")]
void Connect ([NullAllowed] Action reply);
[Export ("disconnect")]
@@ -2018,8 +2042,8 @@ interface GCVirtualController
[NullAllowed, Export ("controller", ArgumentSemantic.Weak)]
GCController Controller { get; }
- [Export ("changeElement:configuration:")]
- void Change (string element, GCVirtualControllerElementUpdateBlock configuration);
+ [Export ("updateConfigurationForElement:configuration:")]
+ void UpdateConfiguration (string element, GCVirtualControllerElementUpdateBlock configuration);
}
[NoTV, NoMac, NoWatch, iOS (15,0), MacCatalyst (15,0)]
@@ -2035,12 +2059,12 @@ interface GCVirtualControllerConfiguration
interface GCVirtualControllerElementConfiguration
{
[Export ("hidden")]
- bool Hidden { get; set; }
+ bool Hidden { [Bind ("isHidden")] get; set; }
[NullAllowed, Export ("path", ArgumentSemantic.Strong)]
BezierPath Path { get; set; }
- [Export ("touchpad")]
- bool Touchpad { get; set; }
+ [Export ("actsAsTouchpad")]
+ bool ActsAsTouchpad { get; set; }
}
}
diff --git a/src/imageio.cs b/src/imageio.cs
index d71b42e4b289..3d3a220d1385 100644
--- a/src/imageio.cs
+++ b/src/imageio.cs
@@ -576,6 +576,9 @@ interface CGImageProperties {
NSString PNGSoftware { get; }
[Field ("kCGImagePropertyPNGTitle")]
NSString PNGTitle { get; }
+ [Mac (12, 0), iOS (15, 0), TV (15,0), MacCatalyst (15,0), Watch (8,0)]
+ [Field ("kCGImagePropertyPNGPixelsAspectRatio")]
+ NSString PNGPixelsAspectRatio { get; }
[iOS (9,0)][Mac (10,11)]
[Field ("kCGImagePropertyPNGCompressionFilter")]
diff --git a/src/uikit.cs b/src/uikit.cs
index 6b54f4fa6168..903ca55a48a3 100644
--- a/src/uikit.cs
+++ b/src/uikit.cs
@@ -412,56 +412,6 @@ interface NSShadow : NSSecureCoding, NSCopying {
}
#if !WATCH
- [Model]
- [Protocol]
- [BaseType (typeof (NSObject))]
- partial interface NSTextAttachmentContainer {
- [Abstract]
- [Export ("imageForBounds:textContainer:characterIndex:")]
- UIImage GetImageForBounds (CGRect bounds, [NullAllowed] NSTextContainer textContainer, nuint characterIndex);
-
- [Abstract]
- [Export ("attachmentBoundsForTextContainer:proposedLineFragment:glyphPosition:characterIndex:")]
- CGRect GetAttachmentBounds (NSTextContainer textContainer, CGRect proposedLineFragment, CGPoint glyphPosition, nuint characterIndex);
- }
-
- [iOS (7,0)]
- [BaseType (typeof (NSObject))]
- partial interface NSTextAttachment : NSTextAttachmentContainer, NSSecureCoding
-#if !WATCH
- , UIAccessibilityContentSizeCategoryImageAdjusting
-#endif // !WATCH
- {
- [DesignatedInitializer]
- [Export ("initWithData:ofType:")]
- [PostGet ("Contents")]
- IntPtr Constructor ([NullAllowed] NSData contentData, [NullAllowed] string uti);
-
- [NullAllowed] // by default this property is null
- [Export ("contents", ArgumentSemantic.Retain)]
- NSData Contents { get; set; }
-
- [NullAllowed] // by default this property is null
- [Export ("fileType", ArgumentSemantic.Retain)]
- string FileType { get; set; }
-
- [NullAllowed] // by default this property is null
- [Export ("image", ArgumentSemantic.Retain)]
- UIImage Image { get; set; }
-
- [Export ("bounds")]
- CGRect Bounds { get; set; }
-
- [NullAllowed] // by default this property is null
- [Export ("fileWrapper", ArgumentSemantic.Retain)]
- NSFileWrapper FileWrapper { get; set; }
-
- [Watch (6,0), TV (13,0), iOS (13,0)]
- [Static]
- [Export ("textAttachmentWithImage:")]
- NSTextAttachment Create (UIImage image);
- }
-
[Protocol]
// no [Model] since it's not exposed in any API
// only NSTextContainer conforms to it but it's only queried by iOS itself
diff --git a/src/xkit.cs b/src/xkit.cs
index d0bdc580ac19..9c8f0cb1f5dc 100644
--- a/src/xkit.cs
+++ b/src/xkit.cs
@@ -26,6 +26,7 @@
using NSImageScaling=System.Object;
using NSRulerMarker=System.Object;
using NSRulerView=System.Object;
+using NSTextAttachmentCell=System.Object;
using NSTextBlock=System.Object;
using NSTextList=System.Object;
using NSTextTableBlock=System.Object;
@@ -49,11 +50,13 @@
#endif // !MONOMAC
#if MONOMAC
+using Image=AppKit.NSImage;
using TextAlignment=AppKit.NSTextAlignment;
using LineBreakMode=AppKit.NSLineBreakMode;
using CollectionLayoutSectionOrthogonalScrollingBehavior=AppKit.NSCollectionLayoutSectionOrthogonalScrollingBehavior;
using CollectionElementCategory=AppKit.NSCollectionElementCategory;
#else
+using Image=UIKit.UIImage;
using TextAlignment=UIKit.UITextAlignment;
using LineBreakMode=UIKit.UILineBreakMode;
using CollectionLayoutSectionOrthogonalScrollingBehavior=UIKit.UICollectionLayoutSectionOrthogonalScrollingBehavior;
@@ -2090,4 +2093,78 @@ interface NSLayoutConstraint
[NullAllowed, Export ("identifier")]
string Identifier { get; set; }
}
+
+ [NoWatch]
+ [Mac (10,11)]
+ [MacCatalyst (13,0)]
+ [Model]
+ [Protocol]
+ [BaseType (typeof (NSObject))]
+ partial interface NSTextAttachmentContainer {
+ [Abstract]
+ [Export ("imageForBounds:textContainer:characterIndex:")]
+ [return: NullAllowed]
+#if MONOMAC && !XAMCORE_4_0
+ Image GetImage (CGRect imageBounds, [NullAllowed] NSTextContainer textContainer, nuint charIndex);
+#else
+ Image GetImageForBounds (CGRect bounds, [NullAllowed] NSTextContainer textContainer, nuint characterIndex);
+#endif
+
+ [Abstract]
+ [Export ("attachmentBoundsForTextContainer:proposedLineFragment:glyphPosition:characterIndex:")]
+ CGRect GetAttachmentBounds ([NullAllowed] NSTextContainer textContainer, CGRect proposedLineFragment, CGPoint glyphPosition, nuint characterIndex);
+ }
+
+ [iOS (7,0)]
+ [NoWatch]
+ [MacCatalyst (13,0)]
+ [BaseType (typeof (NSObject))]
+ partial interface NSTextAttachment : NSTextAttachmentContainer, NSSecureCoding
+#if !WATCH && !MONOMAC
+ , UIAccessibilityContentSizeCategoryImageAdjusting
+#endif // !WATCH
+ {
+ [NoiOS][NoTV][NoMacCatalyst]
+ [Export ("initWithFileWrapper:")]
+ IntPtr Constructor (NSFileWrapper fileWrapper);
+
+ [Mac (10,11)]
+ [DesignatedInitializer]
+ [Export ("initWithData:ofType:")]
+ [PostGet ("Contents")]
+ IntPtr Constructor ([NullAllowed] NSData contentData, [NullAllowed] string uti);
+
+ [Mac (10,11)]
+ [NullAllowed]
+ [Export ("contents", ArgumentSemantic.Retain)]
+ NSData Contents { get; set; }
+
+ [Mac (10,11)]
+ [NullAllowed]
+ [Export ("fileType", ArgumentSemantic.Retain)]
+ string FileType { get; set; }
+
+ [Mac (10,11)]
+ [NullAllowed]
+ [Export ("image", ArgumentSemantic.Retain)]
+ Image Image { get; set; }
+
+ [Mac (10,11)]
+ [Export ("bounds")]
+ CGRect Bounds { get; set; }
+
+ [NullAllowed]
+ [Export ("fileWrapper", ArgumentSemantic.Retain)]
+ NSFileWrapper FileWrapper { get; set; }
+
+ [NoiOS][NoTV][NoMacCatalyst]
+ [Export ("attachmentCell", ArgumentSemantic.Retain)]
+ NSTextAttachmentCell AttachmentCell { get; set; }
+
+ [NoMac]
+ [Watch (6,0), TV (13,0), iOS (13,0)]
+ [Static]
+ [Export ("textAttachmentWithImage:")]
+ NSTextAttachment Create (Image image);
+ }
}
diff --git a/tests/introspection/ApiCMAttachmentTest.cs b/tests/introspection/ApiCMAttachmentTest.cs
index e5acc37281a5..63191aede12d 100644
--- a/tests/introspection/ApiCMAttachmentTest.cs
+++ b/tests/introspection/ApiCMAttachmentTest.cs
@@ -246,6 +246,8 @@ protected INativeObject GetINativeInstance (Type t)
switch (t.Name) {
case "CFAllocator":
return CFAllocator.SystemDefault;
+ case "CFArray":
+ return Runtime.GetINativeObject (new NSArray ().Handle, false);
case "CFBundle":
var bundles = CFBundle.GetAll ();
if (bundles.Length > 0)
diff --git a/tests/monotouch-test/ObjCRuntime/RuntimeTest.cs b/tests/monotouch-test/ObjCRuntime/RuntimeTest.cs
index 903691a1ceb0..8c574a2bc8e4 100644
--- a/tests/monotouch-test/ObjCRuntime/RuntimeTest.cs
+++ b/tests/monotouch-test/ObjCRuntime/RuntimeTest.cs
@@ -456,9 +456,6 @@ public void GetINativeObjectTest ()
}
[Test]
-#if NET
- [Ignore ("https://github.com/dotnet/runtime/issues/32543")]
-#endif
public void NSAutoreleasePoolInThreadPool ()
{
var count = 100;
diff --git a/tests/xharness/Jenkins/Reports/HtmlReportWriter.cs b/tests/xharness/Jenkins/Reports/HtmlReportWriter.cs
index 2682105dd0b6..bd8700d666af 100644
--- a/tests/xharness/Jenkins/Reports/HtmlReportWriter.cs
+++ b/tests/xharness/Jenkins/Reports/HtmlReportWriter.cs
@@ -405,8 +405,12 @@ public void Write (IList allTasks, StreamWriter writer)
candidates = (runTest as RunSimulatorTask)?.Candidates;
if (candidates != null) {
writer.WriteLine ($"Candidate devices:
");
- foreach (var candidate in candidates)
- writer.WriteLine ($" {candidate.Name} (Version: {candidate.OSVersion})
");
+ try {
+ foreach (var candidate in candidates)
+ writer.WriteLine ($" {candidate.Name} (Version: {candidate.OSVersion})
");
+ } catch (Exception e) {
+ writer.WriteLine ($" Failed to list candidates: {e}");
+ }
}
writer.WriteLine ($"Build duration: {runTest.BuildTask.Duration}
");
}
diff --git a/tests/xtro-sharpie/MacCatalyst-GameController.todo b/tests/xtro-sharpie/MacCatalyst-GameController.todo
deleted file mode 100644
index 4527b6accfb2..000000000000
--- a/tests/xtro-sharpie/MacCatalyst-GameController.todo
+++ /dev/null
@@ -1,11 +0,0 @@
-!missing-field! GCInputDirectionalCenterButton not bound
-!missing-field! GCInputDirectionalTouchSurfaceButton not bound
-!missing-field! GCInputMicroGamepadButtonA not bound
-!missing-field! GCInputMicroGamepadButtonX not bound
-!missing-field! GCInputMicroGamepadDpad not bound
-!missing-selector! GCVirtualController::connectWithReplyHandler: not bound
-!missing-selector! GCVirtualController::initWithConfiguration: not bound
-!missing-selector! GCVirtualController::updateConfigurationForElement:configuration: not bound
-!missing-selector! GCVirtualControllerElementConfiguration::actsAsTouchpad not bound
-!missing-selector! GCVirtualControllerElementConfiguration::isHidden not bound
-!missing-selector! GCVirtualControllerElementConfiguration::setActsAsTouchpad: not bound
diff --git a/tests/xtro-sharpie/MacCatalyst-ImageIO.todo b/tests/xtro-sharpie/MacCatalyst-ImageIO.todo
deleted file mode 100644
index b5a8ec1f4414..000000000000
--- a/tests/xtro-sharpie/MacCatalyst-ImageIO.todo
+++ /dev/null
@@ -1 +0,0 @@
-!missing-field! kCGImagePropertyPNGPixelsAspectRatio not bound
diff --git a/tests/xtro-sharpie/MacCatalyst-UIKit.todo b/tests/xtro-sharpie/MacCatalyst-UIKit.todo
index 9467e409e9d0..99c647e3bb59 100644
--- a/tests/xtro-sharpie/MacCatalyst-UIKit.todo
+++ b/tests/xtro-sharpie/MacCatalyst-UIKit.todo
@@ -114,7 +114,6 @@
!missing-field! UITextContentTypeFlightNumber not bound
!missing-field! UITextContentTypeShipmentTrackingNumber not bound
!missing-null-allowed! 'CoreAnimation.CADisplayLink UIKit.UIScreen::CreateDisplayLink(Foundation.NSObject,ObjCRuntime.Selector)' is missing an [NullAllowed] on return type
-!missing-null-allowed! 'CoreGraphics.CGRect UIKit.NSTextAttachmentContainer::GetAttachmentBounds(UIKit.NSTextContainer,CoreGraphics.CGRect,CoreGraphics.CGPoint,System.nuint)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'Foundation.NSArray Foundation.NSBundle::LoadNib(System.String,Foundation.NSObject,Foundation.NSDictionary)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'Foundation.NSArray[] UIKit.UIPasteboard::PasteBoardTypesForSet(Foundation.NSIndexSet)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'Foundation.NSArray[] UIKit.UIPasteboard::PasteBoardTypesForSet(Foundation.NSIndexSet)' is missing an [NullAllowed] on return type
@@ -351,7 +350,6 @@
!missing-null-allowed! 'UIKit.UIFontDescriptor UIKit.UIFontDescriptor::CreateWithTraits(UIKit.UIFontDescriptorSymbolicTraits)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIGestureRecognizer UIKit.UINavigationController::get_InteractivePopGestureRecognizer()' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIGestureRecognizer[] UIKit.UITouch::get_GestureRecognizers()' is missing an [NullAllowed] on return type
-!missing-null-allowed! 'UIKit.UIImage UIKit.NSTextAttachmentContainer::GetImageForBounds(CoreGraphics.CGRect,UIKit.NSTextContainer,System.nuint)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIActivity::get_Image()' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIActivityItemSource::GetThumbnailImageForActivity(UIKit.UIActivityViewController,Foundation.NSString,CoreGraphics.CGSize)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIBarButtonItem::GetBackButtonBackgroundImage(UIKit.UIControlState,UIKit.UIBarMetrics)' is missing an [NullAllowed] on return type
diff --git a/tests/xtro-sharpie/iOS-GameController.todo b/tests/xtro-sharpie/iOS-GameController.todo
deleted file mode 100644
index 4527b6accfb2..000000000000
--- a/tests/xtro-sharpie/iOS-GameController.todo
+++ /dev/null
@@ -1,11 +0,0 @@
-!missing-field! GCInputDirectionalCenterButton not bound
-!missing-field! GCInputDirectionalTouchSurfaceButton not bound
-!missing-field! GCInputMicroGamepadButtonA not bound
-!missing-field! GCInputMicroGamepadButtonX not bound
-!missing-field! GCInputMicroGamepadDpad not bound
-!missing-selector! GCVirtualController::connectWithReplyHandler: not bound
-!missing-selector! GCVirtualController::initWithConfiguration: not bound
-!missing-selector! GCVirtualController::updateConfigurationForElement:configuration: not bound
-!missing-selector! GCVirtualControllerElementConfiguration::actsAsTouchpad not bound
-!missing-selector! GCVirtualControllerElementConfiguration::isHidden not bound
-!missing-selector! GCVirtualControllerElementConfiguration::setActsAsTouchpad: not bound
diff --git a/tests/xtro-sharpie/iOS-ImageIO.todo b/tests/xtro-sharpie/iOS-ImageIO.todo
deleted file mode 100644
index b5a8ec1f4414..000000000000
--- a/tests/xtro-sharpie/iOS-ImageIO.todo
+++ /dev/null
@@ -1 +0,0 @@
-!missing-field! kCGImagePropertyPNGPixelsAspectRatio not bound
diff --git a/tests/xtro-sharpie/iOS-UIKit.ignore b/tests/xtro-sharpie/iOS-UIKit.ignore
index a95e848997bc..7b43d0159fc5 100644
--- a/tests/xtro-sharpie/iOS-UIKit.ignore
+++ b/tests/xtro-sharpie/iOS-UIKit.ignore
@@ -128,7 +128,6 @@
# Initial result from new rule missing-null-allowed
!missing-null-allowed! 'CoreAnimation.CADisplayLink UIKit.UIScreen::CreateDisplayLink(Foundation.NSObject,ObjCRuntime.Selector)' is missing an [NullAllowed] on return type
-!missing-null-allowed! 'CoreGraphics.CGRect UIKit.NSTextAttachmentContainer::GetAttachmentBounds(UIKit.NSTextContainer,CoreGraphics.CGRect,CoreGraphics.CGPoint,System.nuint)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'Foundation.NSArray Foundation.NSBundle::LoadNib(System.String,Foundation.NSObject,Foundation.NSDictionary)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'Foundation.NSArray[] UIKit.UIPasteboard::PasteBoardTypesForSet(Foundation.NSIndexSet)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'Foundation.NSArray[] UIKit.UIPasteboard::PasteBoardTypesForSet(Foundation.NSIndexSet)' is missing an [NullAllowed] on return type
@@ -367,7 +366,6 @@
!missing-null-allowed! 'UIKit.UIFontDescriptor UIKit.UIFontDescriptor::CreateWithTraits(UIKit.UIFontDescriptorSymbolicTraits)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIGestureRecognizer UIKit.UINavigationController::get_InteractivePopGestureRecognizer()' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIGestureRecognizer[] UIKit.UITouch::get_GestureRecognizers()' is missing an [NullAllowed] on return type
-!missing-null-allowed! 'UIKit.UIImage UIKit.NSTextAttachmentContainer::GetImageForBounds(CoreGraphics.CGRect,UIKit.NSTextContainer,System.nuint)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIActivity::get_Image()' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIActivityItemSource::GetThumbnailImageForActivity(UIKit.UIActivityViewController,Foundation.NSString,CoreGraphics.CGSize)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIBarButtonItem::GetBackButtonBackgroundImage(UIKit.UIControlState,UIKit.UIBarMetrics)' is missing an [NullAllowed] on return type
diff --git a/tests/xtro-sharpie/macOS-AppKit.ignore b/tests/xtro-sharpie/macOS-AppKit.ignore
index 9c2bb2758dd2..220adfad4040 100644
--- a/tests/xtro-sharpie/macOS-AppKit.ignore
+++ b/tests/xtro-sharpie/macOS-AppKit.ignore
@@ -637,7 +637,6 @@
!missing-protocol-conformance! NSTableView should conform to NSTextViewDelegate
!missing-protocol-conformance! NSText should conform to NSChangeSpelling
!missing-protocol-conformance! NSText should conform to NSIgnoreMisspelledWords
-!missing-protocol-conformance! NSTextAttachment should conform to NSTextAttachmentContainer
!missing-protocol-conformance! NSTextAttachmentCell should conform to NSTextAttachmentCell
!missing-protocol-conformance! NSTextContainer should conform to NSTextLayoutOrientationProvider
!missing-protocol-conformance! NSTextView should conform to NSTextLayoutOrientationProvider
@@ -2113,7 +2112,6 @@
!missing-null-allowed! 'System.Void AppKit.NSText::Unscript(Foundation.NSObject)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'System.Void AppKit.NSTextAttachment::.ctor(Foundation.NSFileWrapper)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'System.Void AppKit.NSTextAttachment::set_AttachmentCell(AppKit.NSTextAttachmentCell)' is missing an [NullAllowed] on parameter #0
-!missing-null-allowed! 'System.Void AppKit.NSTextAttachment::set_FileWrapper(Foundation.NSFileWrapper)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'System.Void AppKit.NSTextBlock::set_BackgroundColor(AppKit.NSColor)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'System.Void AppKit.NSTextBlock::SetBorderColor(AppKit.NSColor)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'System.Void AppKit.NSTextBlock::SetBorderColor(AppKit.NSColor,AppKit.NSRectEdge)' is missing an [NullAllowed] on parameter #0
diff --git a/tests/xtro-sharpie/macOS-GameController.todo b/tests/xtro-sharpie/macOS-GameController.todo
deleted file mode 100644
index b4b4b4500e69..000000000000
--- a/tests/xtro-sharpie/macOS-GameController.todo
+++ /dev/null
@@ -1,5 +0,0 @@
-!missing-field! GCInputDirectionalCenterButton not bound
-!missing-field! GCInputDirectionalTouchSurfaceButton not bound
-!missing-field! GCInputMicroGamepadButtonA not bound
-!missing-field! GCInputMicroGamepadButtonX not bound
-!missing-field! GCInputMicroGamepadDpad not bound
diff --git a/tests/xtro-sharpie/macOS-ImageIO.todo b/tests/xtro-sharpie/macOS-ImageIO.todo
deleted file mode 100644
index b5a8ec1f4414..000000000000
--- a/tests/xtro-sharpie/macOS-ImageIO.todo
+++ /dev/null
@@ -1 +0,0 @@
-!missing-field! kCGImagePropertyPNGPixelsAspectRatio not bound
diff --git a/tests/xtro-sharpie/tvOS-GameController.todo b/tests/xtro-sharpie/tvOS-GameController.todo
deleted file mode 100644
index b4b4b4500e69..000000000000
--- a/tests/xtro-sharpie/tvOS-GameController.todo
+++ /dev/null
@@ -1,5 +0,0 @@
-!missing-field! GCInputDirectionalCenterButton not bound
-!missing-field! GCInputDirectionalTouchSurfaceButton not bound
-!missing-field! GCInputMicroGamepadButtonA not bound
-!missing-field! GCInputMicroGamepadButtonX not bound
-!missing-field! GCInputMicroGamepadDpad not bound
diff --git a/tests/xtro-sharpie/tvOS-ImageIO.todo b/tests/xtro-sharpie/tvOS-ImageIO.todo
deleted file mode 100644
index b5a8ec1f4414..000000000000
--- a/tests/xtro-sharpie/tvOS-ImageIO.todo
+++ /dev/null
@@ -1 +0,0 @@
-!missing-field! kCGImagePropertyPNGPixelsAspectRatio not bound
diff --git a/tests/xtro-sharpie/tvOS-UIKit.ignore b/tests/xtro-sharpie/tvOS-UIKit.ignore
index c227e3f15ba5..eca5b600848a 100644
--- a/tests/xtro-sharpie/tvOS-UIKit.ignore
+++ b/tests/xtro-sharpie/tvOS-UIKit.ignore
@@ -142,7 +142,6 @@
# Initial result from new rule missing-null-allowed
!missing-null-allowed! 'CoreAnimation.CADisplayLink UIKit.UIScreen::CreateDisplayLink(Foundation.NSObject,ObjCRuntime.Selector)' is missing an [NullAllowed] on return type
-!missing-null-allowed! 'CoreGraphics.CGRect UIKit.NSTextAttachmentContainer::GetAttachmentBounds(UIKit.NSTextContainer,CoreGraphics.CGRect,CoreGraphics.CGPoint,System.nuint)' is missing an [NullAllowed] on parameter #0
!missing-null-allowed! 'Foundation.NSArray Foundation.NSBundle::LoadNib(System.String,Foundation.NSObject,Foundation.NSDictionary)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'Foundation.NSAttributedString UIKit.UIButton::get_CurrentAttributedTitle()' is missing an [NullAllowed] on return type
!missing-null-allowed! 'Foundation.NSAttributedString UIKit.UIButton::GetAttributedTitle(UIKit.UIControlState)' is missing an [NullAllowed] on return type
@@ -306,7 +305,6 @@
!missing-null-allowed! 'UIKit.UIDynamicAnimator UIKit.UIDynamicBehavior::get_DynamicAnimator()' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIFontDescriptor UIKit.UIFontDescriptor::CreateWithTraits(UIKit.UIFontDescriptorSymbolicTraits)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIGestureRecognizer[] UIKit.UITouch::get_GestureRecognizers()' is missing an [NullAllowed] on return type
-!missing-null-allowed! 'UIKit.UIImage UIKit.NSTextAttachmentContainer::GetImageForBounds(CoreGraphics.CGRect,UIKit.NSTextContainer,System.nuint)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIBarButtonItem::GetBackgroundImage(UIKit.UIControlState,UIKit.UIBarButtonItemStyle,UIKit.UIBarMetrics)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIBarButtonItem::GetBackgroundImage(UIKit.UIControlState,UIKit.UIBarMetrics)' is missing an [NullAllowed] on return type
!missing-null-allowed! 'UIKit.UIImage UIKit.UIButton::BackgroundImageForState(UIKit.UIControlState)' is missing an [NullAllowed] on return type
diff --git a/tests/xtro-sharpie/watchOS-ImageIO.todo b/tests/xtro-sharpie/watchOS-ImageIO.todo
deleted file mode 100644
index b5a8ec1f4414..000000000000
--- a/tests/xtro-sharpie/watchOS-ImageIO.todo
+++ /dev/null
@@ -1 +0,0 @@
-!missing-field! kCGImagePropertyPNGPixelsAspectRatio not bound