Skip to content

Commit b0042a7

Browse files
authored
Actually have a chance to reuse optional property signatures in the node builder (microsoft#57995)
1 parent 278b4f9 commit b0042a7

File tree

71 files changed

+335
-335
lines changed

Some content is hidden

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

71 files changed

+335
-335
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8551,7 +8551,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
85518551
if (typeFromTypeNode === type) {
85528552
return true;
85538553
}
8554-
if (annotatedDeclaration && (isParameter(annotatedDeclaration) || isPropertyDeclaration(annotatedDeclaration)) && annotatedDeclaration.questionToken) {
8554+
if (annotatedDeclaration && (isParameter(annotatedDeclaration) || isPropertySignature(annotatedDeclaration) || isPropertyDeclaration(annotatedDeclaration)) && annotatedDeclaration.questionToken) {
85558555
return getTypeWithFacts(type, TypeFacts.NEUndefined) === typeFromTypeNode;
85568556
}
85578557
return false;

tests/baselines/reference/avoidNarrowingUsingConstVariableFromBindingElementWithLiteralInitializer.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ declare const foo: ["a", string, number] | ["b", string, boolean];
88
export function test(arg: { index?: number }) {
99
>test : (arg: { index?: number; }) => void
1010
> : ^^^^^^ ^^^^^^^^^
11-
>arg : { index?: number | undefined; }
12-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11+
>arg : { index?: number; }
12+
> : ^^^^^^^^^^ ^^^
1313
>index : number | undefined
1414
> : ^^^^^^^^^^^^^^^^^^
1515

tests/baselines/reference/checkJsxIntersectionElementPropsType.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ declare class Component<P> {
2323
class C<T> extends Component<{ x?: boolean; } & T> {}
2424
>C : C<T>
2525
> : ^^^^
26-
>Component : Component<{ x?: boolean | undefined; } & T>
27-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
26+
>Component : Component<{ x?: boolean; } & T>
27+
> : ^^^^^^^^^^^^^^^^ ^^^^^^^^
2828
>x : boolean | undefined
2929
> : ^^^^^^^^^^^^^^^^^^^
3030

tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.types

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ declare class Component<P> {
1616
> : ^^^
1717

1818
readonly props: Readonly<P> & Readonly<{ children?: {} }>;
19-
>props : Readonly<P> & Readonly<{ children?: {} | undefined; }>
20-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19+
>props : Readonly<P> & Readonly<{ children?: {}; }>
20+
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^
2121
>children : {} | undefined
2222
> : ^^^^^^^^^^^^^^
2323
}
@@ -42,8 +42,8 @@ interface ComponentClass<P = {}> {
4242
}
4343
interface FunctionComponent<P = {}> {
4444
(props: P & { children?: {} }, context?: any): {} | null;
45-
>props : P & { children?: {} | undefined; }
46-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
45+
>props : P & { children?: {}; }
46+
> : ^^^^^^^^^^^^^^^^^ ^^^
4747
>children : {} | undefined
4848
> : ^^^^^^^^^^^^^^
4949
>context : any

tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ declare function createMachine<
3333
TTypesMeta extends TypegenEnabled | TypegenDisabled = TypegenDisabled
3434
>(
3535
config: {
36-
>config : { types?: TTypesMeta | undefined; }
37-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
36+
>config : { types?: TTypesMeta; }
37+
> : ^^^^^^^^^^ ^^^
3838

3939
types?: TTypesMeta;
4040
>types : TTypesMeta | undefined

tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ declare function match<T>(cb: (value: T) => boolean): T;
1414
declare function foo(pos: { x?: number; y?: number }): boolean;
1515
>foo : (pos: { x?: number; y?: number; }) => boolean
1616
> : ^^^^^^ ^^^^^
17-
>pos : { x?: number | undefined; y?: number | undefined; }
18-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17+
>pos : { x?: number; y?: number; }
18+
> : ^^^^^^ ^^^^^^ ^^^
1919
>x : number | undefined
2020
> : ^^^^^^^^^^^^^^^^^^
2121
>y : number | undefined

tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ declare function id3<T extends (x: { foo: any }) => any>(input: T): T;
2828
declare function id4<T extends (x: { foo?: number }) => any>(input: T): T;
2929
>id4 : <T extends (x: { foo?: number; }) => any>(input: T) => T
3030
> : ^ ^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^ ^^^^^
31-
>x : { foo?: number | undefined; }
32-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31+
>x : { foo?: number; }
32+
> : ^^^^^^^^ ^^^
3333
>foo : number | undefined
3434
> : ^^^^^^^^^^^^^^^^^^
3535
>input : T

tests/baselines/reference/controlFlowAliasing.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1284,8 +1284,8 @@ class C11 {
12841284
function f40(obj: { kind: 'foo', foo?: string } | { kind: 'bar', bar?: number }) {
12851285
>f40 : (obj: { kind: 'foo'; foo?: string; } | { kind: 'bar'; bar?: number; }) => void
12861286
> : ^^^^^^ ^^^^^^^^^
1287-
>obj : { kind: 'foo'; foo?: string | undefined; } | { kind: 'bar'; bar?: number | undefined; }
1288-
> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1287+
>obj : { kind: 'foo'; foo?: string; } | { kind: 'bar'; bar?: number; }
1288+
> : ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^ ^^^
12891289
>kind : "foo"
12901290
> : ^^^^^
12911291
>foo : string | undefined

tests/baselines/reference/controlFlowDeleteOperator.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ function f() {
66
> : ^^^^^^^^^^
77

88
let x: { a?: number | string, b: number | string } = { b: 1 };
9-
>x : { a?: string | number | undefined; b: number | string; }
10-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
9+
>x : { a?: number | string; b: number | string; }
10+
> : ^^^^^^ ^^^^^ ^^^
1111
>a : string | number | undefined
1212
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
1313
>b : string | number

tests/baselines/reference/controlFlowInitializedDestructuringVariables.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
=== controlFlowInitializedDestructuringVariables.ts ===
44
declare const obj: { a?: string, b?: number };
5-
>obj : { a?: string | undefined; b?: number | undefined; }
6-
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5+
>obj : { a?: string; b?: number; }
6+
> : ^^^^^^ ^^^^^^ ^^^
77
>a : string | undefined
88
> : ^^^^^^^^^^^^^^^^^^
99
>b : number | undefined

0 commit comments

Comments
 (0)