Message d'erreur
Dans le message, %s marque une valeur que le moteur remplit au moment où il lève l'erreur.
L'histoire
Vous avez appelé une fonction avant de l'avoir déclarée, et le moteur vous enseigne la règle. Voyons-la. Dans rush, l'ordre de déclaration est le graphe des dépendances. On lit le fichier de haut en bas, et un symbole ne peut être utilisé qu'après avoir été déclaré. C'est volontaire, et ce n'est pas un oubli du moteur. Dans votre cas, la fonction existe bien, plus bas dans le fichier. Le message ne dit donc pas que c'est un builtin inconnu, ce qui vous enverrait chercher une ligne qui n'a jamais dû exister. Il vous dit exactement ce qui se passe. Un exemple : vous appelez calculer à la ligne dix, et vous déclarez calculer à la ligne vingt. Refusé. Corrigez en remontant la déclaration au-dessus de sa première utilisation. Une conséquence à connaître : la récursion mutuelle, où deux fonctions s'appellent l'une l'autre, est impossible par conception, puisque l'une des deux serait forcément utilisée avant d'être déclarée. Le message donne le nom du symbole et la ligne en cause. Déplacez la déclaration, et tout s'enchaîne dans le bon ordre.
Texte issu du catalogue d'erreurs du moteur Rush.
