From 25e86dbfc6b82ecfc3bbc701a1907bf51e192252 Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Thu, 28 Jan 2021 23:10:31 +0800 Subject: [PATCH 1/2] Add NotNullWhen(true) on Directory/File.Exists. --- src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs | 2 +- src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs b/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs index c1790b0658ce64..bf4c13356c1b2c 100644 --- a/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs +++ b/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs @@ -126,7 +126,7 @@ public static void Decrypt(string path) { } public static void Delete(string path) { } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static void Encrypt(string path) { } - public static bool Exists(string? path) { throw null; } + public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhen(true)] string? path) { throw null; } public static System.IO.FileAttributes GetAttributes(string path) { throw null; } public static System.DateTime GetCreationTime(string path) { throw null; } public static System.DateTime GetCreationTimeUtc(string path) { throw null; } diff --git a/src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs b/src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs index 4139de67fb83b9..4ffc302bcd70d5 100644 --- a/src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs +++ b/src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs @@ -5,6 +5,7 @@ using System.IO; using System.Collections.Generic; using System.Linq; +using System.Diagnostics.CodeAnalysis; #if MS_IO_REDIST using Microsoft.IO.Enumeration; @@ -49,7 +50,7 @@ public static DirectoryInfo CreateDirectory(string path) } // Tests if the given path refers to an existing DirectoryInfo on disk. - public static bool Exists(string? path) + public static bool Exists([NotNullWhen(true)] string? path) { try { From aef304125da9b093032d1c1a6424333669ec872d Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Fri, 29 Jan 2021 00:24:48 +0800 Subject: [PATCH 2/2] Apply suggestions. --- .../System.IO.FileSystem/ref/System.IO.FileSystem.cs | 4 ++-- src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs b/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs index bf4c13356c1b2c..64c2bbc309368e 100644 --- a/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs +++ b/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs @@ -23,7 +23,7 @@ public static void Delete(string path, bool recursive) { } public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { throw null; } public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; } public static System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; } - public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhen(true)] string? path) { throw null; } + public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] string? path) { throw null; } public static System.DateTime GetCreationTime(string path) { throw null; } public static System.DateTime GetCreationTimeUtc(string path) { throw null; } public static string GetCurrentDirectory() { throw null; } @@ -126,7 +126,7 @@ public static void Decrypt(string path) { } public static void Delete(string path) { } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static void Encrypt(string path) { } - public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhen(true)] string? path) { throw null; } + public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] string? path) { throw null; } public static System.IO.FileAttributes GetAttributes(string path) { throw null; } public static System.DateTime GetCreationTime(string path) { throw null; } public static System.DateTime GetCreationTimeUtc(string path) { throw null; } diff --git a/src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs b/src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs index 4ffc302bcd70d5..3d02ebd98a6beb 100644 --- a/src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs +++ b/src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs @@ -2,10 +2,10 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.IO; using System.Collections.Generic; -using System.Linq; using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Linq; #if MS_IO_REDIST using Microsoft.IO.Enumeration;