From f2c0f3e70d7d7c6ba540c7b1c7bfa96a4e0251bc Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 9 Jun 2018 22:52:50 +0200 Subject: [PATCH] Fix bug in CallBuilder.CastArguments: accidentally made *all* casts implicit, which should not happen. --- ICSharpCode.Decompiler/CSharp/CallBuilder.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/CSharp/CallBuilder.cs b/ICSharpCode.Decompiler/CSharp/CallBuilder.cs index 91f0cd7dd..cfa35d37c 100644 --- a/ICSharpCode.Decompiler/CSharp/CallBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/CallBuilder.cs @@ -337,7 +337,14 @@ namespace ICSharpCode.Decompiler.CSharp ModifyReturnTypeOfLambda(lambda); } } else { - arguments[i] = arguments[i].ConvertTo(expectedParameters[i].Type, expressionBuilder); + IType parameterType; + if (expectedParameters[i].Type.Kind == TypeKind.Dynamic) { + parameterType = expressionBuilder.compilation.FindType(KnownTypeCode.Object); + } else { + parameterType = expectedParameters[i].Type; + } + + arguments[i] = arguments[i].ConvertTo(parameterType, expressionBuilder, allowImplicitConversion: false); } } }