27 lines
1.3 KiB
Factor
27 lines
1.3 KiB
Factor
USING: generic help.markup help.syntax sequences math
|
|
math.parser effects ;
|
|
IN: generic.single
|
|
|
|
HELP: no-method
|
|
{ $values { "object" "an object" } { "generic" "a generic word" } }
|
|
{ $description "Throws a " { $link no-method } " error." }
|
|
{ $error-description "Thrown by the " { $snippet "generic" } " word to indicate it does not have a method for the class of " { $snippet "object" } "." } ;
|
|
|
|
HELP: inconsistent-next-method
|
|
{ $error-description "Thrown by " { $link POSTPONE: call-next-method } " if the values on the stack are not compatible with the current method." }
|
|
{ $examples
|
|
"The following code throws this error:"
|
|
{ $code
|
|
"GENERIC: error-test ( object -- )"
|
|
""
|
|
"M: string error-test print ;"
|
|
""
|
|
"M: integer error-test number>string call-next-method ;"
|
|
""
|
|
"123 error-test"
|
|
}
|
|
"This results in the method on " { $link integer } " being called, which then passes a string to " { $link POSTPONE: call-next-method } ". However, this fails because the string is not compatible with the current method."
|
|
$nl
|
|
"This usually indicates programmer error; if the intention above was to call the string method on the result of " { $link number>string } ", the code should be rewritten as follows:"
|
|
{ $code "M: integer error-test number>string error-test ;" }
|
|
} ; |