Open
Description
With Elixir 1.18
mix doctor.gen.config
** (ArgumentError) tried to unquote invalid AST: %Doctor.Config{ignore_modules: [], ignore_paths: [], min_module_doc_coverage: 40, min_module_spec_coverage: 0, min_overall_doc_coverage: 50, min_overall_moduledoc_coverage: 100, min_overall_spec_coverage: 0, moduledoc_required: nil, exception_moduledoc_required: true, raise: false, reporter: Doctor.Reporters.Full, struct_type_spec_required: true, umbrella: false, failed: false}
Did you forget to escape term using Macro.escape/1?
(elixir 1.18.1) src/elixir_quote.erl:542: :elixir_quote.argument_error/1
(doctor 0.22.0) lib/config.ex:80: Doctor.Config.config_defaults_as_string/0
(doctor 0.22.0) lib/mix/tasks/doctor.gen.config.ex:59: Mix.Tasks.Doctor.Gen.Config.create_config_file/0
(doctor 0.22.0) lib/mix/tasks/doctor.gen.config.ex:48: Mix.Tasks.Doctor.Gen.Config.run/1
(mix 1.18.1) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
(mix 1.18.1) lib/mix/cli.ex:107: Mix.CLI.run_task/2
...../elixir/1.18.1-otp-26/bin/mix:2: (file)
It can be fixed by changing:
config = quote do: unquote(%Config{})
to:
config = quote do: unquote(Macro.escape %Config{})
But this does not seem specific to Elixir 1.18, maps cannot be unquoted as-is since a long time ago. I may be missing something.
Metadata
Metadata
Assignees
Labels
No labels