RX0083

Domaine: Analyse syntaxique

Message d'erreur

%s est un membre, et `=` n'écrit pas à travers une sélection (%s)

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

L'histoire

Vous avez essayé d'écrire une nouvelle valeur directement dans un membre, avec un signe égal, et le moteur dit non. Voici le principe. Quand vous écrivez x point un égale quatre-vingt-dix-neuf, vous demandez de modifier une collection sur place. Mais dans rush, un membre n'est pas un nom à part entière : il est désigné par sélection, et on ne peut pas lui affecter une valeur. Toute modification d'une collection produit une nouvelle version, et passe par les portes de données. La porte update est la seule qui remplace une valeur. Les anciennes versions ne sont pas écrasées : tout changement s'ajoute. Et si votre collection est déclarée immuable, aucun changement n'est permis. Le moteur refuse dès la lecture et nomme la porte à utiliser. Exemple : au lieu d'écrire m point age égale trois, utilisez la porte update sur la map, avec le nouvel âge. Le résultat est une nouvelle version, et l'ancienne reste lisible. On ne réécrit pas, on ajoute une version.

Texte issu du catalogue d'erreurs du moteur Rush.