Elixir and Erlang/OTP versions
1.11+
Operating system
macOS
Current behavior
Both Mix.Task.Compiler.Diagnostic and Kernel.ParalelCompiler APIs allow lines and lines with columns (or even ranges) in their typespecs. Column information is often available and is printed in error messages but is never returned in API calls.
%Mix.Task.Compiler.Diagnostic{
file: "/Users/lukaszsamson/bug_repro/phx_error_path_umbr_umbrella/apps/phx_error_path_umbr_web/lib/phx_error_path_umbr_web/views/page_view.ex",
severity: :error,
message: "** (SyntaxError) lib/phx_error_path_umbr_web/views/page_view.ex:3:26: unexpected token: ). The \"do\" at line 1 is missing terminator \"end\"\n (elixir 1.14.0-dev) lib/kernel/parallel_compiler.ex:346: anonymous fn/5 in Kernel.ParallelCompiler.spawn_workers/7\n",
position: 3,
compiler_name: "Elixir",
details: nil
}
Kernel.ParallelCompiler.compile(["test/fixtures/token_missing_error/lib/has_error.ex"])
== Compilation error in file test/fixtures/token_missing_error/lib/has_error.ex ==
** (TokenMissingError) test/fixtures/token_missing_error/lib/has_error.ex:16:1: missing terminator: end (for "do" starting at line 1)
HINT: it looks like the "do" on line 6 does not have a matching "end"
(elixir 1.13.4) lib/kernel/parallel_compiler.ex:347: anonymous fn/5 in Kernel.ParallelCompiler.spawn_workers/7
{:error,
[
{"/Users/lukaszsamson/vscode-elixir-ls/elixir-ls/apps/language_server/test/fixtures/token_missing_error/lib/has_error.ex",
16,
"** (TokenMissingError) test/fixtures/token_missing_error/lib/has_error.ex:16:1: missing terminator: end (for \"do\" starting at line 1)\n\n HINT: it looks like the \"do\" on line 6 does not have a matching \"end\"\n\n (elixir 1.13.4) lib/kernel/parallel_compiler.ex:347: anonymous fn/5 in Kernel.ParallelCompiler.spawn_workers/7\n"}
], []}
Expected behavior
Return column if available
or
{:error,
[
{...,
{16, 1},
"** (TokenMissingError) ..}
], []}
Elixir and Erlang/OTP versions
1.11+
Operating system
macOS
Current behavior
Both
Mix.Task.Compiler.DiagnosticandKernel.ParalelCompilerAPIs allow lines and lines with columns (or even ranges) in their typespecs. Column information is often available and is printed in error messages but is never returned in API calls.Expected behavior
Return column if available
or