C<but> properties get attached to a value, and are available when the value is passed to other functions/ etc. I would like to be able to define a property of a value that is trapped in the lexical scope where it is defined. The example that set me thinking down this path is

sub foo( $a, ?$b = rand but :is_default )
{
   ...
   bar($a,$b);
}

sub bar( $a, ?$b = rand but :is_default )
{
  warn "defaulting \$b = $b" if $b.is_default;
  ...
}


It would be unfortunate if the "is_default" property attached in &foo triggers the warning in &bar. So I'd like to say somthing like

  sub foo( $a, ?$b = 0 but lexically :is_default ) {...}
or
  sub foo( $a, ?$b = 0 but locally :is_default ) {...}

to specify that I don't want the property to the propagated.

Reply via email to