diff --git a/PropertyChanged.Fody/IsChangedMethodFinder.cs b/PropertyChanged.Fody/IsChangedMethodFinder.cs index 446c7a16..e08d0f0f 100644 --- a/PropertyChanged.Fody/IsChangedMethodFinder.cs +++ b/PropertyChanged.Fody/IsChangedMethodFinder.cs @@ -75,8 +75,7 @@ bool FindIsChangedEventInvokerMethodDefinition(TypeDefinition type, out MethodDe var propertyDefinition = type.Properties .FirstOrDefault(x => x.Name == isChangedPropertyName && - x.SetMethod != null && - x.SetMethod.IsPublic + x.SetMethod is {IsPublic: true} ); if (propertyDefinition != null) diff --git a/PropertyChanged.Fody/MethodFinder.cs b/PropertyChanged.Fody/MethodFinder.cs index 18b40742..e13b9c6f 100644 --- a/PropertyChanged.Fody/MethodFinder.cs +++ b/PropertyChanged.Fody/MethodFinder.cs @@ -131,10 +131,7 @@ MethodDefinition FindEventInvokerMethodDefinition(TypeDefinition type) .OrderByDescending(GetInvokerPriority) .FirstOrDefault(IsEventInvokerMethod); - if (methodDefinition != null && - methodDefinition.IsPrivate && - methodDefinition.IsFinal && - methodDefinition.IsVirtual && + if (methodDefinition is {IsPrivate: true, IsFinal: true, IsVirtual: true} && methodDefinition.Overrides.Count == 1) { // Explicitly implemented interfaces should call the interface method instead @@ -148,7 +145,7 @@ MethodReference FindExplicitImplementation(TypeDefinition type) { return type.GetAllInterfaces() .Select(i => i.Resolve()) - .Where(i => i != null && i.IsPublic) + .Where(i => i is {IsPublic: true}) .SelectMany(i => i.Methods.Where(m => EventInvokerNames.Contains($"{i.FullName}.{m.Name}"))) .OrderByDescending(GetInvokerPriority) .FirstOrDefault(IsEventInvokerMethod); diff --git a/TestAssemblies/AssemblyToProcess/ClassWithNullableBackingField.cs b/TestAssemblies/AssemblyToProcess/ClassWithNullableBackingField.cs index 0455ecb9..5edc7d94 100644 --- a/TestAssemblies/AssemblyToProcess/ClassWithNullableBackingField.cs +++ b/TestAssemblies/AssemblyToProcess/ClassWithNullableBackingField.cs @@ -10,6 +10,7 @@ public bool IsFlag set => _isFlag = value; } + // ReSharper disable once MemberCanBeMadeStatic.Local bool GetFlag() => false; public event PropertyChangedEventHandler PropertyChanged; diff --git a/TestAssemblies/AssemblyToProcess/ComplexHierarchy/ClassChild3.cs b/TestAssemblies/AssemblyToProcess/ComplexHierarchy/ClassChild3.cs index 785c9c8c..73507375 100644 --- a/TestAssemblies/AssemblyToProcess/ComplexHierarchy/ClassChild3.cs +++ b/TestAssemblies/AssemblyToProcess/ComplexHierarchy/ClassChild3.cs @@ -1,6 +1,6 @@ namespace ComplexHierarchy; -public class ClassChild3 : ClassChild2 +public class ClassChild3 : ClassChild2 { public string Property2 { get; set; } } \ No newline at end of file diff --git a/TestAssemblies/AssemblyWithInheritance/Classes.cs b/TestAssemblies/AssemblyWithInheritance/Classes.cs index d2f4ba1f..905d2fe9 100644 --- a/TestAssemblies/AssemblyWithInheritance/Classes.cs +++ b/TestAssemblies/AssemblyWithInheritance/Classes.cs @@ -313,6 +313,7 @@ public override int Property2 public override int Property3 { get; set; } + // ReSharper disable once MemberCanBeMadeStatic.Local int DoSomeDummyStuff(int a, int b, int c) { return a + b + c; diff --git a/Tests/AlreadyNotifyFinderTest.cs b/Tests/AlreadyNotifyFinderTest.cs index d91c78c5..6f2cbc7f 100644 --- a/Tests/AlreadyNotifyFinderTest.cs +++ b/Tests/AlreadyNotifyFinderTest.cs @@ -1,5 +1,6 @@ using System.Linq; using Xunit; +// ReSharper disable MemberCanBeMadeStatic.Local // ReSharper disable ValueParameterNotUsed // ReSharper disable UnusedParameter.Local diff --git a/Tests/RecursiveIlFinderTests.cs b/Tests/RecursiveIlFinderTests.cs index 9c30b2a6..79230272 100644 --- a/Tests/RecursiveIlFinderTests.cs +++ b/Tests/RecursiveIlFinderTests.cs @@ -36,6 +36,7 @@ void Method2() Method1(); } + // ReSharper disable once MemberCanBeMadeStatic.Local void Method3() { Debug.WriteLine("a");