microsoft / microsoft/TypeScript
Control flow analysis should "work" in unreachable code
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
TypeScript Version: master
Search Terms: unreachable throw return narrowing
Code
function fn() {
// TODO: Finish writing this function!
return;
const h = Math.random() > 0.5 ? 'h' : undefined;
if (h) {
// Error, wat
const a: string = h;
}
}
Expected behavior: No error
Actual behavior: Error - h is possibly undefined
We get "bug" reports like this every once in a while, and it's hard to understand why the narrowing just stops working because the code isn't reachable. This also makes it difficult to insert debugging throws/returns earlier in the function.
e.g. https://twitter.com/aendrew/status/1037301561062514688
Related Issues: Believe there's one out there somewhere
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la reproducción proporcionada en TypeScript Playground y confirma que el error de narrowing se produce después de un return inalcanzable. Sigue el análisis de flujo de control del compilador para las instrucciones inalcanzables y, a continuación, añade o actualiza una prueba de regresión para que se acepte el valor estrechado y el comportamiento existente del código alcanzable no cambie.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- compilers
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100