Boo.Lang.Compiler.Steps.BranchChecking.OnYieldStatement C# (CSharp) Метод

OnYieldStatement() публичный Метод

public OnYieldStatement ( YieldStatement node ) : void
node YieldStatement
Результат void
        public override void OnYieldStatement(YieldStatement node)
        {
            if (_state.TryBlockDepth == _state.ProtectedBlockDepth) {
                // we are currently only in the protected blocks, not in any "except" or "ensure" blocks.
                foreach (TryStatement tryBlock in _state.TryBlocks) {
                    // only allow yield in the try part of try-ensure blocks, fail if it is a try-except block
                    if (tryBlock.FailureBlock != null || tryBlock.ExceptionHandlers.Count > 0) {
                        Error(CompilerErrorFactory.YieldInsideTryExceptOrEnsureBlock(node));
                        break;
                    }
                }
            } else {
                Error(CompilerErrorFactory.YieldInsideTryExceptOrEnsureBlock(node));
            }
        }