Incremental compilation bug (or undefined behaviour?)

  1. It is not dynamically generated, it is generated in compile time
  2. Things like alias and require as are still tracked though
  3. Things from macro expansion are tracked too
  4. In this example,
YYY
defmodule XXX do
  ...
end

Recompiling when YYY changed causes XXX to be recompiled too.


So, I am guessing that after every macro expansion and unaliasing, compiler just takes all atoms starting with Elixir. from external context and module body (but not from def*) and marks current module dependent from them, right?