Skip to content

Type checker crash in Module.ParallelChecker with binary_to_atom error during compilation #14548

Closed
@anibal

Description

@anibal

Elixir and Erlang/OTP versions

First time here, and pretty green, just followed the instructions provided by the compiler:

`╰─❯ iex -S mix ─╯
Erlang/OTP 27 [erts-15.2.7] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]

==> sourceror
Compiling 12 files (.ex)
Generated sourceror app
==> text_diff
Compiling 1 file (.ex)
Generated text_diff app
==> file_system
Compiling 7 files (.ex)
Generated file_system app
==> stream_data
Compiling 3 files (.ex)
Generated stream_data app
==> decimal
Compiling 4 files (.ex)
Generated decimal app
==> spitfire
Compiling 2 files (.erl)
Compiling 4 files (.ex)
Generated spitfire app
==> ymlr
Compiling 3 files (.ex)
Generated ymlr app
==> mime
Compiling 1 file (.ex)
Generated mime app
==> nimble_options
Compiling 3 files (.ex)
Generated nimble_options app
==> libgraph
Compiling 15 files (.ex)
Generated libgraph app
==> telemetry_metrics
Compiling 7 files (.ex)
** (EXIT from #PID<0.103.0>) an exception was raised:
** (RuntimeError) found error while checking types for Telemetry.Metrics.ConsoleReporter.terminate/2:

** (MatchError) no match of right hand side value: {:EXIT, {:badarg, [{:erlang, :binary_to_atom, [<<116, 101, 108, 101, 109, 101, 116, 114, 121, 96, 97, 116, 116, 97, 99, 104, 176, 97, 116, 116, 97, 99, 104, 95, 109, 97, 110, 121, 64, 116, 121, 112, 101, 96, 101, 114, 108, 97, 110, 103, 128, ...>>, :utf8], [error_info: %{module: :erl_erts_errors}]}, {:beam_lib, :extract_atom, 2, [file: ~c"beam_lib.erl", line: 1217]}, {:beam_lib, :get_atom_data, 8, [file: ~c"beam_lib.erl", line: 981]}, {:beam_lib, :scan_beam1, 2, [file: ~c"beam_lib.erl", line: 942]}, {:beam_lib, :scan_beam, 4, [file: ~c"beam_lib.erl", line: 927]}, {:beam_lib, :read_chunk_data, 3, [file: ~c"beam_lib.erl", line: 899]}, {:beam_lib, :read_chunk_data, 2, [file: ~c"beam_lib.erl", line: 890]}, {Module.ParallelChecker, :cache_module, 2, [file: ~c"lib/module/parallel_checker.ex", line: 376]}]}}
The exception happened while checking this code:

def terminate(_, events) do
for event <- events do
:telemetry.detach({Telemetry.Metrics.ConsoleReporter, event, :erlang.self()})
end

:ok
end

Please report this bug at: https://github.com/elixir-lang/elixir/issues

    (stdlib 6.2.2) beam_lib.erl:899: :beam_lib.read_chunk_data/3
    (stdlib 6.2.2) beam_lib.erl:890: :beam_lib.read_chunk_data/2
    (elixir 1.17.3) lib/module/parallel_checker.ex:376: Module.ParallelChecker.cache_module/2
    (elixir 1.17.3) lib/module/types/of.ex:323: Module.Types.Of.remote/6
    (elixir 1.17.3) lib/enum.ex:2531: Enum."-reduce/3-lists^foldl/2-0-"/3
    (elixir 1.17.3) lib/module/types/of.ex:304: Module.Types.Of.remote/8
    (elixir 1.17.3) lib/module/types/expr.ex:333: Module.Types.Expr.of_expr/3
    (elixir 1.17.3) lib/module/types/expr.ex:287: Module.Types.Expr.of_expr/3`

Operating system

macOS Sequoia 15.5

Current behavior

This is from a fresh install of Phoenxi/Ash and the compiler choked here my version:

╰─❯ elixir --version ─╯
Erlang/OTP 27 [erts-15.2.7] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]

Elixir 1.17.3 (compiled with Erlang/OTP 25)

Expected behavior

For the code to compile

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions