compile.c: invalid yield in main

* compile.c (iseq_compile_each): yield cannot be in the main
  context as well as a top context.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2017-01-12 05:43:00 +00:00
Родитель 58935eb8bd
Коммит 257fd90166
1 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -5530,7 +5530,8 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, NODE *node, int poppe
struct rb_call_info_kw_arg *keywords = NULL;
INIT_ANCHOR(args);
if (iseq->body->type == ISEQ_TYPE_TOP) {
if (iseq->body->type == ISEQ_TYPE_TOP ||
iseq->body->type == ISEQ_TYPE_MAIN) {
COMPILE_ERROR(ERROR_ARGS "Invalid yield");
goto ng;
}