diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23cb90adb8..137fc8fada 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,11 +12,14 @@ jobs: strategy: matrix: platform-arch: [ubuntu-20.04-x64, ubuntu-20.04-arm, macos-13-x64, macos-latest-arm] - otp-version: [ 26.2] + otp-version: [25.3, 26.2] include: + - otp-version: 25.3 + brew-otp-version: 25 + vscode-publish: true - otp-version: 26.2 brew-otp-version: 26 - vscode-publish: true + vscode-publish: false - platform-arch: ubuntu-20.04-x64 platform: ubuntu-20.04 os: linux diff --git a/erlang_service/src/elp_lint.erl b/erlang_service/src/elp_lint.erl index 1ac386b7cd..9088895023 100644 --- a/erlang_service/src/elp_lint.erl +++ b/erlang_service/src/elp_lint.erl @@ -1419,7 +1419,7 @@ check_unused_records(Forms, St0) -> maps:remove(Used, Recs) end, St1#lint.records, UsedRecords), Unused = [{Name,Anno} || - Name := {Anno,_Fields} <- URecs, + {Name, {Anno,_Fields}} <- maps:to_list(URecs), element(1, loc(Anno, St1)) =:= FirstFile], foldl(fun ({N,Anno}, St) -> add_warning(Anno, {unused_record, N}, St) @@ -2217,8 +2217,8 @@ is_guard_test(Expression, Forms, IsOverridden) -> %% processing the forms until we'll know that the record %% definitions are truly needed. F = fun() -> - #{Name => {A,Fs} || - {attribute, A, record, {Name, Fs}} <- Forms} + Forms1 = [{Name, {A, Fs}} || {attribute, A, record, {Name, Fs}} <- Forms], + maps:from_list(Forms1) end, is_guard_test2(NoFileExpression, {F,IsOverridden}). @@ -3394,7 +3394,7 @@ check_unused_types_1(Forms, #lint{types=Ts}=St) -> reached_types(#lint{usage = Usage}) -> Es = [{From, {type, To}} || - To := UsedTs <- Usage#usage.used_types, + {To, UsedTs} <- maps:to_list(Usage#usage.used_types), #used_type{at = From} <- UsedTs], Initial = initially_reached_types(Es), G = sofs:family_to_digraph(sofs:rel2fam(sofs:relation(Es))),