﻿//Remove on 2024/01/01
//using MonoFN.Cecil;
//using MonoFN.Cecil.Cil;

//namespace FishNet.CodeGenerating.Helping.Extension
//{

//    internal static class MethodDefinitionExtensions
//    {
//        /// <summary>
//        /// Clears the method content and returns ret.
//        /// </summary>
//        internal static void ClearMethodWithRet(this MethodDefinition md, CodegenSession session, ModuleDefinition importReturnModule = null)
//        {
//            md.Body.Instructions.Clear();
//            ILProcessor processor = md.Body.GetILProcessor();
//            processor.Add(session.GetClass<GeneralHelper>().CreateRetDefault(md, importReturnModule));
//        }

//        /// <summary>
//        /// Returns the ParameterDefinition index from end of parameters.
//        /// </summary>
//        /// <param name="md"></param>
//        /// <param name="index"></param>
//        /// <returns></returns>
//        internal static ParameterDefinition GetEndParameter(this MethodDefinition md, int index)
//        {
//            //Not enough parameters.
//            if (md.Parameters.Count < (index + 1))
//                return null;

//            return md.Parameters[md.Parameters.Count - (index + 1)];
//        }


//        /// <summary>
//        /// Creates a variable type within the body and returns it's VariableDef.
//        /// </summary>
//        internal static VariableDefinition CreateVariable(this MethodDefinition methodDef, TypeReference variableTypeRef)
//        {
//            VariableDefinition variableDef = new VariableDefinition(variableTypeRef);
//            methodDef.Body.Variables.Add(variableDef);
//            return variableDef;
//        }

//        /// <summary>
//        /// Creates a variable type within the body and returns it's VariableDef.
//        /// </summary>
//        internal static VariableDefinition CreateVariable(this MethodDefinition methodDef, CodegenSession session, System.Type variableType)
//        {
//            return CreateVariable(methodDef, session.GetClass<GeneralHelper>().GetTypeReference(variableType));
//        }
//    }


//}