From d5cee0e997d84013823cf4a150ea02d16820959e Mon Sep 17 00:00:00 2001 From: William Godbe Date: Tue, 1 Jun 2021 10:20:54 -0700 Subject: [PATCH 01/16] Update SDK --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 0d8c6688b1ea..2c66294f4de5 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "6.0.100-preview.5.21264.3" + "version": "6.0.100-preview.6.21301.1" }, "tools": { - "dotnet": "6.0.100-preview.5.21264.3", + "dotnet": "6.0.100-preview.6.21301.1", "runtimes": { "dotnet/x64": [ "2.1.27", From bb2e26309c069a00756f7fc92f8876d067a8aee5 Mon Sep 17 00:00:00 2001 From: John Luo Date: Fri, 4 Jun 2021 09:55:11 -0700 Subject: [PATCH 02/16] Add diagnostic for tracing in test --- src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs b/src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs index 42016a6ebc30..c558d61993b5 100644 --- a/src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs +++ b/src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs @@ -41,6 +41,8 @@ public async Task LinkedApplicationWorks() StatusMessagesEnabled = false }; + deploymentParameters.EnvironmentVariables["COREHOST_TRACE"] = "1"; + using var deployer = new SelfHostDeployer(deploymentParameters, loggerFactory); var result = await deployer.DeployAsync(); From 766ae32611a13e9f6df6279b2e0cb8aaf36d77eb Mon Sep 17 00:00:00 2001 From: John Luo Date: Fri, 4 Jun 2021 12:47:10 -0700 Subject: [PATCH 03/16] Try disable publish trimming --- .../test/testassets/BasicLinkedApp/BasicLinkedApp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj b/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj index 8fed95f04dc0..6311b22e0fca 100644 --- a/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj +++ b/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj @@ -3,7 +3,7 @@ $(DefaultNetCoreTargetFramework) Exe - true + link false From 4fba3155fda2880ad7e55b62a391bb255e85f6df Mon Sep 17 00:00:00 2001 From: John Luo Date: Fri, 4 Jun 2021 14:15:05 -0700 Subject: [PATCH 04/16] Revert "Try disable publish trimming" This reverts commit 766ae32611a13e9f6df6279b2e0cb8aaf36d77eb. --- .../test/testassets/BasicLinkedApp/BasicLinkedApp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj b/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj index 6311b22e0fca..8fed95f04dc0 100644 --- a/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj +++ b/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj @@ -3,7 +3,7 @@ $(DefaultNetCoreTargetFramework) Exe - + true link false From 18cab2d5968e57e70eb9353b2e077277967dd732 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Tue, 8 Jun 2021 13:27:58 -0700 Subject: [PATCH 05/16] Add BuiltInComInteropSupport --- src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj b/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj index 8fed95f04dc0..e87c4a3617fe 100644 --- a/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj +++ b/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj @@ -6,6 +6,7 @@ true link false + true From 130f7ae20f7866ef9762ee8a48905247c4689ace Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Tue, 8 Jun 2021 14:59:33 -0700 Subject: [PATCH 06/16] Update global.json --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 2c66294f4de5..51f7a17146b9 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "6.0.100-preview.6.21301.1" + "version": "6.0.100-preview.6.21308.9" }, "tools": { "dotnet": "6.0.100-preview.6.21301.1", From a2ccbcb4b201e642bd990e024f5330438dd313cf Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Tue, 8 Jun 2021 14:59:37 -0700 Subject: [PATCH 07/16] Update global.json --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 51f7a17146b9..fe1a867b7286 100644 --- a/global.json +++ b/global.json @@ -3,7 +3,7 @@ "version": "6.0.100-preview.6.21308.9" }, "tools": { - "dotnet": "6.0.100-preview.6.21301.1", + "dotnet": "6.0.100-preview.6.21308.9", "runtimes": { "dotnet/x64": [ "2.1.27", From b5f027a879c0b5b5ad6cbdc6252e387fd26b6a3b Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 9 Jun 2021 09:59:35 -0700 Subject: [PATCH 08/16] Fix analyzer warning and clean up workarounds --- src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs | 2 -- .../test/testassets/BasicLinkedApp/BasicLinkedApp.csproj | 1 + src/Testing/src/AssemblyTestLog.cs | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs b/src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs index c558d61993b5..42016a6ebc30 100644 --- a/src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs +++ b/src/Hosting/test/FunctionalTests/LinkedApplicationTests.cs @@ -41,8 +41,6 @@ public async Task LinkedApplicationWorks() StatusMessagesEnabled = false }; - deploymentParameters.EnvironmentVariables["COREHOST_TRACE"] = "1"; - using var deployer = new SelfHostDeployer(deploymentParameters, loggerFactory); var result = await deployer.DeployAsync(); diff --git a/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj b/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj index e87c4a3617fe..716ea487419e 100644 --- a/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj +++ b/src/Hosting/test/testassets/BasicLinkedApp/BasicLinkedApp.csproj @@ -6,6 +6,7 @@ true link false + true diff --git a/src/Testing/src/AssemblyTestLog.cs b/src/Testing/src/AssemblyTestLog.cs index 64bb0a550357..5ffc577b5cf7 100644 --- a/src/Testing/src/AssemblyTestLog.cs +++ b/src/Testing/src/AssemblyTestLog.cs @@ -131,7 +131,7 @@ public IServiceProvider CreateLoggerServices(ITestOutputHelper output, string cl throw new InvalidOperationException("Output file path could not be constructed due to max path length restrictions. Please shorten test assembly, class or method names."); } - testName = testName.Substring(0, testNameLength / 2) + testName.Substring(testName.Length - testNameLength / 2, testNameLength / 2); + testName = string.Concat(testName.AsSpan(0, testNameLength / 2).ToString(), testName.AsSpan(testName.Length - testNameLength / 2, testNameLength / 2).ToString()); _globalLogger.LogWarning($"To prevent long paths test name was shortened to {testName}."); } From 6140667340465d3e83f896a79a0941744bc1be7d Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 9 Jun 2021 10:43:59 -0700 Subject: [PATCH 09/16] Fix up more analyzer warnings --- src/Http/Http.Abstractions/src/QueryString.cs | 2 +- src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Http/Http.Abstractions/src/QueryString.cs b/src/Http/Http.Abstractions/src/QueryString.cs index ca625d179e80..13fd0f628f43 100644 --- a/src/Http/Http.Abstractions/src/QueryString.cs +++ b/src/Http/Http.Abstractions/src/QueryString.cs @@ -187,7 +187,7 @@ public QueryString Add(QueryString other) } // ?name1=value1 Add ?name2=value2 returns ?name1=value1&name2=value2 - return new QueryString(Value + "&" + other.Value.Substring(1)); + return new QueryString(string.Concat(Value, "&", other.Value.AsSpan(1))); } /// diff --git a/src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs b/src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs index 14831cde0c0c..e4fcc62bfa65 100644 --- a/src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs +++ b/src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs @@ -92,7 +92,7 @@ public void WriteLine(string message) { case 'm': int value; - if (int.TryParse(message.Substring(startIndex, endIndex - startIndex), out value)) + if (int.TryParse(message.AsSpan(startIndex, endIndex - startIndex).ToString(), out value)) { switch (value) { From 9227f6e90212740ea49f167ccc7c8f30c5501573 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 9 Jun 2021 19:02:26 +0000 Subject: [PATCH 10/16] Fix CA1846 issues in WebEncoders and Http --- src/Http/Routing/src/Patterns/RoutePatternParser.cs | 2 +- .../ResponseCompression/src/ResponseCompressionProvider.cs | 2 +- src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs | 6 +++++- src/WebEncoders/src/Testing/HtmlTestEncoder.cs | 4 ++++ src/WebEncoders/src/Testing/JavaScriptTestEncoder.cs | 4 ++++ src/WebEncoders/src/Testing/UrlTestEncoder.cs | 4 ++++ 6 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Http/Routing/src/Patterns/RoutePatternParser.cs b/src/Http/Routing/src/Patterns/RoutePatternParser.cs index 2a52f2daf461..46be6930881c 100644 --- a/src/Http/Routing/src/Patterns/RoutePatternParser.cs +++ b/src/Http/Routing/src/Patterns/RoutePatternParser.cs @@ -568,7 +568,7 @@ private string DebuggerToString() } else { - return _template.Substring(0, _index) + "|" + _template.Substring(_index); + return string.Concat(_template.Substring(0, _index), "|", _template.Substring(_index)); } } } diff --git a/src/Middleware/ResponseCompression/src/ResponseCompressionProvider.cs b/src/Middleware/ResponseCompression/src/ResponseCompressionProvider.cs index 961e844348a4..be3834799c2c 100644 --- a/src/Middleware/ResponseCompression/src/ResponseCompressionProvider.cs +++ b/src/Middleware/ResponseCompression/src/ResponseCompressionProvider.cs @@ -258,7 +258,7 @@ public bool CheckRequestAcceptsCompression(HttpContext context) if (slashPos >= 0) { - var partialMimeType = mimeType!.Substring(0, slashPos.Value) + "/*"; + var partialMimeType = string.Concat(mimeType!.AsSpan(0, slashPos.Value), "/*"); return ShouldCompressExact(partialMimeType); } diff --git a/src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs b/src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs index e4fcc62bfa65..f93ddc0b2f47 100644 --- a/src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs +++ b/src/Shared/CommandLineUtils/CommandLine/AnsiConsole.cs @@ -92,7 +92,11 @@ public void WriteLine(string message) { case 'm': int value; - if (int.TryParse(message.AsSpan(startIndex, endIndex - startIndex).ToString(), out value)) +#if NETFRAMEWORK + if (int.TryParse(message.Substring(startIndex, endIndex - startIndex), out value)) +#else + if (int.TryParse(message.AsSpan(startIndex, endIndex - startIndex), out value)) +#endif { switch (value) { diff --git a/src/WebEncoders/src/Testing/HtmlTestEncoder.cs b/src/WebEncoders/src/Testing/HtmlTestEncoder.cs index d7709be2108c..240264cd52f6 100644 --- a/src/WebEncoders/src/Testing/HtmlTestEncoder.cs +++ b/src/WebEncoders/src/Testing/HtmlTestEncoder.cs @@ -76,7 +76,11 @@ public override void Encode(TextWriter output, string value, int startIndex, int } output.Write("HtmlEncode[["); +#if NETFRAMEWORK || NETSTANDARD output.Write(value.Substring(startIndex, characterCount)); +#else + output.Write(value.AsSpan(startIndex, characterCount)); +#endif output.Write("]]"); } diff --git a/src/WebEncoders/src/Testing/JavaScriptTestEncoder.cs b/src/WebEncoders/src/Testing/JavaScriptTestEncoder.cs index 6c1a884f8f8c..c160bc494730 100644 --- a/src/WebEncoders/src/Testing/JavaScriptTestEncoder.cs +++ b/src/WebEncoders/src/Testing/JavaScriptTestEncoder.cs @@ -76,7 +76,11 @@ public override void Encode(TextWriter output, string value, int startIndex, int } output.Write("JavaScriptEncode[["); +#if NETFRAMEWORK || NETSTANDARD output.Write(value.Substring(startIndex, characterCount)); +#else + output.Write(value.AsSpan(startIndex, characterCount)); +#endif output.Write("]]"); } diff --git a/src/WebEncoders/src/Testing/UrlTestEncoder.cs b/src/WebEncoders/src/Testing/UrlTestEncoder.cs index f8185a9ec7c3..f0ebecd6dca8 100644 --- a/src/WebEncoders/src/Testing/UrlTestEncoder.cs +++ b/src/WebEncoders/src/Testing/UrlTestEncoder.cs @@ -76,7 +76,11 @@ public override void Encode(TextWriter output, string value, int startIndex, int } output.Write("UrlEncode[["); +#if NETFRAMEWORK || NETSTANDARD output.Write(value.Substring(startIndex, characterCount)); +#else + output.Write(value.AsSpan(startIndex, characterCount)); +#endif output.Write("]]"); } From 539120661dcb06804713c079feedf5b32d04ba20 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 9 Jun 2021 19:37:57 +0000 Subject: [PATCH 11/16] Fix CA1845 warnings in Logging.AzureAppServices --- src/Components/WebView/WebView/src/QueryString.cs | 2 +- .../src/BlobAppendReferenceWrapper.cs | 4 ++++ src/Middleware/tools/RazorPageGenerator/Program.cs | 2 +- src/Mvc/Mvc.Core/src/Routing/ViewEnginePath.cs | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Components/WebView/WebView/src/QueryString.cs b/src/Components/WebView/WebView/src/QueryString.cs index 10b8c1821bca..41d20f118d9b 100644 --- a/src/Components/WebView/WebView/src/QueryString.cs +++ b/src/Components/WebView/WebView/src/QueryString.cs @@ -193,7 +193,7 @@ public QueryString Add(QueryString other) } // ?name1=value1 Add ?name2=value2 returns ?name1=value1&name2=value2 - return new QueryString(Value + "&" + other.Value.Substring(1)); + return new QueryString(string.Concat(Value, "&", other.Value.AsSpan(1))); } /// diff --git a/src/Logging.AzureAppServices/src/BlobAppendReferenceWrapper.cs b/src/Logging.AzureAppServices/src/BlobAppendReferenceWrapper.cs index e9805128b72e..e3886e0eaca2 100644 --- a/src/Logging.AzureAppServices/src/BlobAppendReferenceWrapper.cs +++ b/src/Logging.AzureAppServices/src/BlobAppendReferenceWrapper.cs @@ -89,7 +89,11 @@ private static void AppendBlockQuery(UriBuilder uriBuilder) // and set the property with the combined string. var queryToAppend = "comp=appendblock"; if (uriBuilder.Query != null && uriBuilder.Query.Length > 1) +#if NETFRAMEWORK || NETSTANDARD uriBuilder.Query = uriBuilder.Query.Substring(1) + "&" + queryToAppend; +#else + uriBuilder.Query = string.Concat(uriBuilder.Query.AsSpan(1), "&", queryToAppend); +#endif else uriBuilder.Query = queryToAppend; } diff --git a/src/Middleware/tools/RazorPageGenerator/Program.cs b/src/Middleware/tools/RazorPageGenerator/Program.cs index c45e975e1f97..11079e44bd65 100644 --- a/src/Middleware/tools/RazorPageGenerator/Program.cs +++ b/src/Middleware/tools/RazorPageGenerator/Program.cs @@ -218,7 +218,7 @@ private string ProcessFileIncludes() var includeFileName = cshtmlContent.Substring(startIndex + startMatch.Length, endIndex - (startIndex + startMatch.Length)); Console.WriteLine(" Inlining file {0}", includeFileName); var includeFileContent = File.ReadAllText(System.IO.Path.Combine(basePath, includeFileName)); - cshtmlContent = cshtmlContent.Substring(0, startIndex) + includeFileContent + cshtmlContent.Substring(endIndex + endMatch.Length); + cshtmlContent = string.Concat(cshtmlContent.AsSpan(0, startIndex), includeFileContent, cshtmlContent.AsSpan(endIndex + endMatch.Length)); startIndex = startIndex + includeFileContent.Length; } return cshtmlContent; diff --git a/src/Mvc/Mvc.Core/src/Routing/ViewEnginePath.cs b/src/Mvc/Mvc.Core/src/Routing/ViewEnginePath.cs index dc2dcfbd7906..6c76dd1bac65 100644 --- a/src/Mvc/Mvc.Core/src/Routing/ViewEnginePath.cs +++ b/src/Mvc/Mvc.Core/src/Routing/ViewEnginePath.cs @@ -40,7 +40,7 @@ public static string CombinePath(string first, string second) } else { - result = first.Substring(0, index + 1) + second; + result = string.Concat(first.AsSpan(0, index + 1), second); } return ResolvePath(result); From 987add9be0600cf79228ecdd396614f13d53f681 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 9 Jun 2021 19:51:36 +0000 Subject: [PATCH 12/16] Fix CA1845 warning in RazorPagesRazorViewEngineOptionsSetup --- .../RazorPagesRazorViewEngineOptionsSetup.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mvc/Mvc.RazorPages/src/DependencyInjection/RazorPagesRazorViewEngineOptionsSetup.cs b/src/Mvc/Mvc.RazorPages/src/DependencyInjection/RazorPagesRazorViewEngineOptionsSetup.cs index a39591397e63..d8b907b7d81f 100644 --- a/src/Mvc/Mvc.RazorPages/src/DependencyInjection/RazorPagesRazorViewEngineOptionsSetup.cs +++ b/src/Mvc/Mvc.RazorPages/src/DependencyInjection/RazorPagesRazorViewEngineOptionsSetup.cs @@ -72,7 +72,7 @@ private static string CombinePath(string path1, string path2) } else if (path1.EndsWith("/", StringComparison.Ordinal) && path2.StartsWith("/", StringComparison.Ordinal)) { - return path1 + path2.Substring(1); + return string.Concat(path1, path2.AsSpan(1)); } return path1 + "/" + path2; From 607c9bd2f8bc4e2cb30b6d99a316e977b8c86462 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 9 Jun 2021 20:36:34 +0000 Subject: [PATCH 13/16] Fix warning in FileProviderRazorProjectFileSystem --- .../src/FileProviderRazorProjectFileSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/FileProviderRazorProjectFileSystem.cs b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/FileProviderRazorProjectFileSystem.cs index 8a1c5ac61f30..25faa4fd0fcb 100644 --- a/src/Mvc/Mvc.Razor.RuntimeCompilation/src/FileProviderRazorProjectFileSystem.cs +++ b/src/Mvc/Mvc.Razor.RuntimeCompilation/src/FileProviderRazorProjectFileSystem.cs @@ -86,7 +86,7 @@ private static string JoinPath(string path1, string path2) var hasLeadingSlash = path2.StartsWith("/", StringComparison.Ordinal); if (hasLeadingSlash && hasTrailingSlash) { - return path1 + path2.Substring(1); + return string.Concat(path1, path2.AsSpan(1)); } else if (hasLeadingSlash || hasTrailingSlash) { From f4dfdb4a6687fc360f92ec287f6220130afe9a75 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 9 Jun 2021 21:29:49 +0000 Subject: [PATCH 14/16] Disable span warnings in tests --- .editorconfig | 2 ++ src/Http/Http.Abstractions/test/MapPathMiddlewareTests.cs | 2 +- src/Identity/test/InMemory.Test/FunctionalTest.cs | 2 +- .../Authorization/MinimumAgeAuthorizeAttribute.cs | 3 ++- src/Servers/Kestrel/samples/LargeResponseApp/Startup.cs | 5 +++-- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.editorconfig b/.editorconfig index 55f9465d8e49..0a2027bde78e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -153,3 +153,5 @@ dotnet_diagnostic.CA1829.severity = suggestion dotnet_diagnostic.CA1834.severity = suggestion # CA2012: Use ValueTask correctly dotnet_diagnostic.CA2012.severity = suggestion +# CA1845: Use span-based 'string.Concat' +dotnet_diagnostic.CA1845.severity = suggestion diff --git a/src/Http/Http.Abstractions/test/MapPathMiddlewareTests.cs b/src/Http/Http.Abstractions/test/MapPathMiddlewareTests.cs index 94b9a63c0ad3..5c1673f9548b 100644 --- a/src/Http/Http.Abstractions/test/MapPathMiddlewareTests.cs +++ b/src/Http/Http.Abstractions/test/MapPathMiddlewareTests.cs @@ -89,7 +89,7 @@ public async Task PathMatchAction_BranchTaken(string matchPath, string basePath, await app.Invoke(context); Assert.Equal(200, context.Response.StatusCode); - Assert.Equal(basePath + requestPath.Substring(0, matchPath.Length), (string)context.Items["test.PathBase"]!); + Assert.Equal(string.Concat(basePath, requestPath.AsSpan(0, matchPath.Length)), (string)context.Items["test.PathBase"]!); Assert.Equal(requestPath.Substring(matchPath.Length), context.Items["test.Path"]); } diff --git a/src/Identity/test/InMemory.Test/FunctionalTest.cs b/src/Identity/test/InMemory.Test/FunctionalTest.cs index ededc2b7172f..efdfa546a77e 100644 --- a/src/Identity/test/InMemory.Test/FunctionalTest.cs +++ b/src/Identity/test/InMemory.Test/FunctionalTest.cs @@ -332,7 +332,7 @@ private static async Task CreateServer(Action co } else if (req.Path.StartsWithSegments(new PathString("/pwdLogin"), out remainder)) { - var isPersistent = bool.Parse(remainder.Value.Substring(1)); + var isPersistent = bool.Parse(remainder.Value.AsSpan(1)); var result = await signInManager.PasswordSignInAsync("hao", TestPassword, isPersistent, false); res.StatusCode = result.Succeeded ? 200 : 500; } diff --git a/src/Security/samples/CustomPolicyProvider/Authorization/MinimumAgeAuthorizeAttribute.cs b/src/Security/samples/CustomPolicyProvider/Authorization/MinimumAgeAuthorizeAttribute.cs index da39464b37fd..03e2519b1965 100644 --- a/src/Security/samples/CustomPolicyProvider/Authorization/MinimumAgeAuthorizeAttribute.cs +++ b/src/Security/samples/CustomPolicyProvider/Authorization/MinimumAgeAuthorizeAttribute.cs @@ -1,3 +1,4 @@ +using System; using Microsoft.AspNetCore.Authorization; namespace CustomPolicyProvider @@ -20,7 +21,7 @@ public int Age { get { - if (int.TryParse(Policy.Substring(POLICY_PREFIX.Length), out var age)) + if (int.TryParse(Policy.AsSpan(POLICY_PREFIX.Length), out var age)) { return age; } diff --git a/src/Servers/Kestrel/samples/LargeResponseApp/Startup.cs b/src/Servers/Kestrel/samples/LargeResponseApp/Startup.cs index 2d1f7eb44e7c..55d2bf49e37c 100644 --- a/src/Servers/Kestrel/samples/LargeResponseApp/Startup.cs +++ b/src/Servers/Kestrel/samples/LargeResponseApp/Startup.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.IO; using System.Net; using System.Text; @@ -22,7 +23,7 @@ public void Configure(IApplicationBuilder app) app.Run(async (context) => { var path = context.Request.Path; - if (!path.HasValue || !int.TryParse(path.Value.Substring(1), out var numChunks)) + if (!path.HasValue || !int.TryParse(path.Value.AsSpan(1), out var numChunks)) { numChunks = _defaultNumChunks; } @@ -49,7 +50,7 @@ public static Task Main(string[] args) }) .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup(); - }) + }) .Build(); return host.RunAsync(); From 096f7c3fa64fbe5582653cdfde9a326d333d51ca Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 9 Jun 2021 14:44:44 -0700 Subject: [PATCH 15/16] Re-ordering --- .editorconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.editorconfig b/.editorconfig index 0a2027bde78e..35c9c8f74298 100644 --- a/.editorconfig +++ b/.editorconfig @@ -151,7 +151,8 @@ dotnet_diagnostic.CA1827.severity = suggestion dotnet_diagnostic.CA1829.severity = suggestion # CA1834: Consider using 'StringBuilder.Append(char)' when applicable dotnet_diagnostic.CA1834.severity = suggestion -# CA2012: Use ValueTask correctly -dotnet_diagnostic.CA2012.severity = suggestion # CA1845: Use span-based 'string.Concat' dotnet_diagnostic.CA1845.severity = suggestion +# CA2012: Use ValueTask correctly +dotnet_diagnostic.CA2012.severity = suggestion + From 4d09aa6cbad7b043ffdf47e493626035c28931d0 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 9 Jun 2021 15:13:14 -0700 Subject: [PATCH 16/16] Downgrade CA1846 to suggestion for projects --- .editorconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index 787e2af8abe5..6b9e8b09cb99 100644 --- a/.editorconfig +++ b/.editorconfig @@ -147,7 +147,7 @@ dotnet_diagnostic.CA1840.severity = warning dotnet_diagnostic.CA1841.severity = warning # CA1845: Use span-based 'string.Concat' -dotnet_diagnostic.CA1845.severity = warning +dotnet_diagnostic.CA1845.severity = suggestion # CA1846: Prefer AsSpan over Substring dotnet_diagnostic.CA1846.severity = warning @@ -188,6 +188,8 @@ dotnet_diagnostic.CA1838.severity = suggestion dotnet_diagnostic.CA1841.severity = suggestion # CA1845: Use span-based 'string.Concat' dotnet_diagnostic.CA1845.severity = suggestion +# CA1846: Prefer AsSpan over Substring +dotnet_diagnostic.CA1846.severity = suggestion # CA2012: Use ValueTask correctly dotnet_diagnostic.CA2012.severity = suggestion