diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-07-30 22:07:31 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-07-30 22:58:01 +0900 |
| commit | 8c9e7127845f84fcbb249c45936c97a89ca7a80a (patch) | |
| tree | 3862b06b6b04c2b275307e73ca7172473786d035 /src/kernel.c | |
| parent | 891839b976c75c77f238931123ac472e3284e95d (diff) | |
| download | mruby-8c9e7127845f84fcbb249c45936c97a89ca7a80a.tar.gz mruby-8c9e7127845f84fcbb249c45936c97a89ca7a80a.zip | |
Keyword argument implemented.
Diffstat (limited to 'src/kernel.c')
| -rw-r--r-- | src/kernel.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/kernel.c b/src/kernel.c index 155868eaa..42e9ca6a4 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -1194,7 +1194,15 @@ mrb_local_variables(mrb_state *mrb, mrb_value self) if (!irep->lv) break; for (i = 0; i + 1 < irep->nlocals; ++i) { if (irep->lv[i].name) { - mrb_hash_set(mrb, vars, mrb_symbol_value(irep->lv[i].name), mrb_true_value()); + mrb_sym sym = irep->lv[i].name; + const char *name = mrb_sym2name(mrb, sym); + switch (name[0]) { + case '*': case '&': + break; + default: + mrb_hash_set(mrb, vars, mrb_symbol_value(sym), mrb_true_value()); + break; + } } } if (!MRB_PROC_ENV_P(proc)) break; |
