SirWerto

SirWerto

Warning on :gen_statem behaviours

Good morning,
I’m using the :gen_statem erlang behaviour for modeling a process and the compiler is throwing me some warnings about bad implementations behaviours

This is the module definition

defmodule Collector.Plubio do
  @behaviour :gen_statem

I am doing the calls like that

  @spec state?() :: {:ok, :waiting | :collecting} | {:error, :timeout}
  def state?() do
    try do
      case :gen_statem.call(Collector.Plubio, :current_state, 5000) do
	:waiting -> {:ok, :waiting}
	:collecting -> {:ok, :collecting}
      end
    rescue
      RuntimeError -> {:error, :timeout}
    end
  end

And the :gen_statem.state_name/3 are like this

  @impl true
  def waiting({:call, from}, :current_state, state) do
    {:next_state, :waiting, state, {:reply, from, :waiting}}
  end

But the compiler still showing me these warnings

warning: got "@impl true" for function waiting/3 but this behaviour does not specify such callback. The known callbacks are:

  * :gen_statem.callback_mode/0 (function)
  * :gen_statem.code_change/4 (function)
  * :gen_statem.format_status/2 (function)
  * :gen_statem.handle_event/4 (function)
  * :gen_statem.init/1 (function)
  * :gen_statem.state_name/3 (function)
  * :gen_statem.terminate/3 (function)

It is my first time calling directly and erlang behaviour so probably I am forgetting something, does someone knows how to fix that?
Thank you so much:)

Marked As Solved

kokolegorille

kokolegorille

The error is about…

… maybe remove this?

Also Liked

josevalim

josevalim

Creator of Elixir

To add to @kokolegorille’s reply, :gen_statem only has a handful of static callbacks. The other callbacks are dynamic, based on your code, and those do not get a @impl true.

Where Next?

Popular in Questions Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
mgjohns61585
Could someone help me? I’m making my first elixir program, number guessing game. I can’t figure out how to convert the user’s guess from ...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: The documentation above suggests that while ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call t...
New
chensan
I have a User schema with a :from_id field set to type :string: defmodule TweetBot.Repo.Migrations.CreateUsers do use Ecto.Migration ...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

Other popular topics Top

malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 42920 311
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
johnnyicon
Hi all, I’ve just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I’m trying to use Postgres...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 52341 488
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New

We're in Beta

About us Mission Statement