Skip to content

Commit

Permalink
Add a test for constraint of an infer type parameter not being fully …
Browse files Browse the repository at this point in the history
…instantiated previously (#59760)
  • Loading branch information
Andarist authored Oct 21, 2024
1 parent d9eeeae commit aa411ac
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//// [tests/cases/conformance/types/conditional/inferTypesWithExtendsDependingOnTypeVariables.ts] ////

=== inferTypesWithExtendsDependingOnTypeVariables.ts ===
// repro from https://github.com/microsoft/TypeScript/issues/54197

type Bar<K, T extends readonly unknown[]> = T extends readonly [any, ...infer X extends readonly K[]] ? X : never;
>Bar : Symbol(Bar, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 0, 0))
>K : Symbol(K, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 2, 9))
>T : Symbol(T, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 2, 11))
>T : Symbol(T, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 2, 11))
>X : Symbol(X, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 2, 77))
>K : Symbol(K, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 2, 9))
>X : Symbol(X, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 2, 77))

type Res1 = Bar<"a" | "b", ["a", "b", "b"]>
>Res1 : Symbol(Res1, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 2, 114))
>Bar : Symbol(Bar, Decl(inferTypesWithExtendsDependingOnTypeVariables.ts, 0, 0))

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//// [tests/cases/conformance/types/conditional/inferTypesWithExtendsDependingOnTypeVariables.ts] ////

=== inferTypesWithExtendsDependingOnTypeVariables.ts ===
// repro from https://github.com/microsoft/TypeScript/issues/54197

type Bar<K, T extends readonly unknown[]> = T extends readonly [any, ...infer X extends readonly K[]] ? X : never;
>Bar : Bar<K, T>
> : ^^^^^^^^^

type Res1 = Bar<"a" | "b", ["a", "b", "b"]>
>Res1 : ["b", "b"]
> : ^^^^^^^^^^

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// @strict: true
// @noEmit: true

// repro from https://github.com/microsoft/TypeScript/issues/54197

type Bar<K, T extends readonly unknown[]> = T extends readonly [any, ...infer X extends readonly K[]] ? X : never;
type Res1 = Bar<"a" | "b", ["a", "b", "b"]>

0 comments on commit aa411ac

Please sign in to comment.