Skip to content

Commit 7484c40

Browse files
Merge remote-tracking branch 'origin/master' into release-4.2
2 parents 3ac2324 + b0f5e35 commit 7484c40

File tree

100 files changed

+1273
-470
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+1273
-470
lines changed

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/compiler/checker.ts

Lines changed: 99 additions & 48 deletions
Large diffs are not rendered by default.

src/compiler/diagnosticMessages.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1625,7 +1625,7 @@
16251625
"category": "Error",
16261626
"code": 2360
16271627
},
1628-
"The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter.": {
1628+
"The right-hand side of an 'in' expression must not be a primitive.": {
16291629
"category": "Error",
16301630
"code": 2361
16311631
},

src/compiler/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4745,6 +4745,8 @@ namespace ts {
47454745
typeParameters?: TypeParameter[]; // Type parameters of type alias (undefined if non-generic)
47464746
outerTypeParameters?: TypeParameter[]; // Outer type parameters of anonymous object type
47474747
instantiations?: ESMap<string, Type>; // Instantiations of generic type alias (undefined if non-generic)
4748+
aliasSymbol?: Symbol; // Alias associated with generic type alias instantiation
4749+
aliasTypeArguments?: readonly Type[] // Alias type arguments (if any)
47484750
inferredClassSymbol?: ESMap<SymbolId, TransientSymbol>; // Symbol of an inferred ES5 constructor function
47494751
mapper?: TypeMapper; // Type mapper for instantiation alias
47504752
referenced?: boolean; // True if alias symbol has been referenced as a value that can be emitted

tests/baselines/reference/aliasOfGenericFunctionWithRestBehavedSameAsUnaliased.types

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ type ExtendedMapper<HandledInputT, OutputT, ArgsT extends any[]> = (name : strin
88
>args : ArgsT
99

1010
type a = ExtendedMapper<any, any, [any]>;
11-
>a : ExtendedMapper<any, any, [any]>
11+
>a : a
1212

1313
type b = ExtendedMapper<any, any, any[]>;
14-
>b : ExtendedMapper<any, any, any[]>
14+
>b : b
1515

1616
type test = a extends b ? "y" : "n"
1717
>test : "y"
@@ -32,10 +32,10 @@ type ExtendedMapper1<HandledInputT, OutputT, ArgsT extends any[]> = (
3232
);
3333

3434
type a1 = ExtendedMapper1<any, any, [any]>;
35-
>a1 : ExtendedMapper1<any, any, [any]>
35+
>a1 : a1
3636

3737
type b1 = ExtendedMapper1<any, any, any[]>;
38-
>b1 : ExtendedMapper1<any, any, any[]>
38+
>b1 : b1
3939

4040
type test1 = a1 extends b1 ? "y" : "n"
4141
>test1 : "y"
@@ -56,10 +56,10 @@ type ExtendedMapper2<HandledInputT, OutputT, ArgsT extends any[]> = (
5656
);
5757

5858
type a2 = ExtendedMapper2<any, any, [any]>;
59-
>a2 : (name: string, mixed: any, args_0: any) => any
59+
>a2 : a2
6060

6161
type b2 = ExtendedMapper2<any, any, any[]>;
62-
>b2 : (name: string, mixed: any, ...args: any[]) => any
62+
>b2 : b2
6363

6464
type test2 = a2 extends b2 ? "y" : "n"
6565
>test2 : "y"

tests/baselines/reference/caseInsensitiveFileSystemWithCapsImportTypeDeclarations.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ export declare type TypeB = Merge<TypeA, {
6060
b: string;
6161
}>;
6262
//// [index.d.ts]
63+
import { TypeB } from './type-b';
6364
export declare class Broken {
64-
method(): import("./types").Merge<import("./type-a").TypeA, {
65-
b: string;
66-
}>;
65+
method(): TypeB;
6766
}

tests/baselines/reference/caseInsensitiveFileSystemWithCapsImportTypeDeclarations.types

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ export class Broken {
66
>Broken : Broken
77

88
method () {
9-
>method : () => import("tests/cases/compiler/Uppercased_Dir/src/types").Merge<import("tests/cases/compiler/Uppercased_Dir/src/type-a").TypeA, { b: string; }>
9+
>method : () => TypeB
1010

1111
return { } as TypeB;
12-
>{ } as TypeB : import("tests/cases/compiler/Uppercased_Dir/src/types").Merge<import("tests/cases/compiler/Uppercased_Dir/src/type-a").TypeA, { b: string; }>
12+
>{ } as TypeB : TypeB
1313
>{ } : {}
1414
}
1515
}
@@ -21,7 +21,7 @@ import { TypeA } from './type-a';
2121
>TypeA : any
2222

2323
export type TypeB = Merge<TypeA, {
24-
>TypeB : Merge<TypeA, { b: string; }>
24+
>TypeB : TypeB
2525

2626
b: string;
2727
>b : string

tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.types

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export type Matching<InjectedProps, DecorationTargetProps> = {
113113
};
114114

115115
export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
116-
>Omit : Pick<T, Exclude<keyof T, K>>
116+
>Omit : Omit<T, K>
117117

118118
export type InferableComponentEnhancerWithProps<TInjectedProps, TNeedsProps> =
119119
>InferableComponentEnhancerWithProps : InferableComponentEnhancerWithProps<TInjectedProps, TNeedsProps>

tests/baselines/reference/circularlySimplifyingConditionalTypesNoCrash.types

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
=== tests/cases/compiler/circularlySimplifyingConditionalTypesNoCrash.ts ===
22
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
3-
>Omit : Pick<T, Exclude<keyof T, K>>
3+
>Omit : Omit<T, K>
44

55
type Shared< // Circularly self constraining type, defered thanks to mapping
66
>Shared : Shared<InjectedProps, DecorationTargetProps>

tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export type ChannelType = Channel extends { type: infer R } ? R : never;
2929
>type : R
3030

3131
type Omit<T, K extends keyof T> = Pick<
32-
>Omit : Pick<T, ({ [P in keyof T]: P; } & { [P in K]: never; } & { [x: string]: never; })[keyof T]>
32+
>Omit : Omit<T, K>
3333

3434
T,
3535
({ [P in keyof T]: P } & { [P in K]: never } & { [x: string]: never })[keyof T]

0 commit comments

Comments
 (0)