Hi Dallin, Thank you for the detailed proposal.
It is important to remember that in Elixir compilation and execution steps are not necessarily distinct. For example, someone could have this project: # lib/a.ex defmodule A do use UsesYourMacro query do ... end end # lib/b.ex defmodule B do A.query end In other words, B can already try to execute the code from A before compilation finishes. Therefore, "error" can be misleading because continuing compilation with an error can lead to cascading failures, and causing the user to chase a bug that's not the original one. At best, you would need to consider mixing "IO.error" and "raise". My suggestion in your case is to emit warnings for all errors in a particular query definition, allowing the user to get multiple reports, and then raise at the end of that query definition if any warning was emitted. This doesn't provide warnings across all files but it can be a good starting point, especially because we indeed cannot continue beyond that file for the reasons I mentioned above. -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4LQBBiNjjvGYvEyT9_i4GAsDzG13STzxJQ2LXjeT%2Bd5vQ%40mail.gmail.com.