Browse Source

use IdentityConversion instead of IType.Equals.

pull/1730/head
Siegfried Pammer 6 years ago
parent
commit
f0b186c50c
  1. 4
      ICSharpCode.Decompiler/CSharp/Resolver/LambdaResolveResult.cs
  2. 2
      ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs

4
ICSharpCode.Decompiler/CSharp/Resolver/LambdaResolveResult.cs

@ -152,7 +152,7 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver @@ -152,7 +152,7 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver
if (this.Parameters.Count != parameterTypes.Length)
return Conversion.None;
for (int i = 0; i < parameterTypes.Length; ++i) {
if (!parameterTypes[i].Equals(this.Parameters[i].Type)) {
if (!conversions.IdentityConversion(parameterTypes[i], this.Parameters[i].Type)) {
if (IsImplicitlyTyped) {
// it's possible that different parameter types also lead to a valid conversion
return LambdaConversion.Instance;
@ -162,7 +162,7 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver @@ -162,7 +162,7 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver
}
}
}
if (returnType.Equals(this.ReturnType)) {
if (conversions.IdentityConversion(returnType, this.ReturnType)) {
return LambdaConversion.Instance;
} else {
return Conversion.None;

2
ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs

@ -486,7 +486,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -486,7 +486,7 @@ namespace ICSharpCode.Decompiler.CSharp
return newTargetType.IsKnownType(KnownTypeCode.FormattableString)
|| newTargetType.IsKnownType(KnownTypeCode.IFormattable);
}
return oldTargetType.Equals(newTargetType);
return conversions.IdentityConversion(oldTargetType, newTargetType);
}
TranslatedExpression LdcI4(ICompilation compilation, int val)

Loading…
Cancel
Save