RX0039

Domain: Parsing

Error message

the name %s locates nothing (%s)

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

The story

You used a name, and the engine could not find anything behind it. Here is the key point: this happens before your script runs a single line. When the parser finishes, no names survive. Every name gets expanded into its full name and then turned into a coordinate. That is called binding. If the name matches exactly one thing, it becomes that coordinate. If it matches nothing, you get this refusal. So there is no runtime moment where the engine goes looking for a missing name, because that would be a search, and searching is not how names are resolved here. Think of writing a letter to someone who does not live at the address: the post office tells you before sending, not after it is lost. The message gives you the name and the scope where it was sought. A bare name is only looked up in its own scope and then its module, nowhere else. So check the spelling, check that the thing is declared where you expect, and check you are in the right module. Fix the name, and the script will bind.

Text from the Rush engine's error catalogue.