mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-11 20:37:46 -05:00
Accept new baselines
This commit is contained in:
@@ -319,6 +319,20 @@ function f90<T extends S2, K extends keyof S2>(x1: S2[keyof S2], x2: T[keyof S2]
|
||||
x4.length;
|
||||
}
|
||||
|
||||
function f91<T, K extends keyof T>(x: T, y: T[keyof T], z: T[K]) {
|
||||
let a: {};
|
||||
a = x;
|
||||
a = y;
|
||||
a = z;
|
||||
}
|
||||
|
||||
function f92<T, K extends keyof T>(x: T, y: T[keyof T], z: T[K]) {
|
||||
let a: {} | null | undefined;
|
||||
a = x;
|
||||
a = y;
|
||||
a = z;
|
||||
}
|
||||
|
||||
// Repros from #12011
|
||||
|
||||
class Base {
|
||||
@@ -592,6 +606,27 @@ type DynamicDBRecord<Flag extends string> = ({ dynamicField: number } | { dynami
|
||||
function getFlagsFromDynamicRecord<Flag extends string>(record: DynamicDBRecord<Flag>, flags: Flag[]) {
|
||||
return record[flags[0]];
|
||||
}
|
||||
|
||||
// Repro from #21368
|
||||
|
||||
interface I {
|
||||
foo: string;
|
||||
}
|
||||
|
||||
declare function take<T>(p: T): void;
|
||||
|
||||
function fn<T extends I, K extends keyof T>(o: T, k: K) {
|
||||
take<{} | null | undefined>(o[k]);
|
||||
take<any>(o[k]);
|
||||
}
|
||||
|
||||
// Repro from #23133
|
||||
|
||||
class Unbounded<T> {
|
||||
foo(x: T[keyof T]) {
|
||||
let y: {} | undefined | null = x;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//// [keyofAndIndexedAccess.js]
|
||||
@@ -830,6 +865,18 @@ function f90(x1, x2, x3, x4) {
|
||||
x3.length;
|
||||
x4.length;
|
||||
}
|
||||
function f91(x, y, z) {
|
||||
var a;
|
||||
a = x;
|
||||
a = y;
|
||||
a = z;
|
||||
}
|
||||
function f92(x, y, z) {
|
||||
var a;
|
||||
a = x;
|
||||
a = y;
|
||||
a = z;
|
||||
}
|
||||
// Repros from #12011
|
||||
var Base = /** @class */ (function () {
|
||||
function Base() {
|
||||
@@ -986,6 +1033,19 @@ function getFlagsFromSimpleRecord(record, flags) {
|
||||
function getFlagsFromDynamicRecord(record, flags) {
|
||||
return record[flags[0]];
|
||||
}
|
||||
function fn(o, k) {
|
||||
take(o[k]);
|
||||
take(o[k]);
|
||||
}
|
||||
// Repro from #23133
|
||||
var Unbounded = /** @class */ (function () {
|
||||
function Unbounded() {
|
||||
}
|
||||
Unbounded.prototype.foo = function (x) {
|
||||
var y = x;
|
||||
};
|
||||
return Unbounded;
|
||||
}());
|
||||
|
||||
|
||||
//// [keyofAndIndexedAccess.d.ts]
|
||||
@@ -1126,6 +1186,8 @@ declare type S2 = {
|
||||
b: string;
|
||||
};
|
||||
declare function f90<T extends S2, K extends keyof S2>(x1: S2[keyof S2], x2: T[keyof S2], x3: S2[K], x4: T[K]): void;
|
||||
declare function f91<T, K extends keyof T>(x: T, y: T[keyof T], z: T[K]): void;
|
||||
declare function f92<T, K extends keyof T>(x: T, y: T[keyof T], z: T[K]): void;
|
||||
declare class Base {
|
||||
get<K extends keyof this>(prop: K): this[K];
|
||||
set<K extends keyof this>(prop: K, value: this[K]): void;
|
||||
@@ -1298,3 +1360,11 @@ declare type DynamicDBRecord<Flag extends string> = ({
|
||||
dynamicField: string;
|
||||
}) & DBBoolTable<Flag>;
|
||||
declare function getFlagsFromDynamicRecord<Flag extends string>(record: DynamicDBRecord<Flag>, flags: Flag[]): DynamicDBRecord<Flag>[Flag];
|
||||
interface I {
|
||||
foo: string;
|
||||
}
|
||||
declare function take<T>(p: T): void;
|
||||
declare function fn<T extends I, K extends keyof T>(o: T, k: K): void;
|
||||
declare class Unbounded<T> {
|
||||
foo(x: T[keyof T]): void;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1497,6 +1497,73 @@ function f90<T extends S2, K extends keyof S2>(x1: S2[keyof S2], x2: T[keyof S2]
|
||||
>length : number
|
||||
}
|
||||
|
||||
function f91<T, K extends keyof T>(x: T, y: T[keyof T], z: T[K]) {
|
||||
>f91 : <T, K extends keyof T>(x: T, y: T[keyof T], z: T[K]) => void
|
||||
>T : T
|
||||
>K : K
|
||||
>T : T
|
||||
>x : T
|
||||
>T : T
|
||||
>y : T[keyof T]
|
||||
>T : T
|
||||
>T : T
|
||||
>z : T[K]
|
||||
>T : T
|
||||
>K : K
|
||||
|
||||
let a: {};
|
||||
>a : {}
|
||||
|
||||
a = x;
|
||||
>a = x : T
|
||||
>a : {}
|
||||
>x : T
|
||||
|
||||
a = y;
|
||||
>a = y : T[keyof T]
|
||||
>a : {}
|
||||
>y : T[keyof T]
|
||||
|
||||
a = z;
|
||||
>a = z : T[K]
|
||||
>a : {}
|
||||
>z : T[K]
|
||||
}
|
||||
|
||||
function f92<T, K extends keyof T>(x: T, y: T[keyof T], z: T[K]) {
|
||||
>f92 : <T, K extends keyof T>(x: T, y: T[keyof T], z: T[K]) => void
|
||||
>T : T
|
||||
>K : K
|
||||
>T : T
|
||||
>x : T
|
||||
>T : T
|
||||
>y : T[keyof T]
|
||||
>T : T
|
||||
>T : T
|
||||
>z : T[K]
|
||||
>T : T
|
||||
>K : K
|
||||
|
||||
let a: {} | null | undefined;
|
||||
>a : {} | null | undefined
|
||||
>null : null
|
||||
|
||||
a = x;
|
||||
>a = x : T
|
||||
>a : {} | null | undefined
|
||||
>x : T
|
||||
|
||||
a = y;
|
||||
>a = y : T[keyof T]
|
||||
>a : {} | null | undefined
|
||||
>y : T[keyof T]
|
||||
|
||||
a = z;
|
||||
>a = z : T[K]
|
||||
>a : {} | null | undefined
|
||||
>z : T[K]
|
||||
}
|
||||
|
||||
// Repros from #12011
|
||||
|
||||
class Base {
|
||||
@@ -2463,3 +2530,64 @@ function getFlagsFromDynamicRecord<Flag extends string>(record: DynamicDBRecord<
|
||||
>0 : 0
|
||||
}
|
||||
|
||||
// Repro from #21368
|
||||
|
||||
interface I {
|
||||
>I : I
|
||||
|
||||
foo: string;
|
||||
>foo : string
|
||||
}
|
||||
|
||||
declare function take<T>(p: T): void;
|
||||
>take : <T>(p: T) => void
|
||||
>T : T
|
||||
>p : T
|
||||
>T : T
|
||||
|
||||
function fn<T extends I, K extends keyof T>(o: T, k: K) {
|
||||
>fn : <T extends I, K extends keyof T>(o: T, k: K) => void
|
||||
>T : T
|
||||
>I : I
|
||||
>K : K
|
||||
>T : T
|
||||
>o : T
|
||||
>T : T
|
||||
>k : K
|
||||
>K : K
|
||||
|
||||
take<{} | null | undefined>(o[k]);
|
||||
>take<{} | null | undefined>(o[k]) : void
|
||||
>take : <T>(p: T) => void
|
||||
>null : null
|
||||
>o[k] : T[K]
|
||||
>o : T
|
||||
>k : K
|
||||
|
||||
take<any>(o[k]);
|
||||
>take<any>(o[k]) : void
|
||||
>take : <T>(p: T) => void
|
||||
>o[k] : T[K]
|
||||
>o : T
|
||||
>k : K
|
||||
}
|
||||
|
||||
// Repro from #23133
|
||||
|
||||
class Unbounded<T> {
|
||||
>Unbounded : Unbounded<T>
|
||||
>T : T
|
||||
|
||||
foo(x: T[keyof T]) {
|
||||
>foo : (x: T[keyof T]) => void
|
||||
>x : T[keyof T]
|
||||
>T : T
|
||||
>T : T
|
||||
|
||||
let y: {} | undefined | null = x;
|
||||
>y : {} | null | undefined
|
||||
>null : null
|
||||
>x : T[keyof T]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user