Skip to content

Generated properties can cause NullReferenceException #48

@slimshader

Description

@slimshader

Hi,

generated propertoes call Equals unconditionally on argument which can casue NUllRefernceException when field is currently null.

        public partial global::Locale SelectedLocale
        {
            get => field;
            set
            {
                if (!Equals(field, value)) /// <--- here
                {
                    field = value;
                    OnPropertyChanged(_selectedLocaleChangedEventArgs);
                }
            }
        }

it should use Equality Comparer instead (from similar generator in MVVToolkit)

        [global::System.CodeDom.Compiler.GeneratedCode("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "8.3.0.0")]
        [global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
        public string PageInfo
        {
            get => _pageInfo;
            [global::System.Diagnostics.CodeAnalysis.MemberNotNull("_pageInfo")]
            set
            {
                if (!global::System.Collections.Generic.EqualityComparer<string>.Default.Equals(_pageInfo, value))
                {
                    OnPageInfoChanging(value);
                    OnPageInfoChanging(default, value);
                    OnPropertyChanging(global::CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.PageInfo);
                    _pageInfo = value;
                    OnPageInfoChanged(value);
                    OnPageInfoChanged(default, value);
                    OnPropertyChanged(global::CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.PageInfo);
                }
            }
        }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions