public LocalInfo AddLocalVariable(Type localType, bool isPinned = false)
        {
            var localInfo = new LocalInfo(localType, isPinned);

            localVariables.Add(localInfo);
            return(localInfo);
        }
        public LocalInfo AddLocalVariable(byte[] signature)
        {
            var localInfo = new LocalInfo(signature);

            localVariables.Add(localInfo);
            return(localInfo);
        }
        private static byte[] BakeLocal(LocalInfo localInfo)
        {
            if (localInfo.LocalType == null)
            {
                throw new ArgumentException();
            }

            var sigHelper = SignatureHelper.GetLocalVarSigHelper();

            sigHelper.AddArgument(localInfo.LocalType, localInfo.IsPinned);

            var withHeader = sigHelper.GetSignature();

            byte[] result = new byte[withHeader.Length - 1 - 1]; // first byte is 0x7 (LOCAL_SIG) and second is 0x1 (Count)

            Array.Copy(withHeader, 2, result, 0, result.Length);

            return(result);
        }