E50200: invalid directive
What went wrong
A directive (a line starting with @) has invalid syntax, or names one the compiler does not know.
The directive an EK9 program uses is @Test, whose form is:
@Test: "REQ:slug": "group": "EXIT:n" (every part optional, in any order; n from 0 to 255)
Note
This code concerns a compiler-development directive. The directives other than @Test (the ones that state what the compiler should report, resolve, measure or generate for a source) are tooling for the people who develop the EK9 compiler; they are not designed for mainstream programs, and a program needs none of them. The only directive an EK9 program uses is @Test.
How to fix it
If you are writing an EK9 program: remove the directive. Only @Test belongs in a program. If you are developing the compiler: docs/testing/EK9_DIRECTIVE_TEST_FILE_PROCESS.md in the compiler repository describes every directive and how to fix this report.
Compiler development
This code concerns the compiler-development directives (@Error, @Resolved, @Complexity and the rest), which are not designed for mainstream programs - the only directive a program uses is @Test, so it has no example. Compiler developers: docs/testing/EK9_DIRECTIVE_TEST_FILE_PROCESS.md in the compiler repository describes every directive.
Questions and answers
These Q&A entries show E50200 and its fix:
- Q1105: Create a Logger component with a name field and a log method.
- Q1115: Create an aspect that transparently proxies a component's method call.
- Q1119: Register a component with an aspect and verify the aspect proxy is transparent.
- Q1540: How do I test that my program exits with a particular exit code?