On Feb 6, 2008 5:03 PM, chromatic <[EMAIL PROTECTED]> wrote:
> On Wednesday 06 February 2008 16:33:11 [EMAIL PROTECTED] wrote:
> > + if (PARROT_ARG_SLURPY_ARRAY_ISSET(sig_item)){
> > + if (PARROT_ARG_NAME_ISSET(sig_item))
> > + sub->arg_info->named_slurpy = 1;
> > + else
> > + sub->arg_info->pos_slurpy = 1;
> > + }
> > + else if (PARROT_ARG_OPTIONAL_ISSET(sig_item)) {
> > + if (PARROT_ARG_NAME_ISSET(sig_item))
> > + sub->arg_info->named_optional++;
> > + else
> > + sub->arg_info->pos_optional++;
> > + }
> > + else if (!PARROT_ARG_OPT_FLAG_ISSET(sig_item)) {
> > + if (PARROT_ARG_NAME_ISSET(sig_item))
> > + sub->arg_info->named_required++;
> > + else
> > + sub->arg_info->pos_required++;
> > + }
>
> This logic confuses me slightly. What's the difference between OPTIONAL and
> OPT_FLAG?
>
.sub 'lol'
.param pmc cheezburger :optional
.param int i_can_haz_cheezburger :opt_flag
unless i_can_haz_cheezburger goto frowny_face
print "yay! i haz a "
say cheezburger
.return ()
frowny_face:
say ":("
.end
so, you see, we don't really care about opt_flag for arity purposes,
however, we may decide to add it to inspect for completeness in the
future.
~jerry