From 7502e521c150f1a314fea01865a2f8950f0d636d Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Thu, 15 Aug 2019 11:31:36 +0200 Subject: [PATCH] Improve documentation of ExpressionTransforms.TransformCatchVariable --- .../IL/Transforms/ExpressionTransforms.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs index 91229cffa..8578de0bd 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs @@ -683,7 +683,18 @@ namespace ICSharpCode.Decompiler.IL.Transforms } /// - /// Transform local exception variable. + /// catch ex : TException when (...) BlockContainer { + /// Block entryPoint (incoming: 1) { + /// stloc v(ldloc ex) + /// ... + /// } + /// } + /// => + /// catch v : TException when (...) BlockContainer { + /// Block entryPoint (incoming: 1) { + /// ... + /// } + /// } /// void TransformCatchVariable(TryCatchHandler handler, Block entryPoint) { @@ -693,6 +704,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms return; if (!exceptionSlotLoad.MatchLdLoc(handler.Variable) || !handler.Variable.IsSingleDefinition || handler.Variable.LoadCount != 1) return; + context.Step("TransformCatchVariable", entryPoint.Instructions[0]); handler.Variable = exceptionVar; exceptionVar.Kind = VariableKind.ExceptionLocal; entryPoint.Instructions.RemoveAt(0); @@ -705,6 +717,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms { TransformCatchVariable(handler, entryPoint); if (entryPoint.Instructions.Count == 1 && entryPoint.Instructions[0].MatchLeave(out _, out var condition)) { + context.Step("TransformCatchWhen", entryPoint.Instructions[0]); handler.Filter = condition; } }