rescript-lang / rescript-lang/rescript
Invalid function call in generated output
Aperta
Nessuno ha ancora preso questa issue.
- Lingua principale
- OCaml
- Stelle
- 7.5k
- Fork
- 485
- Merge medio
- 1g 2h
- PR unite (30g)
- 55
Descrizione
// 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 */
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci l’issue 8153 usando il codice sorgente ReScript incorporato e ispeziona il JavaScript generato dal compilatore attorno a test e broken. Confronta la chiamata emessa con la destinazione globale dell’external binding; è completato quando broken() preserva la chiamata prevista a globalThis.test() invece di risolverla al wrapper locale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, ocaml
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100