/// <summary>
        /// Sets the <see cref="ICSharpOutputNode.WriteDown"/> flag.
        /// </summary>
        public override void SetWriteDown()
        {
            if (WriteDown)
            {
                return;
            }

            WriteDown = true;

            foreach (ICSharpInstruction Instruction in InitInstructionList)
            {
                Instruction.SetWriteDown();
            }

            WhileCondition.SetWriteDown();

            foreach (ICSharpScopeAttributeFeature Item in EntityDeclarationList)
            {
                Item.SetWriteDown();
            }

            foreach (ICSharpInstruction Instruction in LoopInstructionList)
            {
                Instruction.SetWriteDown();
            }

            foreach (ICSharpInstruction Instruction in IterationInstructionList)
            {
                Instruction.SetWriteDown();
            }

            foreach (ICSharpAssertion Assertion in InvariantList)
            {
                Assertion.SetWriteDown();
            }

            if (VariantExpression != null)
            {
                VariantExpression.SetWriteDown();
            }
        }