Skip to content

Commit 6f2c5fa

Browse files
authored
Fix LSP dialyzer errors due to invalid Clock type (#1604)
Define a `t()` type for the `Clock` struct, and use it in the function signatures. Just specifying module name ends up with LSP dialyzer errors
1 parent ecadf58 commit 6f2c5fa

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

exercises/practice/clock/.meta/config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"nathanchere",
1010
"neenjaw",
1111
"parkerl",
12-
"sotojuan"
12+
"sotojuan",
13+
"madlep"
1314
],
1415
"files": {
1516
"solution": [

exercises/practice/clock/lib/clock.ex

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
defmodule Clock do
2+
@type t() :: %__MODULE__{hour: integer, minute: integer}
23
defstruct hour: 0, minute: 0
34

45
@doc """
@@ -7,7 +8,7 @@ defmodule Clock do
78
iex> Clock.new(8, 9) |> to_string
89
"08:09"
910
"""
10-
@spec new(integer, integer) :: Clock
11+
@spec new(integer, integer) :: t()
1112
def new(hour, minute) do
1213
end
1314

@@ -17,7 +18,7 @@ defmodule Clock do
1718
iex> Clock.new(10, 0) |> Clock.add(3) |> to_string
1819
"10:03"
1920
"""
20-
@spec add(Clock, integer) :: Clock
21+
@spec add(t(), integer) :: t()
2122
def add(%Clock{hour: hour, minute: minute}, add_minute) do
2223
end
2324
end

0 commit comments

Comments
 (0)