diff --git a/src/Movere/Common/MaybeNullWhenFalseAttribute.cs b/src/Movere/Common/MaybeNullWhenFalseAttribute.cs new file mode 100644 index 0000000..4f2dcf3 --- /dev/null +++ b/src/Movere/Common/MaybeNullWhenFalseAttribute.cs @@ -0,0 +1,7 @@ +namespace System.Runtime.CompilerServices +{ + [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false)] + internal sealed class MaybeNullWhenFalseAttribute : Attribute + { + } +} diff --git a/src/Movere/Common/StackExtensions.cs b/src/Movere/Common/StackExtensions.cs index 8fca103..215aaff 100644 --- a/src/Movere/Common/StackExtensions.cs +++ b/src/Movere/Common/StackExtensions.cs @@ -1,10 +1,12 @@ #if NETSTANDARD2_0 +using System.Runtime.CompilerServices; + namespace System.Collections.Generic { internal static class StackExtensions { - public static bool TryPop(this Stack stack, out T result) + public static bool TryPop(this Stack stack, [MaybeNullWhenFalse] out T result) { if (stack.Count > 0) { @@ -12,9 +14,7 @@ public static bool TryPop(this Stack stack, out T result) return true; } -#pragma warning disable CS8653 // A default expression introduces a null value for a type parameter. - result = default; -#pragma warning restore CS8653 // A default expression introduces a null value for a type parameter. + result = default!; return false; } } diff --git a/src/Movere/ViewModels/FileExplorerTreeViewModel.cs b/src/Movere/ViewModels/FileExplorerTreeViewModel.cs index 3b36908..d8937c8 100644 --- a/src/Movere/ViewModels/FileExplorerTreeViewModel.cs +++ b/src/Movere/ViewModels/FileExplorerTreeViewModel.cs @@ -21,9 +21,9 @@ public FileExplorerTreeViewModel() FolderHierarchy = _drives.Select(d => new Folder(d.RootDirectory)); -#pragma warning disable CS8619 // Nullability of reference types in value doesn't match target type. - SelectedFolderChanged = this.WhenAnyValue(vm => vm.SelectedFolder).Where(folder => folder != null); -#pragma warning restore CS8619 // Nullability of reference types in value doesn't match target type. + SelectedFolderChanged = from folder in this.WhenAnyValue(vm => vm.SelectedFolder) + where folder != null + select folder; } public IEnumerable FolderHierarchy { get; }