Browse Source

Fix #1355: System.ArgumentException: An item with the same key has already been added in Decompiler.IL.Transforms.TransformExpressionTrees.ConvertLambda

pull/1360/head
Siegfried Pammer 7 years ago
parent
commit
cb5960b8e0
  1. 4
      ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs

4
ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs

@ -214,6 +214,10 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -214,6 +214,10 @@ namespace ICSharpCode.Decompiler.IL.Transforms
return false;
if (!this.parameters.TryGetValue(v, out var value))
return false;
// Parameter variable cannot be used in two different compiler-generated expression trees,
// therefore we have to abort if the parameter is already mapped to a variable.
if (this.parameterMapping.ContainsKey(v))
return false;
var param = new ILVariable(VariableKind.Parameter, value.Item1, i) { Name = value.Item2 };
parameterMapping.Add(v, param);
parameterVariables.Add(param);

Loading…
Cancel
Save