This is not valid code, I know. It was found during the execution of our new eudoc functionality which tests our eucode blocks for syntax correctness. Here is the example. On Linux (untested on Windows) this causes eui to segfault:
include std/search.e
names = {"fred", "rob", "rob", "george", "mary"}
location = rfind("rob", names)
I assume it should, instead, report the errors. If you remove line 3, then it will report errors as it should.
When run with eui int.ex the following trace appears:
$ eui ../../int.ex s.e
/home/jeremy/projects/euphoria/source/fwdref.e:359 in procedure patch_forward_call()
subscript must be an atom
(assigning to subscript of a sequence)
... called from /home/jeremy/projects/euphoria/source/fwdref.e:797
in function resolve_file()
... called from /home/jeremy/projects/euphoria/source/fwdref.e:867
in procedure Resolve_forward_references()
... called from /home/jeremy/projects/euphoria/source/scanner.e:882
in function IncludePop()
... called from /home/jeremy/projects/euphoria/source/parser.e:4617
in procedure real_parser()
... called from /home/jeremy/projects/euphoria/source/parser.e:4732
in procedure parser()
... called from /home/jeremy/projects/euphoria/source/main.e:193
in procedure main()
... called from /home/jeremy/projects/euphoria/source/main.e:213
--> See ex.err