RX0155

Domaine: Exécution

Message d'erreur

process.done / process.await pose une lecture, et %s n'en est pas une : %s

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

L'histoire

Vous avez passé à process.done ou à process.await une expression qui n'est pas une lecture, et le moteur refuse. Expliquons. Ces deux lignes servent à savoir si le résultat d'un autre process est prêt, ou à l'attendre. Ce qu'elles examinent, c'est une lecture dans le struct de ce process, par exemple p point total : le détenteur est l'identifiant, et le segment est une étiquette. Le lecteur du fedex répond alors par la valeur, ou par un mot comme pas encore, permission refusée, ou disparu. L'argument est un site différé : l'expression n'est pas évaluée avant, c'est la ligne qui la pose. Si vous donnez un littéral, un nom local ou un calcul, il n'y a rien à attendre : personne ne doit livrer cette valeur. Le moteur refuse donc, plutôt que de répondre vrai à propos de quelque chose qui n'a jamais été à livrer. Exemple : process.await avec un nombre. Écrivez plutôt la lecture que vous voulez attendre, sur l'identifiant du process concerné.

Texte issu du catalogue d'erreurs du moteur Rush.