Error class for unimplemented features. NYI stands for Not Yet Implemented.
If a Raku compiler is not yet feature complete, it may throw an
X::NYI exception when a program uses a feature that it can detect and is somehow specified is not yet implemented.
A full-featured Raku compiler must not throw such exceptions, but still provide the
X::NYI class for compatibility reasons.
A typical error message is
HyperWhatever is not yet implemented. Sorry.
method new( :, :, :)
This is the default constructor for
X:NYI which can take three parameters with obvious meanings.
my = Nothing.new;.ventured("Nothing", "Gained");
In this case, we are throwing an exception that indicates that the
ventured routine has not been implemented; we use the generic
&?ROUTINE.name to not tie the exception to the method name in case it is changed later on. This code effectively throws this exception
# OUTPUT:# ventured not yet implemented. Sorry.# Did you mean: gained?# Workaround: Implement it yourself# in method ventured at NYI.p6 line 6# in block <unit> at NYI.p6 line 14
Using the exception properties, it composes the message that we see there.
Str describing the missing feature.
Str indicating the optional feature that is already implemented.
It helpfully shows a possible workaround for the missing feature, if it's been declared.
Returns the message including the above properties.