bitwalker / bitwalker/libgraph
Wrong return value in @spec for Graph.in_edges().
- Lingua principale
- Elixir
- Stelle
- 571
- Fork
- 76
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Hello. As I understand from the documentation, `Graph.in_edges()` is supposed to return "a list of `Graph.Edge`". However, the [`@spec`](https://github.com/bitwalker/libgraph/blob/main/lib/graph.ex#L2122C3-L2122C40) declares that only one edge is returned.
```elixir
@spec in_edges(t, vertex) :: Edge.t()
```
This is causing Dialyzer some discomfort:
```
Line 1193 Column 9: The pattern [Edge] can never match the type #{'__struct__':='Elixir.Graph.Edge', 'label':=_, 'v1':=_, 'v2':=_, 'weight':=number()}
Line 1194 Column 9: The pattern [Edge | More] can never match the type #{'__struct__':='Elixir.Graph.Edge', 'label':=_, 'v1':=_, 'v2':=_, 'weight':=number()}
```
Note that I'm using libgraph from an Erlang module, but of course, that shouldn't matter. I'm using version 0.16.0 of the library.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia in lib/graph.ex, intorno alla riga 2122, dove è dichiarato il @spec di Graph.in_edges/2, e confrontalo con il valore restituito documentato e gli avvisi di Dialyzer nell'issue. Il lavoro è completato quando la specifica del tipo corrisponde al valore restituito sotto forma di lista dalla funzione e la discrepanza di Dialyzer segnalata non viene più prodotta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- elixir
- Ambito
- data
- Tipo di issue
- Bug
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 35/100