diff --git a/ICSharpCode.Decompiler/CSharp/Resolver/LambdaResolveResult.cs b/ICSharpCode.Decompiler/CSharp/Resolver/LambdaResolveResult.cs index 4dde321dd..dd9acd4e2 100644 --- a/ICSharpCode.Decompiler/CSharp/Resolver/LambdaResolveResult.cs +++ b/ICSharpCode.Decompiler/CSharp/Resolver/LambdaResolveResult.cs @@ -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 } } } - if (returnType.Equals(this.ReturnType)) { + if (conversions.IdentityConversion(returnType, this.ReturnType)) { return LambdaConversion.Instance; } else { return Conversion.None; diff --git a/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs index f65fe7d16..dbe4a69e7 100644 --- a/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs @@ -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)