Skip to content

Improvement on Trace module

Pierre-Emmanuel Wulfman requested to merge merge_raise_add_warning into dev

type:internal

This MR brings several demanded modifications on the Trace module :

  • The warnings handlers as been packed with the errors handlers -> function raising error and warnings only need to have the parameter ~raise and not add_warning anymore
  • The function inside raise has been split into two records: raise and catch. -> This adds encapsulation making "raiser functions" not able to access triggers errors or warnings, and "handler functions" not able to raise any error or warning
  • collect have been added. This is a function that takes a list of raisers and returns the list of values if all success or the list of all raised error if any failed
  • Using collect, Front-end and middle-end passes can raise several errors at the same time ( at most one per declaration).

With extra work, it is possible to have tracers for warnings and to specialise them for every passes (As we do for errors).

Changelog details:

The compiler is now able to report all errors corresponding to the same step of compilation at the same time

Merge request reports