Skip to content

Commit bd65281

Browse files
mhanbergdoorgan
andauthored
ci: add elixir 1.19 to build matrix (#189)
* ci: add elixir 1.19 to build matrix * fix: update build exceptions tests * fix: address warnings from elixir 1.19 * fix: address private api that change in elixir 1.19 --------- Co-authored-by: doorgan <dorgandash@gmail.com>
1 parent ce9ac22 commit bd65281

File tree

12 files changed

+38
-14
lines changed

12 files changed

+38
-14
lines changed

.github/matrix.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"include": [
3+
{
4+
"otp": "28",
5+
"elixir": "1.19",
6+
"project": "engine"
7+
},
38
{
49
"otp": "28",
510
"elixir": "1.18.4",
@@ -30,6 +35,11 @@
3035
"elixir": "1.16",
3136
"project": "engine"
3237
},
38+
{
39+
"otp": "28",
40+
"elixir": "1.19",
41+
"project": "expert_credo"
42+
},
3343
{
3444
"otp": "28",
3545
"elixir": "1.18.4",
@@ -60,6 +70,11 @@
6070
"elixir": "1.16",
6171
"project": "expert_credo"
6272
},
73+
{
74+
"otp": "28",
75+
"elixir": "1.19",
76+
"project": "forge"
77+
},
6378
{
6479
"otp": "28",
6580
"elixir": "1.18.4",

apps/engine/lib/engine/build/state.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ defmodule Engine.Build.State do
3838
compile_file(state, document)
3939
end)
4040

41-
%__MODULE__{new_state | uri_to_document: %{}, project_compile: :none}
41+
%{new_state | uri_to_document: %{}, project_compile: :none}
4242
end
4343

4444
def on_file_compile(%__MODULE__{} = state, %Document{} = document) do

apps/engine/lib/engine/code_action/handlers/remove_unused_alias.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ defmodule Engine.CodeAction.Handlers.RemoveUnusedAlias do
246246

247247
defp include_next_line(%Range{} = range) do
248248
update_in(range.end, fn old_position ->
249-
%Position{
249+
%{
250250
old_position
251251
| line: old_position.line + 1,
252252
character: 1

apps/engine/lib/engine/code_intelligence/symbols.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,11 @@ defmodule Engine.CodeIntelligence.Symbols do
106106
children =
107107
Enum.map(defs, fn child ->
108108
[_, rest] = String.split(child.name, " ", parts: 2)
109-
%Symbols.Document{child | name: rest}
109+
%{child | name: rest}
110110
end)
111111

112112
range = Range.new(first.range.start, last.range.end)
113-
%Symbols.Document{first | name: name, range: range, children: children}
113+
%{first | name: name, range: range, children: children}
114114
end)
115115

116116
grouped_functions

apps/engine/lib/engine/code_mod/aliases.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ defmodule Engine.CodeMod.Aliases do
226226
%Position{position | character: character}
227227

228228
position.line > scope_range.end.line ->
229-
%Position{scope_range.end | character: 1}
229+
%{scope_range.end | character: 1}
230230

231231
true ->
232232
position

apps/engine/test/engine/build/error_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ defmodule Engine.Build.ErrorTest do
451451

452452
# used a regex here because the error changed in elixir 1.18
453453
assert diagnostic.message =~
454-
~r[protocol Enumerable not implemented for( 1 of)? type Integer]
454+
~r[protocol Enumerable not implemented for( 1 of)?( type)? Integer]
455455

456456
assert decorate(document_text, diagnostic.position) =~ "«for i <- 1, do: i\n»"
457457
end
@@ -468,7 +468,7 @@ defmodule Engine.Build.ErrorTest do
468468

469469
# used a regex here because the error changed in elixir 1.18
470470
assert diagnostic.message =~
471-
~r[protocol Enumerable not implemented for( 1 of)? type Integer]
471+
~r[protocol Enumerable not implemented for( 1 of)?( type)? Integer]
472472

473473
assert decorate(document_text, diagnostic.position) =~ "«for i <- 1, do: i\n»"
474474
end

apps/expert/lib/expert.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ defmodule Expert do
176176
def handle_info(:engine_initialized, lsp) do
177177
state = assigns(lsp).state
178178

179-
new_state = %State{state | engine_initialized?: true}
179+
new_state = %{state | engine_initialized?: true}
180180

181181
lsp = assign(lsp, state: new_state)
182182

@@ -195,7 +195,7 @@ defmodule Expert do
195195
)
196196

197197
{:ok, config} = State.default_configuration(state)
198-
{:noreply, assign(lsp, state: %State{state | configuration: config})}
198+
{:noreply, assign(lsp, state: %{state | configuration: config})}
199199
else
200200
{:noreply, lsp}
201201
end

apps/expert/mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ defmodule Expert.MixProject do
7777

7878
defp deps do
7979
[
80-
{:burrito, "~> 1.5", only: [:dev, :prod]},
80+
{:burrito, "~> 1.5"},
8181
{:deps_nix, "~> 2.4", only: :dev},
8282
Mix.Credo.dependency(),
8383
Mix.Dialyzer.dependency(),

apps/forge/lib/forge/document/position.ex

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ end
107107
defimpl Inspect, for: Forge.Document.Position do
108108
import Inspect.Algebra
109109

110-
def inspect(nil, _), do: "nil"
111-
112110
def inspect(pos, _) do
113111
concat(["XpPos", to_string(pos)])
114112
end

apps/forge/lib/future/code.ex

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1894,7 +1894,7 @@ defmodule Future.Code do
18941894
case :code.ensure_loaded(module) do
18951895
{:error, :nofile} = error ->
18961896
if can_await_module_compilation?() do
1897-
case Kernel.ErrorHandler.ensure_compiled(module, :module, mode) do
1897+
case do_ensure_compiled(module, :module, mode, nil) do
18981898
:found -> {:module, module}
18991899
:deadlock -> {:error, :unavailable}
19001900
:not_found -> {:error, :nofile}
@@ -1908,6 +1908,16 @@ defmodule Future.Code do
19081908
end
19091909
end
19101910

1911+
if Version.match?(System.version(), ">= 1.19.0") do
1912+
defp do_ensure_compiled(module, kind, deadlock, position) do
1913+
Kernel.ErrorHandler.ensure_compiled(module, kind, deadlock, position)
1914+
end
1915+
else
1916+
defp do_ensure_compiled(module, kind, deadlock, _position) do
1917+
Kernel.ErrorHandler.ensure_compiled(module, kind, deadlock)
1918+
end
1919+
end
1920+
19111921
@doc """
19121922
Returns `true` if the module is loaded.
19131923

0 commit comments

Comments
 (0)