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

2
ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs

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

Loading…
Cancel
Save