From 8dd06cd489b393168e887c3c3771eb81758017e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6m?= Date: Tue, 19 May 2026 13:36:57 +0200 Subject: [PATCH 1/2] Do not skip autolink of record/N types, only for #record{} types. --- lib/ex_doc/language/erlang.ex | 2 +- test/ex_doc/language/erlang_test.exs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/ex_doc/language/erlang.ex b/lib/ex_doc/language/erlang.ex index 7565960fe..2ad0ff504 100644 --- a/lib/ex_doc/language/erlang.ex +++ b/lib/ex_doc/language/erlang.ex @@ -570,7 +570,7 @@ defmodule ExDoc.Language.Erlang do arity = length(args) cond do - name == :record and acc != [] -> + name == :record and args != [] and acc != [] -> {ast, acc} name in [:"::", :when, :%{}, :{}, :|, :->, :..., :fun] -> diff --git a/test/ex_doc/language/erlang_test.exs b/test/ex_doc/language/erlang_test.exs index a6caf2531..918ed2e7a 100644 --- a/test/ex_doc/language/erlang_test.exs +++ b/test/ex_doc/language/erlang_test.exs @@ -708,6 +708,13 @@ defmodule ExDoc.Language.ErlangTest do ~s| atom()}]].| end + if System.otp_release() >= "29" do + test "spec referencing builtin record/0 type", c do + assert autolink_spec("-spec foo() -> record().", c) == + ~s|foo() -> record().| + end + end + test "callback", c do assert autolink_spec("-callback foo() -> t().", c) == ~s|foo() -> t().| From aaf1006ed88858b233b450d89d80e4f43109fdf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6m?= Date: Tue, 19 May 2026 13:37:18 +0200 Subject: [PATCH 2/2] Bump CI to latest Erlang version --- .github/workflows/ci.yml | 2 +- .github/workflows/release.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e74f2f578..07479ed05 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,7 +83,7 @@ jobs: otp: "27" # Test with latest Elixir and Erlang versions - elixir: "1.19" - otp: "28" + otp: "29" lint: true steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8eec2e690..5a0ed7763 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,15 +29,15 @@ jobs: fail-fast: true matrix: include: - - otp: 26 - otp_version: "26.2.5" - elixir_version: "1.16.2" - otp: 27 otp_version: "27.3.4.9" elixir_version: "1.19.5" - otp: 28 otp_version: "28.4.1" elixir_version: "1.19.5" + - otp: 29 + otp_version: "29.0" + elixir_version: "1.19.5" runs-on: ubuntu-22.04 steps: