From f1cde62c9836d888d1edf09b10c8fed1758bd701 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 May 2023 16:02:15 +0200 Subject: [PATCH 1/8] Make ConsoleContext internal. --- src/Avalonia.Diagnostics/Diagnostics/Models/ConsoleContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Diagnostics/Diagnostics/Models/ConsoleContext.cs b/src/Avalonia.Diagnostics/Diagnostics/Models/ConsoleContext.cs index 4f4579c7d9..4fd3de25dd 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Models/ConsoleContext.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Models/ConsoleContext.cs @@ -4,7 +4,7 @@ using Avalonia.Diagnostics.ViewModels; namespace Avalonia.Diagnostics.Models { - public class ConsoleContext + internal class ConsoleContext { private readonly ConsoleViewModel _owner; From 29ba660e4b74565844c703b2edb823deaabb13a3 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 May 2023 16:06:10 +0200 Subject: [PATCH 2/8] Make BindingBase.GetParentDataContext private. --- src/Markup/Avalonia.Markup/Data/BindingBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup/Data/BindingBase.cs b/src/Markup/Avalonia.Markup/Data/BindingBase.cs index 17f44a4b54..799401cd4e 100644 --- a/src/Markup/Avalonia.Markup/Data/BindingBase.cs +++ b/src/Markup/Avalonia.Markup/Data/BindingBase.cs @@ -234,7 +234,7 @@ namespace Avalonia.Data return result; } - protected IObservable GetParentDataContext(AvaloniaObject target) + private IObservable GetParentDataContext(AvaloniaObject target) { // The DataContext is based on the visual parent and not the logical parent: this may // seem counter intuitive considering the fact that property inheritance works on the logical From c83e64d4d93870c7630947fa8e4585cffd44d70a Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 May 2023 16:09:50 +0200 Subject: [PATCH 3/8] Fix spelling mistake. --- src/Avalonia.Base/Animation/AnimatorKeyFrame.cs | 2 +- src/Avalonia.Base/AvaloniaProperty.cs | 2 +- src/Avalonia.Base/AvaloniaProperty`1.cs | 2 +- src/Avalonia.Base/Collections/AvaloniaListConverter.cs | 2 +- src/Avalonia.Base/Data/BindingValue.cs | 4 ++-- .../Data/Converters/DefaultValueConverter.cs | 2 +- src/Avalonia.Base/Data/Core/BindingExpression.cs | 2 +- src/Avalonia.Base/Diagnostics/TrimmingMessages.cs | 8 ++++---- .../PropertyStore/DirectUntypedBindingObserver.cs | 2 +- .../PropertyStore/LocalValueBindingObserver.cs | 2 +- src/Avalonia.Base/PropertyStore/UntypedValueUtils.cs | 4 ++-- src/Avalonia.Base/StyledProperty.cs | 2 +- src/Avalonia.Base/Styling/PropertyEqualsSelector.cs | 4 ++-- src/Avalonia.Base/Styling/Setter.cs | 2 +- src/Avalonia.Base/Utilities/TypeUtilities.cs | 10 +++++----- src/Markup/Avalonia.Markup/Data/BindingBase.cs | 2 +- 16 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Avalonia.Base/Animation/AnimatorKeyFrame.cs b/src/Avalonia.Base/Animation/AnimatorKeyFrame.cs index dcce75b31c..892be5cb26 100644 --- a/src/Avalonia.Base/Animation/AnimatorKeyFrame.cs +++ b/src/Avalonia.Base/Animation/AnimatorKeyFrame.cs @@ -67,7 +67,7 @@ namespace Avalonia.Animation } } - [RequiresUnreferencedCode(TrimmingMessages.TypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.TypeConversionRequiresUnreferencedCodeMessage)] public T GetTypedValue<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>() { var typeConv = TypeDescriptor.GetConverter(typeof(T)); diff --git a/src/Avalonia.Base/AvaloniaProperty.cs b/src/Avalonia.Base/AvaloniaProperty.cs index 95f8eea852..5ab52cfde9 100644 --- a/src/Avalonia.Base/AvaloniaProperty.cs +++ b/src/Avalonia.Base/AvaloniaProperty.cs @@ -476,7 +476,7 @@ namespace Avalonia /// /// The value. /// True if the value is valid, otherwise false. - [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConversionRequiresUnreferencedCodeMessage)] public bool IsValidValue(object? value) { return TypeUtilities.TryConvertImplicit(PropertyType, value, out _); diff --git a/src/Avalonia.Base/AvaloniaProperty`1.cs b/src/Avalonia.Base/AvaloniaProperty`1.cs index ea2f3577e5..c7e0f381b3 100644 --- a/src/Avalonia.Base/AvaloniaProperty`1.cs +++ b/src/Avalonia.Base/AvaloniaProperty`1.cs @@ -70,7 +70,7 @@ namespace Avalonia private protected override IObservable GetChanged() => Changed; - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConversionSupressWarningMessage)] private protected BindingValue TryConvert(object? value) { if (value == UnsetValue) diff --git a/src/Avalonia.Base/Collections/AvaloniaListConverter.cs b/src/Avalonia.Base/Collections/AvaloniaListConverter.cs index 34ccb5e65f..bcd681f898 100644 --- a/src/Avalonia.Base/Collections/AvaloniaListConverter.cs +++ b/src/Avalonia.Base/Collections/AvaloniaListConverter.cs @@ -9,7 +9,7 @@ namespace Avalonia.Collections /// /// Creates an from a string representation. /// - [RequiresUnreferencedCode(TrimmingMessages.TypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.TypeConversionRequiresUnreferencedCodeMessage)] public class AvaloniaListConverter<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T> : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType) diff --git a/src/Avalonia.Base/Data/BindingValue.cs b/src/Avalonia.Base/Data/BindingValue.cs index 3bc172f596..ac79d1eff7 100644 --- a/src/Avalonia.Base/Data/BindingValue.cs +++ b/src/Avalonia.Base/Data/BindingValue.cs @@ -237,7 +237,7 @@ namespace Avalonia.Data /// /// The untyped value. /// The typed binding value. - [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConversionRequiresUnreferencedCodeMessage)] public static BindingValue FromUntyped(object? value) { return FromUntyped(value, typeof(T)); @@ -251,7 +251,7 @@ namespace Avalonia.Data /// The untyped value. /// The runtime target type. /// The typed binding value. - [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConversionRequiresUnreferencedCodeMessage)] public static BindingValue FromUntyped(object? value, Type targetType) { if (value == AvaloniaProperty.UnsetValue) diff --git a/src/Avalonia.Base/Data/Converters/DefaultValueConverter.cs b/src/Avalonia.Base/Data/Converters/DefaultValueConverter.cs index aeb71d16ae..a31ac6eee1 100644 --- a/src/Avalonia.Base/Data/Converters/DefaultValueConverter.cs +++ b/src/Avalonia.Base/Data/Converters/DefaultValueConverter.cs @@ -10,7 +10,7 @@ namespace Avalonia.Data.Converters /// Provides a default set of value conversions for bindings that do not specify a value /// converter. /// - [RequiresUnreferencedCode(TrimmingMessages.TypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.TypeConversionRequiresUnreferencedCodeMessage)] public class DefaultValueConverter : IValueConverter { /// diff --git a/src/Avalonia.Base/Data/Core/BindingExpression.cs b/src/Avalonia.Base/Data/Core/BindingExpression.cs index 79942cb9ce..7065e5bc32 100644 --- a/src/Avalonia.Base/Data/Core/BindingExpression.cs +++ b/src/Avalonia.Base/Data/Core/BindingExpression.cs @@ -12,7 +12,7 @@ namespace Avalonia.Data.Core /// Binds to an expression on an object using a type value converter to convert the values /// that are sent and received. /// - [RequiresUnreferencedCode(TrimmingMessages.TypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.TypeConversionRequiresUnreferencedCodeMessage)] internal class BindingExpression : LightweightObservableBase, IAvaloniaSubject, IDescription { private readonly ExpressionObserver _inner; diff --git a/src/Avalonia.Base/Diagnostics/TrimmingMessages.cs b/src/Avalonia.Base/Diagnostics/TrimmingMessages.cs index a893256d17..37c2831a50 100644 --- a/src/Avalonia.Base/Diagnostics/TrimmingMessages.cs +++ b/src/Avalonia.Base/Diagnostics/TrimmingMessages.cs @@ -2,11 +2,11 @@ internal static class TrimmingMessages { - public const string ImplicitTypeConvertionSupressWarningMessage = "Implicit convertion methods might be removed by the linker. We don't have a reliable way to prevent it, except converting everything in compile time when possible."; - public const string ImplicitTypeConvertionRequiresUnreferencedCodeMessage = "Implicit convertion methods are required for type conversion."; + public const string ImplicitTypeConversionSupressWarningMessage = "Implicit conversion methods might be removed by the linker. We don't have a reliable way to prevent it, except converting everything in compile time when possible."; + public const string ImplicitTypeConversionRequiresUnreferencedCodeMessage = "Implicit conversion methods are required for type conversion."; - public const string TypeConvertionSupressWarningMessage = "Convertion methods might be removed by the linker. We don't have a reliable way to prevent it, except converting everything in compile time when possible."; - public const string TypeConvertionRequiresUnreferencedCodeMessage = "Convertion methods are required for type conversion, including op_Implicit, op_Explicit, Parse and TypeConverter."; + public const string TypeConversionSupressWarningMessage = "Conversion methods might be removed by the linker. We don't have a reliable way to prevent it, except converting everything in compile time when possible."; + public const string TypeConversionRequiresUnreferencedCodeMessage = "Conversion methods are required for type conversion, including op_Implicit, op_Explicit, Parse and TypeConverter."; public const string ReflectionBindingRequiresUnreferencedCodeMessage = "BindingExpression and ReflectionBinding heavily use reflection. Consider using CompiledBindings instead."; public const string ReflectionBindingSupressWarningMessage = "BindingExpression and ReflectionBinding internal heavily use reflection."; diff --git a/src/Avalonia.Base/PropertyStore/DirectUntypedBindingObserver.cs b/src/Avalonia.Base/PropertyStore/DirectUntypedBindingObserver.cs index 1cf108df9b..54dffa3a95 100644 --- a/src/Avalonia.Base/PropertyStore/DirectUntypedBindingObserver.cs +++ b/src/Avalonia.Base/PropertyStore/DirectUntypedBindingObserver.cs @@ -5,7 +5,7 @@ using Avalonia.Threading; namespace Avalonia.PropertyStore { - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConversionSupressWarningMessage)] internal class DirectUntypedBindingObserver : IObserver, IDisposable { diff --git a/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs index 9e9b4a3190..7bcf6165fe 100644 --- a/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs +++ b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs @@ -14,7 +14,7 @@ namespace Avalonia.PropertyStore public void Start(IObservable source) => _subscription = source.Subscribe(this); - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConversionSupressWarningMessage)] public void OnNext(object? value) { if (value == BindingOperations.DoNothing) diff --git a/src/Avalonia.Base/PropertyStore/UntypedValueUtils.cs b/src/Avalonia.Base/PropertyStore/UntypedValueUtils.cs index 372a808fb2..4912ec1d81 100644 --- a/src/Avalonia.Base/PropertyStore/UntypedValueUtils.cs +++ b/src/Avalonia.Base/PropertyStore/UntypedValueUtils.cs @@ -7,7 +7,7 @@ namespace Avalonia.PropertyStore { internal static class UntypedValueUtils { - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConversionSupressWarningMessage)] public static BindingValue ConvertAndValidate( object? value, Type targetType, @@ -24,7 +24,7 @@ namespace Avalonia.PropertyStore return v; } - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConversionSupressWarningMessage)] public static bool TryConvertAndValidate( StyledProperty property, object? value, diff --git a/src/Avalonia.Base/StyledProperty.cs b/src/Avalonia.Base/StyledProperty.cs index ee8748956e..b6bd737234 100644 --- a/src/Avalonia.Base/StyledProperty.cs +++ b/src/Avalonia.Base/StyledProperty.cs @@ -221,7 +221,7 @@ namespace Avalonia return target.Bind(this, source, priority); } - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConversionSupressWarningMessage)] private bool ShouldSetValue(AvaloniaObject target, object? value, [NotNullWhen(true)] out TValue? converted) { if (value == BindingOperations.DoNothing) diff --git a/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs b/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs index 3a50923094..1d684eeca3 100644 --- a/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs +++ b/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs @@ -91,8 +91,8 @@ namespace Avalonia.Styling private protected override Selector? MovePrevious() => _previous; private protected override Selector? MovePreviousOrParent() => _previous; - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.TypeConvertionSupressWarningMessage)] - [UnconditionalSuppressMessage("Trimming", "IL2067", Justification = TrimmingMessages.TypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.TypeConversionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2067", Justification = TrimmingMessages.TypeConversionSupressWarningMessage)] internal static bool Compare(Type propertyType, object? propertyValue, object? value) { if (propertyType == typeof(object) && diff --git a/src/Avalonia.Base/Styling/Setter.cs b/src/Avalonia.Base/Styling/Setter.cs index e5b2bed738..1ac26c79ec 100644 --- a/src/Avalonia.Base/Styling/Setter.cs +++ b/src/Avalonia.Base/Styling/Setter.cs @@ -65,7 +65,7 @@ namespace Avalonia.Styling void IValueEntry.Unsubscribe() { } - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConversionSupressWarningMessage)] internal override ISetterInstance Instance(IStyleInstance instance, StyledElement target) { if (target is not AvaloniaObject ao) diff --git a/src/Avalonia.Base/Utilities/TypeUtilities.cs b/src/Avalonia.Base/Utilities/TypeUtilities.cs index fafafabd82..3a82bf02e0 100644 --- a/src/Avalonia.Base/Utilities/TypeUtilities.cs +++ b/src/Avalonia.Base/Utilities/TypeUtilities.cs @@ -126,7 +126,7 @@ namespace Avalonia.Utilities /// The culture to use. /// If successful, contains the convert value. /// True if the cast was successful, otherwise false. - [RequiresUnreferencedCode(TrimmingMessages.TypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.TypeConversionRequiresUnreferencedCodeMessage)] public static bool TryConvert(Type to, object? value, CultureInfo? culture, out object? result) { if (value == null) @@ -246,7 +246,7 @@ namespace Avalonia.Utilities /// The value to convert. /// If successful, contains the converted value. /// True if the convert was successful, otherwise false. - [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConversionRequiresUnreferencedCodeMessage)] public static bool TryConvertImplicit(Type to, object? value, out object? result) { if (value == null) @@ -309,7 +309,7 @@ namespace Avalonia.Utilities /// The type to convert to.. /// The culture to use. /// A value of . - [RequiresUnreferencedCode(TrimmingMessages.TypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.TypeConversionRequiresUnreferencedCodeMessage)] public static object? ConvertOrDefault(object? value, Type type, CultureInfo culture) { return TryConvert(type, value, culture, out var result) ? result : Default(type); @@ -322,13 +322,13 @@ namespace Avalonia.Utilities /// The value to convert. /// The type to convert to. /// A value of . - [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConversionRequiresUnreferencedCodeMessage)] public static object? ConvertImplicitOrDefault(object? value, Type type) { return TryConvertImplicit(type, value, out var result) ? result : Default(type); } - [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConvertionRequiresUnreferencedCodeMessage)] + [RequiresUnreferencedCode(TrimmingMessages.ImplicitTypeConversionRequiresUnreferencedCodeMessage)] public static T ConvertImplicit(object? value) { if (TryConvertImplicit(typeof(T), value, out var result)) diff --git a/src/Markup/Avalonia.Markup/Data/BindingBase.cs b/src/Markup/Avalonia.Markup/Data/BindingBase.cs index 799401cd4e..1d82725e57 100644 --- a/src/Markup/Avalonia.Markup/Data/BindingBase.cs +++ b/src/Markup/Avalonia.Markup/Data/BindingBase.cs @@ -76,7 +76,7 @@ namespace Avalonia.Data bool enableDataValidation); /// - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.TypeConvertionSupressWarningMessage)] + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.TypeConversionSupressWarningMessage)] public InstancedBinding? Initiate( AvaloniaObject target, AvaloniaProperty? targetProperty, From 46488628dd5176a26f5042095acc1f43eccc8913 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 May 2023 16:15:43 +0200 Subject: [PATCH 4/8] Move TemplateBinding to Avalonia.Base. It would be useful to be able to access it from here to provide bindings in default template values, and it has no dependency on XAML. --- .../Avalonia.Markup => Avalonia.Base}/Data/TemplateBinding.cs | 0 src/Avalonia.Base/Properties/AssemblyInfo.cs | 1 + tests/Avalonia.Markup.Xaml.UnitTests/XamlTestBase.cs | 2 +- 3 files changed, 2 insertions(+), 1 deletion(-) rename src/{Markup/Avalonia.Markup => Avalonia.Base}/Data/TemplateBinding.cs (100%) diff --git a/src/Markup/Avalonia.Markup/Data/TemplateBinding.cs b/src/Avalonia.Base/Data/TemplateBinding.cs similarity index 100% rename from src/Markup/Avalonia.Markup/Data/TemplateBinding.cs rename to src/Avalonia.Base/Data/TemplateBinding.cs diff --git a/src/Avalonia.Base/Properties/AssemblyInfo.cs b/src/Avalonia.Base/Properties/AssemblyInfo.cs index 260771ea9d..d37ec86f2a 100644 --- a/src/Avalonia.Base/Properties/AssemblyInfo.cs +++ b/src/Avalonia.Base/Properties/AssemblyInfo.cs @@ -6,6 +6,7 @@ using Avalonia.Metadata; [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls")] +[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Data")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Data.Converters")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input.GestureRecognizers")] diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/XamlTestBase.cs b/tests/Avalonia.Markup.Xaml.UnitTests/XamlTestBase.cs index 6d26de2b29..26fba7ec57 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/XamlTestBase.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/XamlTestBase.cs @@ -13,7 +13,7 @@ namespace Avalonia.Markup.Xaml.UnitTests public XamlTestBase() { // Ensure necessary assemblies are loaded. - var _ = typeof(TemplateBinding); + var _ = typeof(Binding); GC.KeepAlive(typeof(ItemsRepeater)); if (AvaloniaLocator.Current.GetService() == null) AvaloniaLocator.CurrentMutable.Bind() From 3b203225cda7dd8be608cba973c78ae99d1d5cfb Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 May 2023 16:25:15 +0200 Subject: [PATCH 5/8] Make DelayedBinding internal. Is only used by `StaticResource` and a few unit tests. Can probably be removed. --- src/Markup/Avalonia.Markup/Avalonia.Markup.csproj | 2 ++ src/Markup/Avalonia.Markup/Markup/Data/DelayedBinding.cs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj index ec44eeb38f..77a1082ed5 100644 --- a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj +++ b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj @@ -19,7 +19,9 @@ + + diff --git a/src/Markup/Avalonia.Markup/Markup/Data/DelayedBinding.cs b/src/Markup/Avalonia.Markup/Markup/Data/DelayedBinding.cs index 551e017a61..6c70a81298 100644 --- a/src/Markup/Avalonia.Markup/Markup/Data/DelayedBinding.cs +++ b/src/Markup/Avalonia.Markup/Markup/Data/DelayedBinding.cs @@ -18,7 +18,7 @@ namespace Avalonia.Markup.Data /// is applied to the property before the properties on the `Binding` object are set. Looking /// at WPF it uses a similar mechanism for bindings that come from XAML. /// - public static class DelayedBinding + internal static class DelayedBinding { private static readonly ConditionalWeakTable> _entries = new(); From 5836b202cc21316f47b9cd3385a84aed746f74ac Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 May 2023 16:33:59 +0200 Subject: [PATCH 6/8] Make parsers internal. --- src/Markup/Avalonia.Markup/Avalonia.Markup.csproj | 4 ++++ .../Avalonia.Markup/Markup/Parsers/ArgumentListParser.cs | 5 +---- .../Avalonia.Markup/Markup/Parsers/PropertyPathGrammar.cs | 5 +---- src/Markup/Avalonia.Markup/Markup/Parsers/SelectorParser.cs | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj index 77a1082ed5..d041e7d2e6 100644 --- a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj +++ b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj @@ -19,8 +19,12 @@ + + + + diff --git a/src/Markup/Avalonia.Markup/Markup/Parsers/ArgumentListParser.cs b/src/Markup/Avalonia.Markup/Markup/Parsers/ArgumentListParser.cs index e858bacb74..c3651594e9 100644 --- a/src/Markup/Avalonia.Markup/Markup/Parsers/ArgumentListParser.cs +++ b/src/Markup/Avalonia.Markup/Markup/Parsers/ArgumentListParser.cs @@ -4,10 +4,7 @@ using Avalonia.Utilities; namespace Avalonia.Markup.Parsers { -#if !BUILDTASK - public -#endif - static class ArgumentListParser + internal static class ArgumentListParser { public static IList ParseArguments(this ref CharacterReader r, char open, char close, char delimiter = ',') { diff --git a/src/Markup/Avalonia.Markup/Markup/Parsers/PropertyPathGrammar.cs b/src/Markup/Avalonia.Markup/Markup/Parsers/PropertyPathGrammar.cs index bf11a02fee..74d2ee3153 100644 --- a/src/Markup/Avalonia.Markup/Markup/Parsers/PropertyPathGrammar.cs +++ b/src/Markup/Avalonia.Markup/Markup/Parsers/PropertyPathGrammar.cs @@ -7,10 +7,7 @@ using Avalonia.Utilities; namespace Avalonia.Markup.Parsers { -#if !BUILDTASK - public -#endif - class PropertyPathGrammar + internal class PropertyPathGrammar { private enum State { diff --git a/src/Markup/Avalonia.Markup/Markup/Parsers/SelectorParser.cs b/src/Markup/Avalonia.Markup/Markup/Parsers/SelectorParser.cs index 557045d469..350b07742f 100644 --- a/src/Markup/Avalonia.Markup/Markup/Parsers/SelectorParser.cs +++ b/src/Markup/Avalonia.Markup/Markup/Parsers/SelectorParser.cs @@ -11,7 +11,7 @@ namespace Avalonia.Markup.Parsers /// /// Parses a from text. /// - public class SelectorParser + internal class SelectorParser { private readonly Func _typeResolver; From 11b44129d1191fc979b56f0fde2c557767f69095 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 May 2023 16:36:58 +0200 Subject: [PATCH 7/8] Make IRuntimeXamlLoader internal. --- src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj | 2 ++ src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoader.cs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj index 05e937fc05..618379757b 100644 --- a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj +++ b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj @@ -71,6 +71,8 @@ + + diff --git a/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoader.cs b/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoader.cs index 834fa84b53..3d952a7ee9 100644 --- a/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoader.cs +++ b/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoader.cs @@ -9,7 +9,7 @@ namespace Avalonia.Markup.Xaml /// public static class AvaloniaXamlLoader { - public interface IRuntimeXamlLoader + internal interface IRuntimeXamlLoader { object Load(RuntimeXamlLoaderDocument document, RuntimeXamlLoaderConfiguration configuration); } From afb5d65f683dd64916769813d0c6cb7df1f787ec Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 May 2023 16:39:46 +0200 Subject: [PATCH 8/8] Make ICompiledBindingPathElement internal. --- .../MarkupExtensions/CompiledBindings/CompiledBindingPath.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs index 49349b047c..73da7a7fe6 100644 --- a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs +++ b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs @@ -173,7 +173,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings public CompiledBindingPath Build() => new CompiledBindingPath(_elements.ToArray(), _rawSource); } - public interface ICompiledBindingPathElement + internal interface ICompiledBindingPathElement { }