RX0183

Domaine: Exécution

Message d'erreur

le nom %s désigne un détenteur qui a été supprimé : %s

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

L'histoire

Vous lisez un nom qui désigne une donnée déjà supprimée, et le moteur refuse. Voici ce qui s'est passé. Quand vous écrivez data.drop de xs, vous supprimez le détenteur que xs nomme. Le point important : si un autre nom, disons ys égale xs, tenait une référence vers le même détenteur, ce second nom ne désigne plus rien non plus, car il n'y a qu'un seul détenteur, et il n'existe plus. Lire ys est donc refusé, par son nom. Autrefois, le moteur répondait un texte vide, une ligne vide et un code de sortie zéro, comme si c'était une vraie valeur : une réponse trompeuse. Aujourd'hui, il dit la vérité. Exemple : vous supprimez xs, puis vous affichez ys. Le message vous dit que ys désigne un détenteur supprimé. Pour corriger, n'utilisez plus ce nom après la suppression, ou recréez le détenteur avant de le lire.

Texte issu du catalogue d'erreurs du moteur Rush.