RX0168

Domain: Parsing

Error message

`=` inside a collection: %s (%s)

In the message, %s marks a value that the engine fills in when it raises the error.

The story

You wrote an equals sign inside a collection, and the engine said a map member uses a colon. When you build a map, each member is written as a key, a colon, and a value. So a port of eight thousand eighty is written port, colon, eight thousand eighty, inside the brackets. If you write it with an equals sign instead, you are writing a bind, which is a statement, in a place where a member belongs. In the past, the engine misread this as a reference to a name called port that does not exist, and the message was confusing. Now it recognizes the real mistake and tells you exactly what to write instead. This is a very common slip, especially if you also write in languages where an equals sign is used in maps. The message quotes your member and shows the corrected form. Change the equals to a colon, and the map is built properly. Equals is for binding names, colon is for labeling members. Easy to remember once you see it.

Text from the Rush engine's error catalogue.