@@ -83,12 +83,8 @@ interface IEqualitySignatures : IRelationalSignatures
83
83
void F ( Guid ? x , Guid ? y ) ;
84
84
void F ( Guid x , string y ) ;
85
85
void F ( Guid ? x , string y ) ;
86
- void F ( Guid x , object y ) ;
87
- void F ( Guid ? x , object y ) ;
88
86
void F ( string x , Guid y ) ;
89
87
void F ( string x , Guid ? y ) ;
90
- void F ( object x , Guid y ) ;
91
- void F ( object x , Guid ? y ) ;
92
88
}
93
89
94
90
interface IAddSignatures : IArithmeticSignatures
@@ -1830,7 +1826,9 @@ void CheckAndPromoteOperands(Type signatures, string opName, ref Expression left
1830
1826
1831
1827
MethodBase method ;
1832
1828
if ( FindMethod ( signatures , "F" , false , args , out method ) != 1 )
1833
- throw IncompatibleOperandsError ( opName , left , right , errorPos ) ;
1829
+ {
1830
+ throw IncompatibleOperandsError ( opName , left , right , errorPos ) ;
1831
+ }
1834
1832
1835
1833
left = args [ 0 ] ;
1836
1834
right = args [ 1 ] ;
@@ -1974,6 +1972,11 @@ int FindBestMethod(IEnumerable<MethodBase> methods, Expression[] args, out Metho
1974
1972
applicable = applicable . Where ( m => applicable . All ( n => m == n || IsBetterThan ( args , m , n ) ) ) . ToArray ( ) ;
1975
1973
}
1976
1974
1975
+ if ( args . Length == 2 && applicable . Length > 1 && args [ 0 ] . Type == typeof ( Guid ? ) || args [ 1 ] . Type == typeof ( Guid ? ) )
1976
+ {
1977
+ applicable = applicable . Take ( 1 ) . ToArray ( ) ;
1978
+ }
1979
+
1977
1980
if ( applicable . Length == 1 )
1978
1981
{
1979
1982
MethodData md = applicable [ 0 ] ;
0 commit comments