MacroTools combinedef problem with master but not 1.5.2

After recompile of master (Version 1.6.0-DEV.1262 (2020-10-17)) this morning I can no longer get MacroTools to work. It seems to work fine in 1.5.2 but test MacroTools fails with one error.

MacroTools: Error During Test at /home/colin/.julia/packages/MacroTools/X77lQ/test/runtests.jl:4
  Got exception outside of a @test
  LoadError: UndefVarError: f not defined
  Stacktrace:
    [1] macro expansion
      @ ~/.julia/packages/MacroTools/X77lQ/src/utils.jl:44 [inlined]

A related issue might concern combinedef which is suddenly unknown, even though splitdef is fine. I wonder if it is as simple as combinedef missing from export in utils?

This should be fixed by https://github.com/FluxML/MacroTools.jl/pull/147, but you will need to use the latest master of MacroTools.jl for now, since there hasn’t been a new release yet.

1 Like

Yes, we should export it. Would you like to make a PR and update the README? I didn’t export it initially because I wrote it “just for the tests”, but it proved more convenient than manually writing the new function definition.

Invenia/ExprTools.jl has a more robust and much more tested version of splitdef and combinedef.

There is an open PR to make MacroTools just reexport those definitions.
https://github.com/FluxML/MacroTools.jl/pull/132

2 Likes