From 2acc4339dfa10d82a57cf7bf410ec2f86e4df4ee Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Wed, 22 Jul 2020 21:25:22 +0200 Subject: [PATCH] #2058: Mark most transforms as public to help users that use the ILAst directly without decompiling to C#. --- .../IL/ControlFlow/AsyncAwaitDecompiler.cs | 6 +++--- ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs | 2 +- .../IL/ControlFlow/YieldReturnDecompiler.cs | 2 +- .../IL/Transforms/DelegateConstruction.cs | 4 ++-- .../IL/Transforms/EarlyExpressionTransforms.cs | 2 +- ICSharpCode.Decompiler/IL/Transforms/FixLoneIsInst.cs | 2 +- .../IL/Transforms/IntroduceDynamicTypeOnLocals.cs | 2 +- .../IL/Transforms/IntroduceRefReadOnlyModifierOnLocals.cs | 2 +- .../IL/Transforms/LocalFunctionDecompiler.cs | 2 +- ICSharpCode.Decompiler/IL/Transforms/LockTransform.cs | 2 +- .../IL/Transforms/NamedArgumentTransform.cs | 4 ++-- .../IL/Transforms/NullCoalescingTransform.cs | 2 +- .../IL/Transforms/NullPropagationTransform.cs | 2 +- .../IL/Transforms/NullableLiftingTransform.cs | 2 +- .../IL/Transforms/SwitchOnNullableTransform.cs | 2 +- .../IL/Transforms/SwitchOnStringTransform.cs | 2 +- .../IL/Transforms/TransformDisplayClassUsage.cs | 2 +- .../IL/Transforms/UserDefinedLogicTransform.cs | 2 +- ICSharpCode.Decompiler/IL/Transforms/UsingTransform.cs | 2 +- 19 files changed, 23 insertions(+), 23 deletions(-) diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/AsyncAwaitDecompiler.cs b/ICSharpCode.Decompiler/IL/ControlFlow/AsyncAwaitDecompiler.cs index e22109e70..e290f4d95 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/AsyncAwaitDecompiler.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/AsyncAwaitDecompiler.cs @@ -33,9 +33,9 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow /// /// Decompiler step for C# 5 async/await. /// - class AsyncAwaitDecompiler : IILTransform + public class AsyncAwaitDecompiler : IILTransform { - public static bool IsCompilerGeneratedStateMachine(TypeDefinitionHandle type, MetadataReader metadata) + internal static bool IsCompilerGeneratedStateMachine(TypeDefinitionHandle type, MetadataReader metadata) { TypeDefinition td; if (type.IsNil || (td = metadata.GetTypeDefinition(type)).GetDeclaringType().IsNil) @@ -50,7 +50,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow return false; } - public static bool IsCompilerGeneratedMainMethod(Metadata.PEFile module, MethodDefinitionHandle method) + internal static bool IsCompilerGeneratedMainMethod(Metadata.PEFile module, MethodDefinitionHandle method) { var metadata = module.Metadata; var definition = metadata.GetMethodDefinition(method); diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs b/ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs index 9ae80f766..9eb2d3701 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs @@ -35,7 +35,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow /// Detect sequences of conditional branches that all test a single integer value, /// and simplify them into a ILAst switch instruction (which like C# does not require contiguous values). /// - class SwitchDetection : IILTransform + public class SwitchDetection : IILTransform { private readonly SwitchAnalysis analysis = new SwitchAnalysis(); diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/YieldReturnDecompiler.cs b/ICSharpCode.Decompiler/IL/ControlFlow/YieldReturnDecompiler.cs index 268891509..ca6314a74 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/YieldReturnDecompiler.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/YieldReturnDecompiler.cs @@ -28,7 +28,7 @@ using System.Reflection.Metadata; namespace ICSharpCode.Decompiler.IL.ControlFlow { - class YieldReturnDecompiler : IILTransform + public class YieldReturnDecompiler : IILTransform { // For a description on the code generated by the C# compiler for yield return: // http://csharpindepth.com/Articles/Chapter6/IteratorBlockImplementation.aspx diff --git a/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs b/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs index b5dc0423f..27143e9b3 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs @@ -25,9 +25,9 @@ using ICSharpCode.Decompiler.TypeSystem; namespace ICSharpCode.Decompiler.IL.Transforms { /// - /// + /// Transforms anonymous methods and lambdas by creating nested ILFunctions. /// - class DelegateConstruction : IILTransform + public class DelegateConstruction : IILTransform { ILTransformContext context; ITypeResolveContext decompilationContext; diff --git a/ICSharpCode.Decompiler/IL/Transforms/EarlyExpressionTransforms.cs b/ICSharpCode.Decompiler/IL/Transforms/EarlyExpressionTransforms.cs index 8b5b3c6e7..8bba5a9a0 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/EarlyExpressionTransforms.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/EarlyExpressionTransforms.cs @@ -25,7 +25,7 @@ using ICSharpCode.Decompiler.TypeSystem; namespace ICSharpCode.Decompiler.IL.Transforms { - class EarlyExpressionTransforms : ILVisitor, IILTransform + public class EarlyExpressionTransforms : ILVisitor, IILTransform { ILTransformContext context; diff --git a/ICSharpCode.Decompiler/IL/Transforms/FixLoneIsInst.cs b/ICSharpCode.Decompiler/IL/Transforms/FixLoneIsInst.cs index 3b270f62b..6d5367e75 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/FixLoneIsInst.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/FixLoneIsInst.cs @@ -28,7 +28,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// This transform un-inlines the argument of `isinst` instructions that can't be directly translated to C#, /// thus allowing the emulation via "expr is T ? (T)expr : null". /// - class FixLoneIsInst : IILTransform + public class FixLoneIsInst : IILTransform { void IILTransform.Run(ILFunction function, ILTransformContext context) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/IntroduceDynamicTypeOnLocals.cs b/ICSharpCode.Decompiler/IL/Transforms/IntroduceDynamicTypeOnLocals.cs index 08e90f086..a16786ea1 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/IntroduceDynamicTypeOnLocals.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/IntroduceDynamicTypeOnLocals.cs @@ -24,7 +24,7 @@ using ICSharpCode.Decompiler.TypeSystem; namespace ICSharpCode.Decompiler.IL { - class IntroduceDynamicTypeOnLocals : IILTransform + public class IntroduceDynamicTypeOnLocals : IILTransform { public void Run(ILFunction function, ILTransformContext context) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/IntroduceRefReadOnlyModifierOnLocals.cs b/ICSharpCode.Decompiler/IL/Transforms/IntroduceRefReadOnlyModifierOnLocals.cs index d75d3096b..233bf87ef 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/IntroduceRefReadOnlyModifierOnLocals.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/IntroduceRefReadOnlyModifierOnLocals.cs @@ -25,7 +25,7 @@ using ICSharpCode.Decompiler.TypeSystem; namespace ICSharpCode.Decompiler.IL { - class IntroduceRefReadOnlyModifierOnLocals : IILTransform + public class IntroduceRefReadOnlyModifierOnLocals : IILTransform { public void Run(ILFunction function, ILTransformContext context) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/LocalFunctionDecompiler.cs b/ICSharpCode.Decompiler/IL/Transforms/LocalFunctionDecompiler.cs index 0a553839c..de7e36c48 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/LocalFunctionDecompiler.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/LocalFunctionDecompiler.cs @@ -36,7 +36,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// /// Decompiler step for C# 7.0 local functions /// - class LocalFunctionDecompiler : IILTransform + public class LocalFunctionDecompiler : IILTransform { ILTransformContext context; ITypeResolveContext resolveContext; diff --git a/ICSharpCode.Decompiler/IL/Transforms/LockTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/LockTransform.cs index 1c273dd76..ab7a4bb83 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/LockTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/LockTransform.cs @@ -25,7 +25,7 @@ using ICSharpCode.Decompiler.TypeSystem; namespace ICSharpCode.Decompiler.IL.Transforms { - class LockTransform : IBlockTransform + public class LockTransform : IBlockTransform { BlockTransformContext context; diff --git a/ICSharpCode.Decompiler/IL/Transforms/NamedArgumentTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/NamedArgumentTransform.cs index fb9bb125a..a1b74147a 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/NamedArgumentTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/NamedArgumentTransform.cs @@ -10,9 +10,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms using FindResult = ILInlining.FindResult; using FindResultType = ILInlining.FindResultType; - class NamedArgumentTransform : IStatementTransform + public class NamedArgumentTransform : IStatementTransform { - public static FindResult CanIntroduceNamedArgument(CallInstruction call, ILInstruction child, ILVariable v, ILInstruction expressionBeingMoved) + internal static FindResult CanIntroduceNamedArgument(CallInstruction call, ILInstruction child, ILVariable v, ILInstruction expressionBeingMoved) { Debug.Assert(child.Parent == call); if (call.IsInstanceCall && child.ChildIndex == 0) diff --git a/ICSharpCode.Decompiler/IL/Transforms/NullCoalescingTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/NullCoalescingTransform.cs index 2a0780636..e251c23cd 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/NullCoalescingTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/NullCoalescingTransform.cs @@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// /// The ?? operator for nullable value types is handled by NullableLiftingTransform. /// - class NullCoalescingTransform : IStatementTransform + public class NullCoalescingTransform : IStatementTransform { public void Run(Block block, int pos, StatementTransformContext context) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs index 93d7f90f5..798c03f19 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs @@ -489,7 +489,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms } } - class NullPropagationStatementTransform : IStatementTransform + public class NullPropagationStatementTransform : IStatementTransform { public void Run(Block block, int pos, StatementTransformContext context) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs index 38b8bb942..80775465c 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs @@ -908,7 +908,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms #endregion } - class NullableLiftingStatementTransform : IStatementTransform + public class NullableLiftingStatementTransform : IStatementTransform { public void Run(Block block, int pos, StatementTransformContext context) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/SwitchOnNullableTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/SwitchOnNullableTransform.cs index b63ba77d9..9d022a3c8 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/SwitchOnNullableTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/SwitchOnNullableTransform.cs @@ -28,7 +28,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// /// Detects switch-on-nullable patterns employed by the C# compiler and transforms them to an ILAst-switch-instruction. /// - class SwitchOnNullableTransform : IILTransform + public class SwitchOnNullableTransform : IILTransform { public void Run(ILFunction function, ILTransformContext context) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/SwitchOnStringTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/SwitchOnStringTransform.cs index 6385ee159..bab175088 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/SwitchOnStringTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/SwitchOnStringTransform.cs @@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// /// Detects switch-on-string patterns employed by the C# compiler and transforms them to an ILAst-switch-instruction. /// - class SwitchOnStringTransform : IILTransform + public class SwitchOnStringTransform : IILTransform { ILTransformContext context; diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs index d33d9d0f9..ab9aaae28 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs @@ -43,7 +43,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// Note that 2) and 3) apply because declarations and uses of lambdas and local functions /// are already transformed by the time this transform is applied. /// - class TransformDisplayClassUsage : ILVisitor, IILTransform + public class TransformDisplayClassUsage : ILVisitor, IILTransform { class VariableToDeclare { diff --git a/ICSharpCode.Decompiler/IL/Transforms/UserDefinedLogicTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/UserDefinedLogicTransform.cs index 826228b99..ec6eeaf91 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/UserDefinedLogicTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/UserDefinedLogicTransform.cs @@ -26,7 +26,7 @@ using ICSharpCode.Decompiler.Util; namespace ICSharpCode.Decompiler.IL.Transforms { - class UserDefinedLogicTransform : IStatementTransform + public class UserDefinedLogicTransform : IStatementTransform { void IStatementTransform.Run(Block block, int pos, StatementTransformContext context) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/UsingTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/UsingTransform.cs index 31c8c91d5..06375f71c 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/UsingTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/UsingTransform.cs @@ -25,7 +25,7 @@ using ICSharpCode.Decompiler.TypeSystem; namespace ICSharpCode.Decompiler.IL.Transforms { - class UsingTransform : IBlockTransform + public class UsingTransform : IBlockTransform { BlockTransformContext context;