You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment, each stage of the compiler (parsing, resolving, checking) will make a best-effort to complete, even if there were errors during the previous stage. The idea behind this is that the user should be presented with as many (accurate) error messages as possible before having to recompile. (e.g. if the compiler exited after just one syntax error, it wouldn't be able to report to the user any type checking errors, which it probably is able to report on).
However, this does make programming the "downstream" stages much more complicated, as they have to be able to handle various "invalid" APM structures.
It might be a good idea to mark portions of the APM as "bad", which will cause down stream stages to essentially ignore it, or at least treat it in a different way. My gut says either individual statements would be marked as bad, or perhaps whole code blocks?
The text was updated successfully, but these errors were encountered:
At the moment, each stage of the compiler (parsing, resolving, checking) will make a best-effort to complete, even if there were errors during the previous stage. The idea behind this is that the user should be presented with as many (accurate) error messages as possible before having to recompile. (e.g. if the compiler exited after just one syntax error, it wouldn't be able to report to the user any type checking errors, which it probably is able to report on).
However, this does make programming the "downstream" stages much more complicated, as they have to be able to handle various "invalid" APM structures.
It might be a good idea to mark portions of the APM as "bad", which will cause down stream stages to essentially ignore it, or at least treat it in a different way. My gut says either individual statements would be marked as bad, or perhaps whole code blocks?
The text was updated successfully, but these errors were encountered: