Fix keyword arguments not be obtained with `mrb_get_args()`; Fix
If ":" is after "|" and there is no "?" or "*", the keyword argument
could not be obtained and it was not initialized with `undef`.
For example: "|oo:"
MODIFY
src/class.c
src/class.c
@@ -620,11 +620,11 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
goto check_exit;
case '!':
break;
- case '&': case '?':
- if (opt) opt_skip = FALSE;
- break;
case ':':
reqkarg = TRUE;
+ /* fall through */
+ case '&': case '?':
+ if (opt) opt_skip = FALSE;
break;
default:
if (!opt) needargc ++;

Fix keyword arguments not be obtained with `mrb_get_args()`; Fix #4754

If ":" is after "|" and there is no "?" or "*", the keyword argument
could not be obtained and it was not initialized with `undef`.

For example: "|oo:"