diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/ConditionDetection.cs b/ICSharpCode.Decompiler/IL/ControlFlow/ConditionDetection.cs index 14f8b7b73..51b9ba620 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/ConditionDetection.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/ConditionDetection.cs @@ -20,6 +20,7 @@ using System.Collections; using System.Diagnostics; using System.Linq; using ICSharpCode.Decompiler.FlowAnalysis; +using ICSharpCode.Decompiler.IL.Transforms; namespace ICSharpCode.Decompiler.IL.ControlFlow { diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/ControlFlowSimplification.cs b/ICSharpCode.Decompiler/IL/ControlFlow/ControlFlowSimplification.cs index 258afb755..98e9eb7c1 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/ControlFlowSimplification.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/ControlFlowSimplification.cs @@ -19,6 +19,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using ICSharpCode.Decompiler.IL.Transforms; namespace ICSharpCode.Decompiler.IL.ControlFlow { diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/DetectPinnedRegions.cs b/ICSharpCode.Decompiler/IL/ControlFlow/DetectPinnedRegions.cs index ac379a309..743455711 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/DetectPinnedRegions.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/DetectPinnedRegions.cs @@ -20,6 +20,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using ICSharpCode.Decompiler.IL.Transforms; using ICSharpCode.NRefactory.TypeSystem; namespace ICSharpCode.Decompiler.IL.ControlFlow diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/IntroduceExitPoints.cs b/ICSharpCode.Decompiler/IL/ControlFlow/IntroduceExitPoints.cs index f4f2aac7c..e01975d97 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/IntroduceExitPoints.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/IntroduceExitPoints.cs @@ -18,6 +18,7 @@ using System; using System.Diagnostics; +using ICSharpCode.Decompiler.IL.Transforms; namespace ICSharpCode.Decompiler.IL.ControlFlow { diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/LoopDetection.cs b/ICSharpCode.Decompiler/IL/ControlFlow/LoopDetection.cs index 2a9f4c8b5..a9ff8cde9 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/LoopDetection.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/LoopDetection.cs @@ -21,6 +21,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; using ICSharpCode.Decompiler.FlowAnalysis; +using ICSharpCode.Decompiler.IL.Transforms; namespace ICSharpCode.Decompiler.IL.ControlFlow { diff --git a/ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs b/ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs index 9cc722c7c..39472bce2 100644 --- a/ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs +++ b/ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs @@ -19,6 +19,7 @@ using System; using System.Collections.Generic; using System.Threading; +using ICSharpCode.Decompiler.IL.Transforms; using ICSharpCode.NRefactory.TypeSystem; using Mono.Cecil; using ICSharpCode.Decompiler.Disassembler; diff --git a/ICSharpCode.Decompiler/IL/Transforms/CopyPropagation.cs b/ICSharpCode.Decompiler/IL/Transforms/CopyPropagation.cs index 9154fa50a..b38bb6a96 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/CopyPropagation.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/CopyPropagation.cs @@ -19,7 +19,7 @@ using System; using System.Linq; -namespace ICSharpCode.Decompiler.IL +namespace ICSharpCode.Decompiler.IL.Transforms { /// /// Runs a very simple form of copy propagation. diff --git a/ICSharpCode.Decompiler/IL/Transforms/IILTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/IILTransform.cs index dacc4c726..32ae5cf2d 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/IILTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/IILTransform.cs @@ -19,7 +19,7 @@ using System; using System.Threading; -namespace ICSharpCode.Decompiler.IL +namespace ICSharpCode.Decompiler.IL.Transforms { public class ILTransformContext { diff --git a/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs b/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs index 234eea370..eada3df8f 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs @@ -24,7 +24,7 @@ using ICSharpCode.NRefactory.TypeSystem; using Mono.Cecil; using ICSharpCode.Decompiler.IL; -namespace ICSharpCode.Decompiler.IL +namespace ICSharpCode.Decompiler.IL.Transforms { /// /// Performs inlining transformations. @@ -254,9 +254,11 @@ namespace ICSharpCode.Decompiler.IL { Debug.Assert(loadInst.IsDescendantOf(next)); + // decide based on the source expression being inlined if (inlinedExpression.OpCode == OpCode.DefaultValue) return true; + // decide based on the target into which we are inlining var parent = loadInst.Parent; switch (next.OpCode) { case OpCode.Return: diff --git a/ICSharpCode.Decompiler/IL/Transforms/LoopingTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/LoopingTransform.cs index f5608272e..02edd0b2f 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/LoopingTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/LoopingTransform.cs @@ -20,7 +20,7 @@ using System; using System.Linq; using System.Collections.Generic; -namespace ICSharpCode.Decompiler.IL +namespace ICSharpCode.Decompiler.IL.Transforms { /// /// Repeats the child transforms until the ILAst no longer changes.