microsoft / microsoft/TypeScript
Crash: TypeError: Cannot read properties of undefined (reading 'aliasSymbol') remains when using variadic tuple with (infer C)[] and constrained infer
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
### 🔎 Search Terms
aliasSymbol, inferFromTypes, variadic tuple, compiler crash
### 🕗 Version & Regression Information
Version: 5.7.3, 5.8.3, 5.9.3,nightly (Still crashing after PR for #63014 )
### ⏯ Playground Link
https://www.typescriptlang.org/zh/play/?target=7&ts=5.9.3#code/C4TwDgpgBAygrgIwCpzAHiQPigXikqCAD2AgDsATAZygG0AoKJqAOjYAoBLMgMwgCcoAYQCUtALoAaRszYtufQQCFCJctToBDMiElRtIcfXFQA-FBUAuKGQgA3AQG56oSPn6cA5p4G5YiFHRaAEY9ACZxTEcgA
### 💻 Code
```ts
type SubTup = T extends [
...(infer C)[],
...infer B extends [any, any]
] ? B : never;
type Trigger = SubTup<[1, 2]>;
```
### 🙁 Actual behavior
```
TypeError: Cannot read properties of undefined (reading 'aliasSymbol')
at inferFromTypes (D:\github\TypeScript\built\local\_tsc.js:68686:18)
at inferFromObjectTypes (D:\github\TypeScript\built\local\_tsc.js:69171:23)
at invokeOnce (D:\github\TypeScript\built\local\_tsc.js:68878:9)
at inferFromTypes (D:\github\TypeScript\built\local\_tsc.js:68840:11)
at inferTypes (D:\github\TypeScript\built\local\_tsc.js:68674:5)
at getConditionalType (D:\github\TypeScript\built\local\_tsc.js:62706:11)
at getConditionalTypeInstantiation (D:\github\TypeScript\built\local\_tsc.js:63695:307)
at instantiateTypeWorker (D:\github\TypeScript\built\local\_tsc.js:63798:14)
at instantiateTypeWithAlias (D:\github\TypeScript\built\local\_tsc.js:63735:20)
at getTypeAliasInstantiation (D:\github\TypeScript\built\local\_tsc.js:60300:52)
Node.js v22.19.0
```
### 🙂 Expected behavior
The compiler should not crash.
### Additional information about the issue
I noticed that while PR #63014 fixed some crashes related to variadic tuples, the compiler still crashes (ICE) when using a slightly different syntax.
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 lo snippet variadic-tuple dal link di Playground o nel compilatore, quindi segui lo stack attraverso built/local/_tsc.js, in particolare inferFromTypes e inferFromObjectTypes. Confronta il fallimento rimanente con PR #63014; il lavoro è completato quando l’esempio non produce più il aliasSymbol TypeError né manda in crash il compilatore.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 45/100