Invalid function call in generated output
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- javascript, ocaml
- Bereich
- compilers
Rechercherichtung
Reproduziere Issue 8153 mit dem eingebetteten ReScript-Quelltext und untersuche das vom Compiler generierte JavaScript im Umfeld von test und broken. Vergleiche den erzeugten Aufruf mit dem globalen Ziel des externen Bindings; abgeschlossen ist es, wenn broken() den beabsichtigten globalThis.test()-Aufruf beibehält, statt ihn zum lokalen Wrapper aufzulösen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
// External binding to global "test"
@val external _test: (string, (unit => unit) => unit) => unit = "test"
// Wrapper function shadows the external's target name
let test = (name, callback) => {
_test(name, _done => callback())
}
// BUG: This should call global test(), but calls local wrapper instead
let broken = () => {
_test("async", done => done())
}
Generates:
// Generated by ReScript, PLEASE EDIT WITH CARE
function test(name, callback) {
globalThis.test(name, _done => callback());
}
function broken() {
test("async", done => done());
}
export {
test,
broken,
}
/* No side effect */
- Vorherrschende Sprache
- OCaml
- Sterne
- 7.5k
- Forks
- 485
- Ø Merge
- 1 T. 2 Std.
- Gemergte PRs (30 T.)
- 55
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus rescript-lang/rescript
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
rescript-lang/rescript#8659 · 2 Kommentare · 2 Reaktionen ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
rescript-lang/rescript#8647 ·
-
rescript-lang/rescript#8632 · 1 zugewiesene Person ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 28/100
rescript-lang/rescript#8624 ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
rescript-lang/rescript#8596 · 2 Kommentare ·
Alle Issues in rescript-lang/rescript
Ähnliche Issues
-
`String.Parser.chompUntilEndOr` leaves the column one short when it runs to the end past a newline Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
enhancement PyCDE
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
llvm:support
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
llvm/llvm-project#226296 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
abseil/abseil-cpp#2176 ·