Skip to content

Commit 29f5236

Browse files
committed
fix(trimmer): Fix IL3050 warnings around Enum use
When building `src/Uno.UI` with trimmer warnings enabled (and turned up to 11): dotnet build src/Uno.UI/Uno.UI.Skia.csproj -bl \ -p:TrimmerSingleWarn=false -p:_ExtraTrimmerArgs=--verbose -p:IsTrimmable=true -p:IsAotCompatible=true One of the warnings is: src/Uno.UI/UI/Xaml/Internal/InputManager.Pointers.ManagedDirectManip.cs(365,42): error IL3050: Using member 'System.Enum.GetValues(Type)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. It might not be possible to create an array of the enum type at runtime. Use the GetValues<TEnum> overload or the GetValuesAsUnderlyingType method instead. Replace use of `System.Enum` methods which take a `Type` parameter with their generic method overload: * `Enum.GetName(typeof(T), v)` becomes `Enum.GetName((T)v)` * `Enum.GetNames(typeof(T))` becomes `Enum.GetNames<T>()` * `Enum.GetValues(typeof(T))` becomes `Enum.GetValues<T>()` * `Enum.IsDefined(typeof(T), v)` becomes `Enum.IsDefined((T)v)` * `Enum.Parse(typeof(T), v)` becomes `Enum.Parse<T>(v)` This fixes the IL3050 warnings.
1 parent 01e90c3 commit 29f5236

File tree

36 files changed

+60
-61
lines changed

36 files changed

+60
-61
lines changed

src/SamplesApp/SamplesApp.UITests/Windows_UI_Xaml_Media/ImageBrushTests/ImageBrush_Shape_Fill_StretchAndAlignment.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void When_StretchAndAlignment([Values] Stretch stretch)
4848

4949
var greenContainer = _app.GetPhysicalRect("GreenBackground");
5050

51-
var permutation = $"{expected.Size.Width}-{expected.Size.Height}-{Enum.GetName(typeof(Stretch), expected.Stretch)}-X{Enum.GetName(typeof(AlignmentX), expected.AlignmentX)}-Y{Enum.GetName(typeof(AlignmentY), expected.AlignmentY)}";
51+
var permutation = $"{expected.Size.Width}-{expected.Size.Height}-{Enum.GetName<Stretch>(expected.Stretch)}-X{Enum.GetName<AlignmentX>(expected.AlignmentX)}-Y{Enum.GetName<AlignmentY>(expected.AlignmentY)}";
5252
using var snapshot = TakeScreenshot($"ImageBrush-{permutation}");
5353

