microsoft / microsoft/TypeScript

Control flow analysis gets confused by decorators

Aperta
#57,462 2 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@rbuckton ci sta già lavorando.

Dal 22/2/2024.

Needs Investigation
Lingua principale
Go
Stelle
111k
Fork
14.4k
Merge medio
1g 19h
PR unite (30g)
117

Descrizione

🔎 Search Terms

decorators super control flow

🕗 Version & Regression Information
  • This is the behavior in every version I tried
⏯ Playground Link

https://www.typescriptlang.org/play?target=99#code/HYUw7gBAxgNghgZwRAghEAPALiYATZWRZAbwjgAoBKCEgXwgZICgJoB7YBLAJwFcoWdj2q1WbCAj4AHECKoBuZuLYwQWcgDMcPJROjwkEAEJj9bAAIU42uRAC8kmXIB0cADQQKAfQCMn7wAmGnsAPlo6Gk0HCAAiWL0JOmV9Gx1qROS6IA

💻 Code
new class A extends class { a() {} } {
  constructor() {
    super();

    let after;
    class B {
      @(after = super.a, (_1, _2) => {}) f = "";
    }

    after();
  }
}
🙁 Actual behavior

TS complains that:

  • I'm accessing super.a before calling super()
  • I'm calling after before initializing it
🙂 Expected behavior

That code should be fine

Additional information about the issue

No response

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.