RX0313

Domaine: Analyse syntaxique

Message d'erreur

un appel vers un autre projet qu'aucune exigence ne déclare : %s (%s)

Dans le message, %s marque une valeur que le moteur remplit au moment où il lève l'erreur.

L'histoire

Votre projet appelle une fonction d'un autre projet, et le moteur dit que personne n'a déclaré cette dépendance. Rappelons la règle du mode projet. Un projet dit dans son manifeste ce qu'il offre au monde, avec public, et il dit aussi ce dont il dépend, avec requires. C'est un même endroit, une même discipline. Si votre code appelle peer, point, lib, point, tools, point, shout, mais qu'aucune ligne requires ne mentionne cette fonction, c'est une dépendance cachée : personne ne l'a notée, et elle pourrait se casser sans que quiconque le voie venir. Le moteur refuse alors le chargement, en nommant la fonction et le manifeste. Pour réparer, le message vous indique même la ligne à ajouter. Exemple : vous copiez un appel depuis un script libre vers un projet. Les scripts libres et le shell ne déclarent rien, mais un projet, lui, doit tout écrire. Ajoutez la ligne requires avec le nom complet et le contrat, relancez, et la dépendance est enfin visible de tous.

Texte issu du catalogue d'erreurs du moteur Rush.