Browse Source

Fix bug in CallBuilder.CastArguments: accidentally made *all* casts implicit, which should not happen.

pull/1165/head
Siegfried Pammer 7 years ago
parent
commit
f2c0f3e70d
  1. 9
      ICSharpCode.Decompiler/CSharp/CallBuilder.cs

9
ICSharpCode.Decompiler/CSharp/CallBuilder.cs

@ -337,7 +337,14 @@ namespace ICSharpCode.Decompiler.CSharp @@ -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);
}
}
}

Loading…
Cancel
Save