@@ -33,14 +33,22 @@ public static class Operators
3333 ScalarTypes . DateTime
3434 } ;
3535
36- private static OperatorSymbol StringBinary ( OperatorKind kind )
37- => new OperatorSymbol ( kind ,
38- new Signature ( ScalarTypes . Bool ,
39- new Parameter ( "left" , ParameterTypeKind . StringOrDynamic ) ,
40- new Parameter ( "right" , ScalarTypes . String ) ) ,
41- new Signature ( ScalarTypes . Bool ,
42- new Parameter ( "left" , ParameterTypeKind . StringOrDynamic , ArgumentKind . StarOnly ) ,
43- new Parameter ( "right" , ScalarTypes . String ) ) ) ;
36+ private static OperatorSymbol StringBinary ( OperatorKind kind , bool dynamicRHS = true )
37+ => ( dynamicRHS )
38+ ? new OperatorSymbol ( kind ,
39+ new Signature ( ScalarTypes . Bool ,
40+ new Parameter ( "left" , ParameterTypeKind . StringOrDynamic ) ,
41+ new Parameter ( "right" , ParameterTypeKind . StringOrDynamic ) ) ,
42+ new Signature ( ScalarTypes . Bool ,
43+ new Parameter ( "left" , ParameterTypeKind . StringOrDynamic , ArgumentKind . StarOnly ) ,
44+ new Parameter ( "right" , ParameterTypeKind . StringOrDynamic ) ) )
45+ : new OperatorSymbol ( kind ,
46+ new Signature ( ScalarTypes . Bool ,
47+ new Parameter ( "left" , ParameterTypeKind . StringOrDynamic ) ,
48+ new Parameter ( "right" , ScalarTypes . String ) ) ,
49+ new Signature ( ScalarTypes . Bool ,
50+ new Parameter ( "left" , ParameterTypeKind . StringOrDynamic , ArgumentKind . StarOnly ) ,
51+ new Parameter ( "right" , ScalarTypes . String ) ) ) ;
4452
4553 public static readonly OperatorSymbol UnaryMinus =
4654 new OperatorSymbol ( OperatorKind . UnaryMinus ,
@@ -202,40 +210,40 @@ private static TypeSymbol UnaryReturnType(CustomReturnTypeContext context)
202210 StringBinary ( OperatorKind . BangTilde ) ;
203211
204212 public static readonly OperatorSymbol Has =
205- StringBinary ( OperatorKind . Has ) ;
213+ StringBinary ( OperatorKind . Has , dynamicRHS : false ) ;
206214
207215 public static readonly OperatorSymbol HasCs =
208- StringBinary ( OperatorKind . HasCs ) ;
216+ StringBinary ( OperatorKind . HasCs , dynamicRHS : false ) ;
209217
210218 public static readonly OperatorSymbol NotHas =
211- StringBinary ( OperatorKind . NotHas ) ;
219+ StringBinary ( OperatorKind . NotHas , dynamicRHS : false ) ;
212220
213221 public static readonly OperatorSymbol NotHasCs =
214- StringBinary ( OperatorKind . NotHasCs ) ;
222+ StringBinary ( OperatorKind . NotHasCs , dynamicRHS : false ) ;
215223
216224 public static readonly OperatorSymbol HasPrefix =
217- StringBinary ( OperatorKind . HasPrefix ) ;
225+ StringBinary ( OperatorKind . HasPrefix , dynamicRHS : false ) ;
218226
219227 public static readonly OperatorSymbol HasPrefixCs =
220- StringBinary ( OperatorKind . HasPrefixCs ) ;
228+ StringBinary ( OperatorKind . HasPrefixCs , dynamicRHS : false ) ;
221229
222230 public static readonly OperatorSymbol NotHasPrefix =
223- StringBinary ( OperatorKind . NotHasPrefix ) ;
231+ StringBinary ( OperatorKind . NotHasPrefix , dynamicRHS : false ) ;
224232
225233 public static readonly OperatorSymbol NotHasPrefixCs =
226- StringBinary ( OperatorKind . NotHasPrefixCs ) ;
234+ StringBinary ( OperatorKind . NotHasPrefixCs , dynamicRHS : false ) ;
227235
228236 public static readonly OperatorSymbol HasSuffix =
229- StringBinary ( OperatorKind . HasSuffix ) ;
237+ StringBinary ( OperatorKind . HasSuffix , dynamicRHS : false ) ;
230238
231239 public static readonly OperatorSymbol HasSuffixCs =
232- StringBinary ( OperatorKind . HasSuffixCs ) ;
240+ StringBinary ( OperatorKind . HasSuffixCs , dynamicRHS : false ) ;
233241
234242 public static readonly OperatorSymbol NotHasSuffix =
235- StringBinary ( OperatorKind . NotHasSuffix ) ;
243+ StringBinary ( OperatorKind . NotHasSuffix , dynamicRHS : false ) ;
236244
237245 public static readonly OperatorSymbol NotHasSuffixCs =
238- StringBinary ( OperatorKind . NotHasSuffixCs ) ;
246+ StringBinary ( OperatorKind . NotHasSuffixCs , dynamicRHS : false ) ;
239247
240248 public static readonly OperatorSymbol Like =
241249 StringBinary ( OperatorKind . Like ) ;
0 commit comments