Skip to content

Commit 8f2b596

Browse files
authored
Fix nullability issues in MacCatalystSupport (#109)
1 parent 33502e1 commit 8f2b596

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

Xamarin.MacDev/MacCatalystSupport.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
#nullable enable
2727

2828
using System;
29+
#if NET
30+
using System.Diagnostics.CodeAnalysis;
31+
#endif
2932
using System.Collections.Generic;
3033
using System.IO;
3134

@@ -58,7 +61,7 @@ public static void LoadVersionMaps (string sdkDirectory, out Dictionary<string,
5861
}
5962
}
6063

61-
public static bool TryGetMacOSVersion (string sdkDirectory, Version iOSVersion, out Version? macOSVersion, out ICollection<string> knowniOSVersions)
64+
public static bool TryGetMacOSVersion (string sdkDirectory, Version iOSVersion, [NotNullWhen (true)] out Version? macOSVersion, out ICollection<string> knowniOSVersions)
6265
{
6366
macOSVersion = null;
6467

@@ -68,7 +71,7 @@ public static bool TryGetMacOSVersion (string sdkDirectory, Version iOSVersion,
6871
return Version.TryParse (strValue, out macOSVersion);
6972
}
7073

71-
public static bool TryGetMacOSVersion (string sdkDirectory, string iOSVersion, out string macOSVersion, out ICollection<string> knowniOSVersions)
74+
public static bool TryGetMacOSVersion (string sdkDirectory, string iOSVersion, [NotNullWhen (true)] out string? macOSVersion, out ICollection<string> knowniOSVersions)
7275
{
7376
LoadVersionMaps (sdkDirectory, out var map, out var _);
7477

@@ -77,7 +80,7 @@ public static bool TryGetMacOSVersion (string sdkDirectory, string iOSVersion, o
7780
return map.TryGetValue (iOSVersion.ToString (), out macOSVersion);
7881
}
7982

80-
public static bool TryGetiOSVersion (string sdkDirectory, Version macOSVersion, out Version? iOSVersion, out ICollection<string> knownMacOSVersions)
83+
public static bool TryGetiOSVersion (string sdkDirectory, Version macOSVersion, [NotNullWhen (true)] out Version? iOSVersion, out ICollection<string> knownMacOSVersions)
8184
{
8285
iOSVersion = null;
8386

@@ -87,7 +90,7 @@ public static bool TryGetiOSVersion (string sdkDirectory, Version macOSVersion,
8790
return Version.TryParse (strValue, out iOSVersion);
8891
}
8992

90-
public static bool TryGetiOSVersion (string sdkDirectory, string macOSVersion, out string iOSVersion, out ICollection<string> knownMacOSVersions)
93+
public static bool TryGetiOSVersion (string sdkDirectory, string macOSVersion, [NotNullWhen (true)] out string? iOSVersion, out ICollection<string> knownMacOSVersions)
9194
{
9295
LoadVersionMaps (sdkDirectory, out var _, out var map);
9396

@@ -97,3 +100,14 @@ public static bool TryGetiOSVersion (string sdkDirectory, string macOSVersion, o
97100
}
98101
}
99102
}
103+
104+
#if !NET
105+
namespace System.Diagnostics.CodeAnalysis {
106+
// from: https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/Diagnostics/CodeAnalysis/NullableAttributes.cs
107+
[AttributeUsage (AttributeTargets.Parameter, Inherited = false)]
108+
internal sealed class NotNullWhenAttribute : Attribute {
109+
public NotNullWhenAttribute (bool returnValue) => ReturnValue = returnValue;
110+
public bool ReturnValue { get; }
111+
}
112+
}
113+
#endif // !NET

0 commit comments

Comments
 (0)