bitwalker / bitwalker/libgraph
Wrong return value in @spec for Graph.in_edges().
- Vorherrschende Sprache
- Elixir
- Sterne
- 571
- Forks
- 76
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne in lib/graph.ex ungefähr bei Zeile 2122, wo die @spec für Graph.in_edges/2 deklariert ist, und vergleiche sie mit dem dokumentierten Rückgabewert und den Dialyzer-Warnungen im Issue. Die Aufgabe ist erledigt, wenn die Typspezifikation mit der Listenrückgabe der Funktion übereinstimmt und die gemeldete Dialyzer-Nichtübereinstimmung nicht mehr erzeugt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- elixir
- Bereich
- data
- Issue-Typ
- Bug
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100