IO.warn doesn't stop compiler with --warning-as-errors

Actually, the code that generates the warning is from AshGraphql, I just didn’t add that before because I thought it was unnecessary. But either way that code is run at compile time for the resource I’m creating, so I think it should count as “my code” and not as “dependency code”.

I also tried adding some other warnings to see if it would stop the compiler but they didn’t, basically I tried this:

defmodule Bla do
  IO.warn("HUEHUE")
  a = 5
end  

which generated the following warnings:

core [fly_fixes]× » mix compile --warning-as-errors                                                               ~/p/r/p/core
Compiling 1 file (.ex)
    warning: variable "a" is unused (if the variable is not meant to be used, prefix it with an underscore)
    │
  3 │   a = 5
    │   ~
    │
    └─ lib/core/application.ex:3:3: Bla (module)

warning: HUEHUE
  lib/core/application.ex:2: (module)
  (elixir 1.19.1) elixir_compiler.erl:81: :elixir_compiler.dispatch/4
  (elixir 1.19.1) elixir_compiler.erl:56: :elixir_compiler.compile/4
  (elixir 1.19.1) elixir_module.erl:477: :elixir_module.eval_form/7
  (elixir 1.19.1) elixir_module.erl:163: :elixir_module.compile/7
  (stdlib 7.1) lists.erl:2466: :lists.foldl/3

Generated core app

core [fly_fixes]× » echo $status                                                                                  ~/p/r/p/core
0

As you can see, the warnings show up during compilation, but the compilation itself finished without any errors.

Btw, I’m using Elixir 1.19.1