Magically called when writing C<use Lexical::Types>.
-All the occurences of C<my Foo $x> in the current lexical scope will be changed to call at each run a given method in a given package.
+All the occurences of C<my Str $x> in the current lexical scope will be changed to call at each run a given method in a given package.
The method and package are determined by the parameter C<as> :
=over 4
=item *
The method and package are determined by the parameter C<as> :
=over 4
=item *
-If it's left unspecified, the C<TYPEDSCALAR> method in the C<Foo> package will be called.
+If it's left unspecified, the C<TYPEDSCALAR> method in the C<Str> package will be called.
use Lexical::Types;
my Str $x; # calls Str->TYPEDSCALAR
=item *
use Lexical::Types;
my Str $x; # calls Str->TYPEDSCALAR
=item *
-If a plain scalar C<$prefix> is passed as the value, the C<TYPEDSCALAR> method in the C<${prefix}::Foo> package will be used.
+If a plain scalar C<$prefix> is passed as the value, the C<TYPEDSCALAR> method in the C<${prefix}::Str> package will be used.
use Lexical::Types as => 'My::'; # or "as => 'My'"
my Str $x; # calls My::Str->TYPEDSCALAR
=item *
use Lexical::Types as => 'My::'; # or "as => 'My'"
my Str $x; # calls My::Str->TYPEDSCALAR
=item *
-If the value given is a code reference C<$mangler>, it will be called at compile-time with arguments C<'Foo'> and C<'TYPEDSCALAR'> and is expected to return :
+If the value given is a code reference C<$mangler>, it will be called at compile-time with arguments C<'Str'> and C<'TYPEDSCALAR'> and is expected to return :
=over 4
=over 4
@@ -97,7+97,7 @@ or the desired package and method name, in that order (if any of those is C<unde
=back
=back
-The initializer method receives an alias to the pad entry of C<$x> in C<$_[1]> and the original type name (C<Foo>) in C<$_[2]>.
+The initializer method receives an alias to the pad entry of C<$x> in C<$_[1]> and the original type name (C<Str>) in C<$_[2]>.
You can either edit C<$_[1]> in place, in which case you should return an empty list, or return a new scalar that will be copied into C<$x>.
=cut
You can either edit C<$_[1]> in place, in which case you should return an empty list, or return a new scalar that will be copied into C<$x>.
=cut
@@ -165,7+165,7 @@ You can integrate L<Lexical::Types> in your module so that using it will provide
=head1 CAVEATS
=head1 CAVEATS
-For C<perl> to be able to parse C<my Foo $x>, the package C<Foo> must be defined somewhere, and this even if you use the C<as> option to redirect to another package.
+For C<perl> to be able to parse C<my Str $x>, the package C<Str> must be defined somewhere, and this even if you use the C<as> option to redirect to another package.
It's unlikely to find a workaround, as this happens deep inside the lexer, far from the reach of an extension.
Only one mangler or prefix can be in use at the same time in a given scope.
It's unlikely to find a workaround, as this happens deep inside the lexer, far from the reach of an extension.
Only one mangler or prefix can be in use at the same time in a given scope.