From 70ffe7c93d7c4c5aaca72099dc33b59261e2e5b3 Mon Sep 17 00:00:00 2001
From: elachlan <2433737+elachlan@users.noreply.github.com>
Date: Thu, 30 Dec 2021 12:58:58 +1000
Subject: [PATCH 1/3] CA1829 Use Length/Count property instead of Count() when
available
---
eng/CodeAnalysis.ruleset | 2 +-
.../Definition/Project_Tests.cs | 4 ++--
.../BackEnd/IntrinsicTask_Tests.cs | 4 ++--
.../BackEnd/SdkResolverService_Tests.cs | 2 +-
.../BackEnd/TaskBuilderTestTask.cs | 4 ++--
.../Evaluation/Evaluator_Tests.cs | 16 ++++++++--------
src/MSBuild/OutOfProcTaskAppDomainWrapperBase.cs | 2 +-
src/Tasks.UnitTests/ResourceManagement_Tests.cs | 6 +++---
.../RoslynCodeTaskFactory_Tests.cs | 2 +-
.../ToolLocationHelper_Tests.cs | 2 +-
10 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/eng/CodeAnalysis.ruleset b/eng/CodeAnalysis.ruleset
index 2078c42fe6c..772ddf68862 100644
--- a/eng/CodeAnalysis.ruleset
+++ b/eng/CodeAnalysis.ruleset
@@ -99,7 +99,7 @@
-
+
diff --git a/src/Build.OM.UnitTests/Definition/Project_Tests.cs b/src/Build.OM.UnitTests/Definition/Project_Tests.cs
index afaf6ecf8ab..79cde2c7461 100644
--- a/src/Build.OM.UnitTests/Definition/Project_Tests.cs
+++ b/src/Build.OM.UnitTests/Definition/Project_Tests.cs
@@ -2284,7 +2284,7 @@ public void RemoveSeveralItemsOfVariousTypes()
project.RemoveItems(list);
- project.Items.Count().ShouldBe(2);
+ project.Items.Count.ShouldBe(2);
}
///
@@ -2304,7 +2304,7 @@ public void RemoveSeveralItemsExpandExpression()
Project project = new Project(XmlReader.Create(new StringReader(projectOriginalContents)));
project.RemoveItems(project.GetItems("j").Take(2));
- project.Items.Count().ShouldBe(3);
+ project.Items.Count.ShouldBe(3);
StringWriter writer = new EncodingStringWriter();
project.Save(writer);
diff --git a/src/Build.UnitTests/BackEnd/IntrinsicTask_Tests.cs b/src/Build.UnitTests/BackEnd/IntrinsicTask_Tests.cs
index a52b53f97f5..617f4b8ba1e 100644
--- a/src/Build.UnitTests/BackEnd/IntrinsicTask_Tests.cs
+++ b/src/Build.UnitTests/BackEnd/IntrinsicTask_Tests.cs
@@ -2012,7 +2012,7 @@ public void RemoveWithMatchingMultipleMetadata()
Lookup lookup = LookupHelpers.CreateEmptyLookup();
ExecuteTask(task, lookup);
ICollection items = lookup.GetItems("I2");
- items.Count().ShouldBe(3);
+ items.Count.ShouldBe(3);
items.ElementAt(0).EvaluatedInclude.ShouldBe("a2");
items.ElementAt(1).EvaluatedInclude.ShouldBe("c2");
items.ElementAt(2).EvaluatedInclude.ShouldBe("d2");
@@ -3478,7 +3478,7 @@ public void PhoenixBatchingIssue()
ProjectInstance instance = new ProjectInstance(xml);
instance.Build();
- Assert.Equal(2, instance.Items.Count());
+ Assert.Equal(2, instance.Items.Count);
Assert.Equal("gen.obj", instance.GetItems("CppCompile").First().GetMetadataValue("ObjectFile"));
Assert.Equal("def.obj", instance.GetItems("CppCompile").Last().GetMetadataValue("ObjectFile"));
}
diff --git a/src/Build.UnitTests/BackEnd/SdkResolverService_Tests.cs b/src/Build.UnitTests/BackEnd/SdkResolverService_Tests.cs
index cbfd97c5f83..94712546e48 100644
--- a/src/Build.UnitTests/BackEnd/SdkResolverService_Tests.cs
+++ b/src/Build.UnitTests/BackEnd/SdkResolverService_Tests.cs
@@ -244,7 +244,7 @@ private void ValidateExpectedPropertiesAndItems(bool includePropertiesAndItems,
result.PropertiesToAdd.Count.ShouldBe(1);
result.PropertiesToAdd["PropertyFromSdkResolver"].ShouldBe("ValueFromSdkResolver");
- result.ItemsToAdd.Count().ShouldBe(1);
+ result.ItemsToAdd.Count.ShouldBe(1);
result.ItemsToAdd.Keys.Single().ShouldBe("ItemNameFromSdkResolver");
result.ItemsToAdd.Values.Single().ItemSpec.ShouldBe("ItemValueFromSdkResolver");
var metadata = result.ItemsToAdd.Values.Single().Metadata;
diff --git a/src/Build.UnitTests/BackEnd/TaskBuilderTestTask.cs b/src/Build.UnitTests/BackEnd/TaskBuilderTestTask.cs
index c0341747d64..88cbdf26d0c 100644
--- a/src/Build.UnitTests/BackEnd/TaskBuilderTestTask.cs
+++ b/src/Build.UnitTests/BackEnd/TaskBuilderTestTask.cs
@@ -550,8 +550,8 @@ public TaskPropertyInfo[] GetTaskParameters()
propertyInfos[i] = new TaskPropertyInfo(
infos[i].Name,
infos[i].PropertyType,
- infos[i].GetCustomAttributes(typeof(OutputAttribute), false).Count() > 0,
- infos[i].GetCustomAttributes(typeof(RequiredAttribute), false).Count() > 0);
+ infos[i].GetCustomAttributes(typeof(OutputAttribute), false).Length > 0,
+ infos[i].GetCustomAttributes(typeof(RequiredAttribute), false).Length > 0);
}
return propertyInfos;
diff --git a/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs b/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs
index 7a4f17f2686..1a3b74033e3 100644
--- a/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs
+++ b/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs
@@ -1886,7 +1886,7 @@ public void AllEvaluatedItems()
Project project = new Project(XmlReader.Create(new StringReader(content)));
- Assert.Equal(6, project.AllEvaluatedItems.Count());
+ Assert.Equal(6, project.AllEvaluatedItems.Count);
Assert.Equal("i1", project.AllEvaluatedItems.ElementAt(0).EvaluatedInclude);
Assert.Equal(String.Empty, project.AllEvaluatedItems.ElementAt(0).GetMetadataValue("m"));
Assert.Equal("j1", project.AllEvaluatedItems.ElementAt(1).EvaluatedInclude);
@@ -1902,12 +1902,12 @@ public void AllEvaluatedItems()
project.AddItem("i", "i7");
project.RemoveItem(project.AllEvaluatedItems.ElementAt(1));
- Assert.Equal(6, project.AllEvaluatedItems.Count());
+ Assert.Equal(6, project.AllEvaluatedItems.Count);
project.MarkDirty();
project.ReevaluateIfNecessary();
- Assert.Equal(7, project.AllEvaluatedItems.Count());
+ Assert.Equal(7, project.AllEvaluatedItems.Count);
}
finally
{
@@ -2002,15 +2002,15 @@ public void AllEvaluatedPropertiesSetProperty()
Project project = new Project(XmlReader.Create(new StringReader(content)));
- int initial = project.AllEvaluatedProperties.Count();
+ int initial = project.AllEvaluatedProperties.Count;
project.SetProperty("p", "1");
- Assert.Equal(initial, project.AllEvaluatedProperties.Count());
+ Assert.Equal(initial, project.AllEvaluatedProperties.Count);
project.ReevaluateIfNecessary();
- Assert.Equal(initial + 1, project.AllEvaluatedProperties.Count());
+ Assert.Equal(initial + 1, project.AllEvaluatedProperties.Count);
}
///
@@ -2038,13 +2038,13 @@ public void AllEvaluatedItemDefinitionMetadata()
Project project = new Project(XmlReader.Create(new StringReader(content)));
- Assert.Equal(4, project.AllEvaluatedItemDefinitionMetadata.Count());
+ Assert.Equal(4, project.AllEvaluatedItemDefinitionMetadata.Count);
Assert.Equal("2", project.AllEvaluatedItemDefinitionMetadata.ElementAt(1).EvaluatedValue);
Assert.Equal("1;2", project.AllEvaluatedItemDefinitionMetadata.ElementAt(3).EvaluatedValue);
// Verify lists are cleared on reevaluation
- Assert.Equal(4, project.AllEvaluatedItemDefinitionMetadata.Count());
+ Assert.Equal(4, project.AllEvaluatedItemDefinitionMetadata.Count);
}
///
diff --git a/src/MSBuild/OutOfProcTaskAppDomainWrapperBase.cs b/src/MSBuild/OutOfProcTaskAppDomainWrapperBase.cs
index b1f085e2da1..2a7c4f8e842 100644
--- a/src/MSBuild/OutOfProcTaskAppDomainWrapperBase.cs
+++ b/src/MSBuild/OutOfProcTaskAppDomainWrapperBase.cs
@@ -406,7 +406,7 @@ IDictionary taskParams
foreach (PropertyInfo value in finalPropertyValues)
{
// only record outputs
- if (value.GetCustomAttributes(typeof(OutputAttribute), true).Count() > 0)
+ if (value.GetCustomAttributes(typeof(OutputAttribute), true).Length > 0)
{
try
{
diff --git a/src/Tasks.UnitTests/ResourceManagement_Tests.cs b/src/Tasks.UnitTests/ResourceManagement_Tests.cs
index d75cdd4e120..a7d6d656f81 100644
--- a/src/Tasks.UnitTests/ResourceManagement_Tests.cs
+++ b/src/Tasks.UnitTests/ResourceManagement_Tests.cs
@@ -23,7 +23,7 @@ public void SingleCoreRequest()
}", "");
var filteredMessages = messages.Where(m => m.Message.StartsWith("Number of cores acquired: ")).ToArray();
- filteredMessages.Count().ShouldBe(1);
+ filteredMessages.Length.ShouldBe(1);
GetTrailingIntegerFromMessage(filteredMessages[0]).ShouldBeGreaterThan(0);
}
@@ -38,7 +38,7 @@ public void SingleCoreRequestWithNoRelease()
}", " ");
var filteredMessages = messages.Where(m => m.Message.StartsWith("Number of cores acquired: ")).ToArray();
- filteredMessages.Count().ShouldBe(2);
+ filteredMessages.Length.ShouldBe(2);
int grantedCores1 = GetTrailingIntegerFromMessage(filteredMessages[0]);
int grantedCores2 = GetTrailingIntegerFromMessage(filteredMessages[1]);
@@ -65,7 +65,7 @@ public void SingleCoreRequestWithReacquire()
}", "");
var filteredMessages = messages.Where(m => m.Message.StartsWith("Number of cores acquired: ")).ToArray();
- filteredMessages.Count().ShouldBe(2);
+ filteredMessages.Length.ShouldBe(2);
int grantedCores1 = GetTrailingIntegerFromMessage(filteredMessages[0]);
int grantedCores2 = GetTrailingIntegerFromMessage(filteredMessages[1]);
diff --git a/src/Tasks.UnitTests/RoslynCodeTaskFactory_Tests.cs b/src/Tasks.UnitTests/RoslynCodeTaskFactory_Tests.cs
index eb5225d098d..d0a5e314246 100644
--- a/src/Tasks.UnitTests/RoslynCodeTaskFactory_Tests.cs
+++ b/src/Tasks.UnitTests/RoslynCodeTaskFactory_Tests.cs
@@ -85,7 +85,7 @@ public void RoslynCodeTaskFactory_ReuseCompilation()
// with broken cache we get two Compiling messages
// as we fail to reuse the first assembly
- messages.Count().ShouldBe(1);
+ messages.Length.ShouldBe(1);
}
[Fact]
diff --git a/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs b/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs
index 4578651a935..47b36573b7f 100644
--- a/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs
+++ b/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs
@@ -4202,7 +4202,7 @@ public void VerifyFindRootFolderWhereAllFilesExist()
string testDirectoryRoot = Path.Combine(Path.GetTempPath(), "VerifyFindRootFolderWhereAllFilesExist");
string[] rootDirectories = new string[] { Path.Combine(testDirectoryRoot, "Root1"), Path.Combine(testDirectoryRoot, "Root2") };
- for(int i = 0; i < rootDirectories.Count(); i++)
+ for(int i = 0; i < rootDirectories.Length; i++)
{
// create directory
string subdir = Path.Combine(rootDirectories[i], "Subdir");
From 2670327670ba1c280f9e6ed8b15c82d2de375f00 Mon Sep 17 00:00:00 2001
From: elachlan <2433737+elachlan@users.noreply.github.com>
Date: Sat, 8 Jan 2022 14:25:16 +1000
Subject: [PATCH 2/3] Revert CodeAnalysis.ruleset
---
eng/CodeAnalysis.ruleset | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/CodeAnalysis.ruleset b/eng/CodeAnalysis.ruleset
index 772ddf68862..2078c42fe6c 100644
--- a/eng/CodeAnalysis.ruleset
+++ b/eng/CodeAnalysis.ruleset
@@ -99,7 +99,7 @@
-
+
From eeeab49a9663c62644cb3777b4c4b4e5c459a86c Mon Sep 17 00:00:00 2001
From: elachlan <2433737+elachlan@users.noreply.github.com>
Date: Sat, 8 Jan 2022 14:36:18 +1000
Subject: [PATCH 3/3] enable warning on CA1829
---
eng/Common.globalconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/Common.globalconfig b/eng/Common.globalconfig
index fd878420d57..2a3789073e4 100644
--- a/eng/Common.globalconfig
+++ b/eng/Common.globalconfig
@@ -292,7 +292,7 @@ dotnet_diagnostic.CA1827.severity = suggestion
dotnet_diagnostic.CA1828.severity = warning
# Use Length/Count property instead of Count() when available
-dotnet_diagnostic.CA1829.severity = suggestion
+dotnet_diagnostic.CA1829.severity = warning
# Prefer strongly-typed Append and Insert method overloads on StringBuilder.
dotnet_diagnostic.CA1830.severity = warning