From 2d07e89bf347731ea9dfaecba5a14f636588b7e4 Mon Sep 17 00:00:00 2001 From: Julian Doherty Date: Fri, 14 Nov 2025 19:28:44 +1100 Subject: [PATCH] Fix LSP dialyzer errors due to invalid `Clock` type 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 --- exercises/practice/clock/.meta/config.json | 3 ++- exercises/practice/clock/lib/clock.ex | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/exercises/practice/clock/.meta/config.json b/exercises/practice/clock/.meta/config.json index ac79b5b56f..9d1021772c 100644 --- a/exercises/practice/clock/.meta/config.json +++ b/exercises/practice/clock/.meta/config.json @@ -9,7 +9,8 @@ "nathanchere", "neenjaw", "parkerl", - "sotojuan" + "sotojuan", + "madlep" ], "files": { "solution": [ diff --git a/exercises/practice/clock/lib/clock.ex b/exercises/practice/clock/lib/clock.ex index f9be759022..e754972e9c 100644 --- a/exercises/practice/clock/lib/clock.ex +++ b/exercises/practice/clock/lib/clock.ex @@ -1,4 +1,5 @@ defmodule Clock do + @type t() :: %__MODULE__{hour: integer, minute: integer} defstruct hour: 0, minute: 0 @doc """ @@ -7,7 +8,7 @@ defmodule Clock do iex> Clock.new(8, 9) |> to_string "08:09" """ - @spec new(integer, integer) :: Clock + @spec new(integer, integer) :: t() def new(hour, minute) do end @@ -17,7 +18,7 @@ defmodule Clock do iex> Clock.new(10, 0) |> Clock.add(3) |> to_string "10:03" """ - @spec add(Clock, integer) :: Clock + @spec add(t(), integer) :: t() def add(%Clock{hour: hour, minute: minute}, add_minute) do end end