On Sat, 23 Jul 2016 15:57:33 -0700, gfldex wrote:
> sub niler{Nil}; my Int:D $i where .defined = niler(); say $i; say $i.WHAT;
> # OUTPUT«(<anon>)␤(<anon>)␤»
> # expected: well, I don't know since I explicitely asked for a defined 
> # value _twice_ but Nil is supposed to revert a container to it's default.
> # That default is undefined, what can't work with $_.defined and should 
> # work (by design, not my opinion) with :D.
> # Either way, I would like to get a type object when asking for WHAT.
> # may be related to RT#127958

Thanks for the report.

It's not empty. In both cases it says "<anon>", because you've used a `where` 
clause, thus creating an anonymous (nameless) subset.

If you prefer it to have a name, you can define a named subset instead:

    <Zoffix__> m: my Int $i where 42; say $i;
    <camelia> rakudo-moar bfb5279aa: OUTPUT: «(<anon>)␤»
    <Zoffix__> m: subset Foo of Int where 42; my Foo $i ; say $i;
    <camelia> rakudo-moar bfb5279aa: OUTPUT: «(Foo)␤»

I made a patch that makes it say "<Int-based anon subset>" instead, but in the 
end decided against it,
because we use '<anon>' in many other places and this breaks that consistency, 
without adding much of extra information.

[1] https://gist.github.com/zoffixznet/198403153020a20b427bb2088b118ecc

Closing this as wontfix.

Reply via email to