This is an automated email from the ASF dual-hosted git repository.

laimis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git


The following commit(s) were added to refs/heads/master by this push:
     new 746d9f3d3 BREAKING: SrndTruncQuery fix for virtual call being made 
from constructor (#830)
746d9f3d3 is described below

commit 746d9f3d34429e5aac661c382c856f8ecd62fce1
Author: Laimonas Simutis <[email protected]>
AuthorDate: Thu Apr 13 13:15:08 2023 -0700

    BREAKING: SrndTruncQuery fix for virtual call being made from constructor 
(#830)
---
 src/Lucene.Net.QueryParser/Surround/Query/SimpleTerm.cs   |  4 ++--
 .../Surround/Query/SrndTruncQuery.cs                      | 15 +++++++++++++--
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/Lucene.Net.QueryParser/Surround/Query/SimpleTerm.cs 
b/src/Lucene.Net.QueryParser/Surround/Query/SimpleTerm.cs
index cbaaad9c3..ad9c6dcad 100644
--- a/src/Lucene.Net.QueryParser/Surround/Query/SimpleTerm.cs
+++ b/src/Lucene.Net.QueryParser/Surround/Query/SimpleTerm.cs
@@ -27,9 +27,9 @@ namespace Lucene.Net.QueryParsers.Surround.Query
     /// </summary>
     public abstract class SimpleTerm : SrndQuery, IDistanceSubQuery, 
IComparable<SimpleTerm>
     {
-        protected SimpleTerm(bool q) // LUCENENET: CA1012: Abstract types 
should not have constructors (marked protected)
+        protected SimpleTerm(bool quoted) // LUCENENET: CA1012: Abstract types 
should not have constructors (marked protected)
         { 
-            quoted = q; 
+            this.quoted = quoted; 
         }
 
         private readonly bool quoted; // LUCENENET: marked readonly
diff --git a/src/Lucene.Net.QueryParser/Surround/Query/SrndTruncQuery.cs 
b/src/Lucene.Net.QueryParser/Surround/Query/SrndTruncQuery.cs
index cf7bd42e7..349226d71 100644
--- a/src/Lucene.Net.QueryParser/Surround/Query/SrndTruncQuery.cs
+++ b/src/Lucene.Net.QueryParser/Surround/Query/SrndTruncQuery.cs
@@ -1,6 +1,7 @@
 using Lucene.Net.Index;
 using Lucene.Net.Util;
 using System;
+using System.Diagnostics.CodeAnalysis;
 using System.Text;
 using System.Text.RegularExpressions;
 
@@ -28,13 +29,23 @@ namespace Lucene.Net.QueryParsers.Surround.Query
     /// </summary>
     public class SrndTruncQuery : SimpleTerm
     {
+        [SuppressMessage("CodeQuality", "IDE0079:Remove unnecessary 
suppression", Justification = "This is a SonarCloud issue")]
+        [SuppressMessage("CodeQuality", "S1699:Constructors should only call 
non-overridable methods", Justification = "Required for continuity with 
Lucene's design")]
         public SrndTruncQuery(string truncated, char unlimited, char mask)
-            : base(false) /* not quoted */
+            : this(truncated, unlimited, mask, quoted: false) /* not quoted */
+        {
+            TruncatedToPrefixAndPattern();
+        }
+
+        // LUCENENET specific - this is for provided for subclasses to use and 
avoid
+        // the virtual call to TruncatedToPrefixAndPattern(), which they can do
+        // in their own constructor.
+        protected SrndTruncQuery(string truncated, char unlimited, char mask, 
bool quoted)
+            : base(quoted)
         {
             this.truncated = truncated;
             this.unlimited = unlimited;
             this.mask = mask;
-            TruncatedToPrefixAndPattern();
         }
 
         private readonly string truncated;

Reply via email to