rescript-lang / rescript-lang/rescript

broken @as in external does weird things

Offen
#7,948 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
OCaml
Sterne
7.5k
Forks
485
Ø Merge
1 T. 2 Std.
Gemergte PRs (30 T.)
55

Beschreibung

i just inlined a small binding in a file:

module Node = {
  module Fs = {
    @module("node:fs") external existsSync: string => bool = "existsSync"
    @module("node:fs")
    external readFileSync: (string, @as(json`"utf8`) _) => string = "readFileSync"
  }
}

i missed the closing " after utf8. having format on save, the formatter did a weird change:

    external readFileSync: ((string, @as(json`"utf8`) _)) => string = "readFileSync"

it added a double set of parens. this is a really edge case scenario so you may throw this in the trash if you like

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das Formatter-Verhalten mit dem externen Binding und dem fehlerhaften @as(json"utf8)‑Snippet aus dem Issue zu reproduzieren. Verfolge die Verarbeitung des Formatters für externe Deklarationen und die @as-Syntax; fertig ist die Aufgabe, wenn das Formatieren dieser Eingabe kein zusätzliches Klammernpaar mehr hinzufügt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
ocaml
Bereich
compilers, tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
28/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.