RX0722

Domaine: Analyse syntaxique

Message d'erreur

une écriture sur une copie d'un porteur : %s

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

L'histoire

Vous avez écrit sur une copie d'un porteur, et le moteur vous a arrêté à temps. Voyons le piège. Vous écrivez h égale tables point k, pour avoir un raccourci vers votre porteur. Mais dans rush, un lien est une nouvelle cellule. Elle prend la valeur du porteur telle qu'elle est à cet instant, pas le porteur lui-même. Si vous donnez ensuite h à une porte d'écriture, elle modifie la cellule h, et le vrai porteur reste intact. Votre écriture atterrit nulle part, sans aucun bruit, et c'est le pire des bogues. Le moteur le détecte donc à l'analyse et refuse, avant que rien ne s'exécute. Un exemple : vous croyez avoir enregistré une valeur dans la table, mais la table n'a pas bougé. Le message vous donne la bonne écriture : data.put, avec le chemin complet du porteur. Bonne nouvelle : lire à travers h reste parfaitement licite, puisque c'est la valeur du porteur. Seule l'écriture est concernée. Pour corriger, passez directement le chemin du porteur à la porte d'écriture, au lieu d'un nom intermédiaire.

Texte issu du catalogue d'erreurs du moteur Rush.