Calling an expression with unclosed curly braces produces no error. Nothing happens. ARMA should be reporting an error.
Description
Details
- Severity
- Major
- Resolution
- Open
- Reproducibility
- Always
- Operating System
- Windows 7
- Category
- General
Go into the debug console's Execute area and enter the following:
typeName call { 0
then press LOCAL EXEC. Nothing will be returned.
In contrast, append the closing curly brace, press LOCAL EXEC and the answer given will be "SCALAR".
This is a nasty bug because it means that any preInit functions or files run during a mission startup that have mismatched curly braces will simply not execute - in their entirety. Symbols will not be defined, threads will not be started, and the user won't know anything is wrong. Because ARMA also doesn't give errors when calling a symbol that evaluates as nil, some very strange behaviors can result.
Note that unclosed parentheses and square braces are correctly detected and reported to the user.
Event Timeline
In the same vein, an unclosed quoted string will also produce no error. The specific case I ran into was a quoted string that was closed, but lacked a semicolon after it. No error was generated and the file's contents were not available at runtime.