@@ -155,3 +155,37 @@ type FilteredRes1 = FilteredValuesMatchNever<[]>
155155>FilteredRes1 : Symbol(FilteredRes1, Decl(deferredConditionalTypes.ts, 37, 51))
156156>FilteredValuesMatchNever : Symbol(FilteredValuesMatchNever, Decl(deferredConditionalTypes.ts, 34, 1))
157157
158+ // repro from #46761
159+
160+ type Bit = 0 | 1;
161+ >Bit : Symbol(Bit, Decl(deferredConditionalTypes.ts, 39, 48))
162+
163+ type AndBit<A extends Bit, B extends Bit> = [A, B] extends [1, 1] ? 1 : 0;
164+ >AndBit : Symbol(AndBit, Decl(deferredConditionalTypes.ts, 43, 17))
165+ >A : Symbol(A, Decl(deferredConditionalTypes.ts, 45, 12))
166+ >Bit : Symbol(Bit, Decl(deferredConditionalTypes.ts, 39, 48))
167+ >B : Symbol(B, Decl(deferredConditionalTypes.ts, 45, 26))
168+ >Bit : Symbol(Bit, Decl(deferredConditionalTypes.ts, 39, 48))
169+ >A : Symbol(A, Decl(deferredConditionalTypes.ts, 45, 12))
170+ >B : Symbol(B, Decl(deferredConditionalTypes.ts, 45, 26))
171+
172+ type TestBit<A extends Bit, B extends Bit> = AndBit<
173+ >TestBit : Symbol(TestBit, Decl(deferredConditionalTypes.ts, 45, 74))
174+ >A : Symbol(A, Decl(deferredConditionalTypes.ts, 47, 13))
175+ >Bit : Symbol(Bit, Decl(deferredConditionalTypes.ts, 39, 48))
176+ >B : Symbol(B, Decl(deferredConditionalTypes.ts, 47, 27))
177+ >Bit : Symbol(Bit, Decl(deferredConditionalTypes.ts, 39, 48))
178+ >AndBit : Symbol(AndBit, Decl(deferredConditionalTypes.ts, 43, 17))
179+
180+ A extends 1 ? 0 : 1,
181+ >A : Symbol(A, Decl(deferredConditionalTypes.ts, 47, 13))
182+
183+ B extends 1 ? 0 : 1
184+ >B : Symbol(B, Decl(deferredConditionalTypes.ts, 47, 27))
185+
186+ >;
187+
188+ type TestBitRes = TestBit<1, 1>;
189+ >TestBitRes : Symbol(TestBitRes, Decl(deferredConditionalTypes.ts, 50, 2))
190+ >TestBit : Symbol(TestBit, Decl(deferredConditionalTypes.ts, 45, 74))
191+
0 commit comments