From 355c1da9705ff267942921dd2d0f344bf518891f Mon Sep 17 00:00:00 2001 From: Sergei Pavlov Date: Fri, 31 Oct 2025 14:19:55 -0700 Subject: [PATCH 1/2] Convert `LinqExtensionRegistration` to readonly struct --- .../Orm/Configuration/LinqExtensionRegistration.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Orm/Xtensive.Orm/Orm/Configuration/LinqExtensionRegistration.cs b/Orm/Xtensive.Orm/Orm/Configuration/LinqExtensionRegistration.cs index 5c0456c1d..08de1b4f3 100644 --- a/Orm/Xtensive.Orm/Orm/Configuration/LinqExtensionRegistration.cs +++ b/Orm/Xtensive.Orm/Orm/Configuration/LinqExtensionRegistration.cs @@ -4,33 +4,30 @@ // Created by: Denis Krjuchkov // Created: 2011.10.27 -using System; using System.Linq.Expressions; using System.Reflection; -using Xtensive.Core; - namespace Xtensive.Orm.Configuration { /// /// Registration entry for LINQ extension. /// - public sealed class LinqExtensionRegistration + public readonly struct LinqExtensionRegistration { /// /// Gets member this extension is intended for. /// - public MemberInfo Member { get; private set; } + public MemberInfo Member { get; } /// /// Gets substitution that is performed when LINQ translator encouters access. /// - public LambdaExpression Substitution { get; private set; } + public LambdaExpression Substitution { get; } /// /// Gets action that is performed when LINQ translator encouters access. /// - public Func Compiler { get; private set; } + public Func Compiler { get; } // Constructors @@ -63,4 +60,4 @@ public LinqExtensionRegistration(MemberInfo member, Func Date: Fri, 31 Oct 2025 14:46:35 -0700 Subject: [PATCH 2/2] Remove redundant ReferenceEquals --- .../Orm/Linq/MemberCompilation/MemberCompilerProvider.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Orm/Xtensive.Orm/Orm/Linq/MemberCompilation/MemberCompilerProvider.cs b/Orm/Xtensive.Orm/Orm/Linq/MemberCompilation/MemberCompilerProvider.cs index de151375c..abe1d7d6a 100644 --- a/Orm/Xtensive.Orm/Orm/Linq/MemberCompilation/MemberCompilerProvider.cs +++ b/Orm/Xtensive.Orm/Orm/Linq/MemberCompilation/MemberCompilerProvider.cs @@ -22,8 +22,7 @@ internal partial class MemberCompilerProvider : LockableBase, IMemberCompiler private readonly Module module; private readonly int metadataToken; - public bool Equals(CompilerKey other) => metadataToken == other.metadataToken - && (ReferenceEquals(module, other.module) || module == other.module); + public bool Equals(CompilerKey other) => metadataToken == other.metadataToken && module == other.module; public override bool Equals(object obj) => obj is CompilerKey other && Equals(other);