2626#nullable enable
2727
2828using System ;
29+ #if NET
30+ using System . Diagnostics . CodeAnalysis ;
31+ #endif
2932using System . Collections . Generic ;
3033using 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