From 306ea5b54dc10ae686b0b45af07c57d6a07cc084 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Tue, 3 Jan 2023 15:08:11 +0100 Subject: [PATCH 1/3] feat: Enable Rule CA2211 --- .editorconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.editorconfig b/.editorconfig index ff7ac5d69e..3620896f34 100644 --- a/.editorconfig +++ b/.editorconfig @@ -169,6 +169,8 @@ dotnet_diagnostic.CA1828.severity = warning dotnet_diagnostic.CA1829.severity = warning #CA1847: Use string.Contains(char) instead of string.Contains(string) with single characters dotnet_diagnostic.CA1847.severity = warning +#CACA2211:Non-constant fields should not be visible +dotnet_diagnostic.CA2211.severity = error # Wrapping preferences csharp_wrap_before_ternary_opsigns = false From bd2e2d1e9b0175de4001765a7a102296f79339e6 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Tue, 3 Jan 2023 15:29:34 +0100 Subject: [PATCH 2/3] feat: Address Rule CA2211 --- .../ColorPalettes/FlatColorPalette.cs | 4 +++- .../ColorPalettes/FlatHalfColorPalette.cs | 4 +++- .../ColorPalettes/MaterialColorPalette.cs | 4 +++- .../ColorPalettes/MaterialHalfColorPalette.cs | 4 +++- src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs | 2 +- src/Avalonia.Controls.DataGrid/DataGridColumn.cs | 2 +- src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs | 2 +- 7 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatColorPalette.cs b/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatColorPalette.cs index 2cc5b99b2e..0188e61bec 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatColorPalette.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatColorPalette.cs @@ -289,8 +289,10 @@ namespace Avalonia.Controls }; // See: https://htmlcolorcodes.com/assets/downloads/flat-design-colors/flat-design-color-chart.png +#pragma warning disable CA2211 // Non-constant fields should not be visible protected static Color[,]? _colorChart = null; - protected static object _colorChartMutex = new object(); +#pragma warning restore CA2211 // Non-constant fields should not be visible + protected static readonly object _colorChartMutex = new(); /// /// Initializes all color chart colors. diff --git a/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatHalfColorPalette.cs b/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatHalfColorPalette.cs index 2758124fae..1bffd66994 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatHalfColorPalette.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatHalfColorPalette.cs @@ -10,8 +10,10 @@ namespace Avalonia.Controls /// public class FlatHalfColorPalette : IColorPalette { +#pragma warning disable CA2211 // Non-constant fields should not be visible protected static Color[,]? _colorChart = null; - protected static object _colorChartMutex = new object(); +#pragma warning restore CA2211 // Non-constant fields should not be visible + protected static readonly object _colorChartMutex = new(); /// /// Initializes all color chart colors. diff --git a/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialColorPalette.cs b/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialColorPalette.cs index d009926bc5..a9024bc18c 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialColorPalette.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialColorPalette.cs @@ -344,8 +344,10 @@ namespace Avalonia.Controls // See: https://material.io/design/color/the-color-system.html#tools-for-picking-colors // This is a reduced palette for uniformity +#pragma warning disable CA2211 // Non-constant fields should not be visible protected static Color[,]? _colorChart = null; - protected static object _colorChartMutex = new object(); +#pragma warning restore CA2211 // Non-constant fields should not be visible + protected static readonly object _colorChartMutex = new(); /// /// Initializes all color chart colors. diff --git a/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialHalfColorPalette.cs b/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialHalfColorPalette.cs index 01d44aa65d..371c94504b 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialHalfColorPalette.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialHalfColorPalette.cs @@ -10,8 +10,10 @@ namespace Avalonia.Controls /// public class MaterialHalfColorPalette : IColorPalette { +#pragma warning disable CA2211 // Non-constant fields should not be visible protected static Color[,]? _colorChart = null; - protected static object _colorChartMutex = new object(); +#pragma warning restore CA2211 // Non-constant fields should not be visible + protected static readonly object _colorChartMutex = new(); /// /// Initializes all color chart colors. diff --git a/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs index c308312398..8988be9b08 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs @@ -31,7 +31,7 @@ namespace Avalonia.Controls /// /// Defines the property. /// - public static StyledProperty IsThreeStateProperty = + public readonly static StyledProperty IsThreeStateProperty = CheckBox.IsThreeStateProperty.AddOwner(); /// diff --git a/src/Avalonia.Controls.DataGrid/DataGridColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridColumn.cs index 75101dc487..f6c503ac83 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridColumn.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridColumn.cs @@ -185,7 +185,7 @@ namespace Avalonia.Controls /// /// Defines the property. /// - public static StyledProperty IsVisibleProperty = + public static readonly StyledProperty IsVisibleProperty = Control.IsVisibleProperty.AddOwner(); /// diff --git a/src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs b/src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs index 9fddb91231..99616e4cdf 100644 --- a/src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs +++ b/src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs @@ -8,6 +8,6 @@ /// /// Provides access to the internal for use in DevTools. /// - public static AvaloniaProperty ToolTipProperty = ToolTip.ToolTipProperty; + public readonly static AvaloniaProperty ToolTipProperty = ToolTip.ToolTipProperty; } } From 8f745ba6fcfe975d62b8b3c75082d11db6dc4f9a Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Wed, 4 Jan 2023 09:23:36 +0100 Subject: [PATCH 3/3] fix: Address Review --- .../ColorPalettes/FlatColorPalette.cs | 6 ++---- .../ColorPalettes/FlatHalfColorPalette.cs | 6 ++---- .../ColorPalettes/MaterialColorPalette.cs | 6 ++---- .../ColorPalettes/MaterialHalfColorPalette.cs | 6 ++---- src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs | 2 +- src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs | 2 +- 6 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatColorPalette.cs b/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatColorPalette.cs index 0188e61bec..aaf272c6d2 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatColorPalette.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatColorPalette.cs @@ -289,10 +289,8 @@ namespace Avalonia.Controls }; // See: https://htmlcolorcodes.com/assets/downloads/flat-design-colors/flat-design-color-chart.png -#pragma warning disable CA2211 // Non-constant fields should not be visible - protected static Color[,]? _colorChart = null; -#pragma warning restore CA2211 // Non-constant fields should not be visible - protected static readonly object _colorChartMutex = new(); + private static Color[,]? _colorChart = null; + private static readonly object _colorChartMutex = new(); /// /// Initializes all color chart colors. diff --git a/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatHalfColorPalette.cs b/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatHalfColorPalette.cs index 1bffd66994..4a30fb6cb4 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatHalfColorPalette.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorPalettes/FlatHalfColorPalette.cs @@ -10,10 +10,8 @@ namespace Avalonia.Controls /// public class FlatHalfColorPalette : IColorPalette { -#pragma warning disable CA2211 // Non-constant fields should not be visible - protected static Color[,]? _colorChart = null; -#pragma warning restore CA2211 // Non-constant fields should not be visible - protected static readonly object _colorChartMutex = new(); + private static Color[,]? _colorChart = null; + private static readonly object _colorChartMutex = new(); /// /// Initializes all color chart colors. diff --git a/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialColorPalette.cs b/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialColorPalette.cs index a9024bc18c..d4b904163c 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialColorPalette.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialColorPalette.cs @@ -344,10 +344,8 @@ namespace Avalonia.Controls // See: https://material.io/design/color/the-color-system.html#tools-for-picking-colors // This is a reduced palette for uniformity -#pragma warning disable CA2211 // Non-constant fields should not be visible - protected static Color[,]? _colorChart = null; -#pragma warning restore CA2211 // Non-constant fields should not be visible - protected static readonly object _colorChartMutex = new(); + private static Color[,]? _colorChart = null; + private static readonly object _colorChartMutex = new(); /// /// Initializes all color chart colors. diff --git a/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialHalfColorPalette.cs b/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialHalfColorPalette.cs index 371c94504b..4432642675 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialHalfColorPalette.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorPalettes/MaterialHalfColorPalette.cs @@ -10,10 +10,8 @@ namespace Avalonia.Controls /// public class MaterialHalfColorPalette : IColorPalette { -#pragma warning disable CA2211 // Non-constant fields should not be visible - protected static Color[,]? _colorChart = null; -#pragma warning restore CA2211 // Non-constant fields should not be visible - protected static readonly object _colorChartMutex = new(); + private static Color[,]? _colorChart = null; + private static readonly object _colorChartMutex = new(); /// /// Initializes all color chart colors. diff --git a/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs index 8988be9b08..39c1e4c118 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs @@ -31,7 +31,7 @@ namespace Avalonia.Controls /// /// Defines the property. /// - public readonly static StyledProperty IsThreeStateProperty = + public static readonly StyledProperty IsThreeStateProperty = CheckBox.IsThreeStateProperty.AddOwner(); /// diff --git a/src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs b/src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs index 99616e4cdf..343b628fb9 100644 --- a/src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs +++ b/src/Avalonia.Controls/Diagnostics/ToolTipDiagnostics.cs @@ -8,6 +8,6 @@ /// /// Provides access to the internal for use in DevTools. /// - public readonly static AvaloniaProperty ToolTipProperty = ToolTip.ToolTipProperty; + public static readonly AvaloniaProperty ToolTipProperty = ToolTip.ToolTipProperty; } }