5454
ImageAssert.HasPixels(

src/SamplesApp/UITests.Shared/Microsoft_UI_Xaml_Controls/NavigationViewTests/Common/NavigationViewCompactPaneLengthTestPage.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ private void PaneToggleButtonVisiblityCheckbox_Unchecked(object sender, RoutedEv
5353
private void PaneDisplayModeCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
5454
{
5555
var tag = Convert.ToString(((sender as ComboBox).SelectedItem as ComboBoxItem).Tag);
56-
var mode = (NavigationViewPaneDisplayMode)Enum.Parse(typeof(NavigationViewPaneDisplayMode), tag);
56+
var mode = Enum.Parse<NavigationViewPaneDisplayMode>(tag);
5757
NavView.PaneDisplayMode = mode;
5858
}
5959

src/SamplesApp/UITests.Shared/Microsoft_UI_Xaml_Controls/NavigationViewTests/Common/NavigationViewPage.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ private void TestPage_Loaded(object sender, RoutedEventArgs e)
178178
private void PaneDisplayModeCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
179179
{
180180
var tag = Convert.ToString(((sender as ComboBox).SelectedItem as ComboBoxItem).Tag);
181-
var mode = (NavigationViewPaneDisplayMode)Enum.Parse(typeof(NavigationViewPaneDisplayMode), tag);
181+
var mode = Enum.Parse<NavigationViewPaneDisplayMode>(tag);
182182
NavView.PaneDisplayMode = mode;
183183
}
184184

src/SamplesApp/UITests.Shared/Microsoft_UI_Xaml_Controls/NavigationViewTests/CustomResources/NavigationViewCustomThemeResourcesPage.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private void ExpandedModeCombobox_SelectionChanged(object sender, SelectionChang
6666
private void PaneDisplayModeCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
6767
{
6868
var tag = Convert.ToString(((sender as ComboBox).SelectedItem as ComboBoxItem).Tag);
69-
var mode = (NavigationViewPaneDisplayMode)Enum.Parse(typeof(NavigationViewPaneDisplayMode), tag);
69+
var mode = Enum.Parse<NavigationViewPaneDisplayMode>(tag);
7070
NavView.PaneDisplayMode = mode;
7171
}
7272

src/SamplesApp/UITests.Shared/Microsoft_UI_Xaml_Controls/NavigationViewTests/Hierarchical/HierarchicalNavigationViewDataBinding.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ private void OnItemCollapsed(object sender, NavigationViewItemCollapsedEventArgs
147147
private void PaneDisplayModeCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
148148
{
149149
var tag = Convert.ToString(((sender as ComboBox).SelectedItem as ComboBoxItem).Tag);
150-
var mode = (NavigationViewPaneDisplayMode)Enum.Parse(typeof(NavigationViewPaneDisplayMode), tag);
150+
var mode = Enum.Parse<NavigationViewPaneDisplayMode>(tag);
151151
navview.PaneDisplayMode = mode;
152152
}
153153
}

src/SamplesApp/UITests.Shared/Microsoft_UI_Xaml_Controls/NavigationViewTests/Hierarchical/HierarchicalNavigationViewMarkup.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ private void OnItemCollapsed(object sender, NavigationViewItemCollapsedEventArgs
121121
private void PaneDisplayModeCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
122122
{
123123
var tag = Convert.ToString(((sender as ComboBox).SelectedItem as ComboBoxItem).Tag);
124-
var mode = (NavigationViewPaneDisplayMode)Enum.Parse(typeof(NavigationViewPaneDisplayMode), tag);
124+
var mode = Enum.Parse<NavigationViewPaneDisplayMode>(tag);
125125
navview.PaneDisplayMode = mode;
126126
}
127127

src/SamplesApp/UITests.Shared/Microsoft_UI_Xaml_Controls/NavigationViewTests/TopMode/NavigationViewTopNavOnlyPage.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public NavigationViewTopNavOnlyPage()
5959
private void PaneDisplayModeCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
6060
{
6161
var tag = Convert.ToString(((sender as ComboBox).SelectedItem as ComboBoxItem).Tag);
62-
var mode = (NavigationViewPaneDisplayMode)Enum.Parse(typeof(NavigationViewPaneDisplayMode), tag);
62+
var mode = Enum.Parse<NavigationViewPaneDisplayMode>(tag);
6363
NavView.PaneDisplayMode = mode;
6464
}
6565

src/SamplesApp/UITests.Shared/Microsoft_UI_Xaml_Controls/NumberBoxTests/NumberBoxPage.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ sender is ComboBox comboBox &&
3434
comboBox.SelectedItem is ComboBoxItem item)
3535
{
3636
var scopeName = new InputScopeName();
37-
scopeName.NameValue = (InputScopeNameValue)Enum.Parse(typeof(InputScopeNameValue), item.Content?.ToString() ?? string.Empty, true);
37+
scopeName.NameValue = Enum.Parse<InputScopeNameValue>(item.Content?.ToString() ?? string.Empty, true);
3838

3939
var scope = new InputScope();
4040
scope.Names.Add(scopeName);

src/SamplesApp/UITests.Shared/Windows_Storage/StorageFolderOperationsTests.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public string ErrorMessage
7171
}
7272

7373
public CreationCollisionOption[] CreationCollisionOptions { get; } =
74-
Enum.GetValues(typeof(CreationCollisionOption)).OfType<CreationCollisionOption>().ToArray();
74+
Enum.GetValues<CreationCollisionOption>();
7575

7676
public CreationCollisionOption SelectedCreationCollisionOption
7777
{

src/SamplesApp/UITests.Shared/Windows_UI_Core/SetCursor.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ private void OnUnLoaded(object sender, RoutedEventArgs e)
4242
private void InitList()
4343
{
4444
#if !__ANDROID__ && !__APPLE_UIKIT__
45-
var _enumval = Enum.GetValues(typeof(global::Windows.UI.Core.CoreCursorType));
45+
var _enumval = Enum.GetValues<global::Windows.UI.Core.CoreCursorType>();
4646
Box.ItemsSource = _enumval;
4747
Box.SelectedIndex = 0;
4848

0 commit comments

Comments
 (0)