Bagaimana cara mengatasi peringatan yang dikelompokkan?

Ada beberapa grup def, dan ketika saya menulis @spec, itu diperingatkan dengan warning: clauses for the same def should be grouped together, def foo/2 was previously defined. Apakah ada solusi untuk itu?

Meskipun peringatan itu berguna, tapi saya ingin mengabaikannya @spec.

@spec foo(:id, integer) :: {:not_found} | {:ok, String.t}
def foo(:id, id) do
  # some logic
end

@spec foo(:email, String.t) :: {:not_found} | {:ok, String.t}
def foo(:email, email) do
  # some logic
end

person hykw    schedule 29.06.2016    source sumber


Jawaban (1)


@spec foo(:id, integer) :: {:not_found} | {:ok, String.t}
@spec foo(:email, String.t) :: {:not_found} | {:ok, String.t}

def foo(:id, id) do
  # some logic
end

def foo(:email, email) do
  # some logic
end

atau Anda dapat menggunakan satu spesifikasi saja

@spec foo(:id | :email, integer | String.t) :: {:not_found} | {:ok, String.t}

Saya belum mengujinya tetapi seharusnya berhasil.

person NoDisplayName    schedule 29.06.2016
comment
Terima kasih. Saya mengambil cara yang pertama, dan itu menyelesaikan peringatannya. - person hykw; 01.07.2016