/// <summary>
        ///  Dumps the linear ir representation of a method to stdout.
        /// </summary>
        public void Dump(IrPrintingPolicy printingPolicy)
        {
            var @out = Console.Out;

            @out.WriteLine(printingPolicy.IndentationString + MethodDefinition.FullName);
            @out.WriteLine(printingPolicy.IndentationString + "{");
            printingPolicy.IncrementIndentation();
            foreach (var instruction in this.Instructions)
            {
                instruction.Dump(printingPolicy);
                @out.WriteLine();
            }
            printingPolicy.DecrementIndentation();
            @out.WriteLine(printingPolicy.IndentationString + "}");
        }
        /// <summary>
        ///   Dumps linear ir for a type definition.
        /// </summary>
        public void Dump(TypeDefinition typeDefinition)
        {
            var @out = Console.Out;

            @out.WriteLine(typeDefinition.FullName);
            @out.WriteLine("{");
            IrPrintingPolicy.IncrementIndentation();
            foreach (var methodDefinition in typeDefinition.Methods.Where(x => x.HasBody))
            {
                Dump(methodDefinition);
                @out.WriteLine();
            }
            IrPrintingPolicy.DecrementIndentation();
            @out.WriteLine("}");
        }