It is a good idea not to try and create a class with the same label as a table in the DCT. At least in my case it wasn’t, I was getting a bunch of silly compiler errors and one that I had not seen before ISL ERROR: 0. Renamed the class… all is well!
Any other odd compiler errors you have seen lately?
Edit: Actually, I am still getting this even after renaming the class. Damn! I will keep looking.
ISL is an internal “language” that is used by all of the TopSpeed
programming languages, including c, c++, Modula-2, and Clarion
(but not the Assembler).
These languages are first translated into a common intermediate (ISL)
that is fed to the backend compiler.
An ISL error indicates that you have done something that can’t be
properly translated or that exceeds a linker requirement.
Ok, so now it seems to be something to do with the implements on my class declaration. Totally weird. I will try and sort it out later and report back here.
The help mentions that a Construct may not have VIRTUAL but it does not say the same for Destruct. I have a feeling I started putting it on the destructors for no good reason other than it was on there in examples when I was learning to write classes. It does seem odd though and I wonder if a parent destructor is automatically called when the VIRTUAL is present?
Pretty sure this is not the cause of the ISL ERROR though as from a quick look at the code I have done that in another place although admittedly not with a class that uses IMPLEMENTS.