Skip to content

Commit 25f7e0b

Browse files
authored
Fix crash after var = require('x') type resolution (microsoft#22452)
* Harden var x=require name resolution+update chrome baseline Chrome-devtools crashed after the new `var = require('x')` resolution because it forgot to check whether the declaration had an initializer. * Update chrome-devtools-frontend baseline
1 parent 58bb30a commit 25f7e0b

File tree

2 files changed

+39
-14
lines changed

2 files changed

+39
-14
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2051,6 +2051,7 @@ namespace ts {
20512051
}
20522052
if (namespace.valueDeclaration &&
20532053
isVariableDeclaration(namespace.valueDeclaration) &&
2054+
namespace.valueDeclaration.initializer &&
20542055
isCommonJsRequire(namespace.valueDeclaration.initializer)) {
20552056
const moduleName = (namespace.valueDeclaration.initializer as CallExpression).arguments[0] as StringLiteral;
20562057
const moduleSym = resolveExternalModuleName(moduleName, moduleName);

tests/baselines/reference/user/chrome-devtools-frontend.log

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
Exit Code: 1
22
Standard output:
3-
../../../../built/local/lib.dom.d.ts(2255,11): error TS2300: Duplicate identifier 'CSSRule'.
4-
../../../../built/local/lib.dom.d.ts(2274,13): error TS2300: Duplicate identifier 'CSSRule'.
5-
../../../../built/local/lib.dom.d.ts(2964,11): error TS2300: Duplicate identifier 'Comment'.
6-
../../../../built/local/lib.dom.d.ts(2968,13): error TS2300: Duplicate identifier 'Comment'.
7-
../../../../built/local/lib.dom.d.ts(4605,11): error TS2300: Duplicate identifier 'Event'.
8-
../../../../built/local/lib.dom.d.ts(4630,13): error TS2300: Duplicate identifier 'Event'.
9-
../../../../built/local/lib.dom.d.ts(10082,11): error TS2300: Duplicate identifier 'Position'.
10-
../../../../built/local/lib.dom.d.ts(10087,13): error TS2300: Duplicate identifier 'Position'.
11-
../../../../built/local/lib.dom.d.ts(10575,11): error TS2300: Duplicate identifier 'Request'.
12-
../../../../built/local/lib.dom.d.ts(10593,13): error TS2300: Duplicate identifier 'Request'.
13-
../../../../built/local/lib.dom.d.ts(14907,11): error TS2300: Duplicate identifier 'Window'.
14-
../../../../built/local/lib.dom.d.ts(15102,13): error TS2300: Duplicate identifier 'Window'.
3+
../../../../built/local/lib.dom.d.ts(2257,11): error TS2300: Duplicate identifier 'CSSRule'.
4+
../../../../built/local/lib.dom.d.ts(2276,13): error TS2300: Duplicate identifier 'CSSRule'.
5+
../../../../built/local/lib.dom.d.ts(2966,11): error TS2300: Duplicate identifier 'Comment'.
6+
../../../../built/local/lib.dom.d.ts(2970,13): error TS2300: Duplicate identifier 'Comment'.
7+
../../../../built/local/lib.dom.d.ts(4607,11): error TS2300: Duplicate identifier 'Event'.
8+
../../../../built/local/lib.dom.d.ts(4632,13): error TS2300: Duplicate identifier 'Event'.
9+
../../../../built/local/lib.dom.d.ts(10084,11): error TS2300: Duplicate identifier 'Position'.
10+
../../../../built/local/lib.dom.d.ts(10089,13): error TS2300: Duplicate identifier 'Position'.
11+
../../../../built/local/lib.dom.d.ts(10577,11): error TS2300: Duplicate identifier 'Request'.
12+
../../../../built/local/lib.dom.d.ts(10595,13): error TS2300: Duplicate identifier 'Request'.
13+
../../../../built/local/lib.dom.d.ts(14909,11): error TS2300: Duplicate identifier 'Window'.
14+
../../../../built/local/lib.dom.d.ts(15104,13): error TS2300: Duplicate identifier 'Window'.
1515
../../../../built/local/lib.es5.d.ts(1328,11): error TS2300: Duplicate identifier 'ArrayLike'.
1616
../../../../built/local/lib.es5.d.ts(1364,6): error TS2300: Duplicate identifier 'Record'.
1717
../../../../node_modules/@types/node/index.d.ts(150,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'module' must be of type '{ [x: string]: any; }', but here has type 'NodeModule'.
18+
node_modules/chrome-devtools-frontend/front_end/Runtime.js(42,47): error TS2339: Property 'origin' does not exist on type 'string | Location'.
19+
Property 'origin' does not exist on type 'string'.
20+
node_modules/chrome-devtools-frontend/front_end/Runtime.js(42,70): error TS2339: Property 'pathname' does not exist on type 'string | Location'.
21+
Property 'pathname' does not exist on type 'string'.
1822
node_modules/chrome-devtools-frontend/front_end/Runtime.js(43,8): error TS2339: Property '_importScriptPathPrefix' does not exist on type 'Window'.
1923
node_modules/chrome-devtools-frontend/front_end/Runtime.js(95,28): error TS2339: Property 'response' does not exist on type 'EventTarget'.
2024
node_modules/chrome-devtools-frontend/front_end/Runtime.js(147,37): error TS2339: Property '_importScriptPathPrefix' does not exist on type 'Window'.
@@ -27,6 +31,10 @@ node_modules/chrome-devtools-frontend/front_end/Runtime.js(270,9): error TS2322:
2731
Type 'void' is not assignable to type 'undefined'.
2832
node_modules/chrome-devtools-frontend/front_end/Runtime.js(280,5): error TS2322: Type 'Promise<void>' is not assignable to type 'Promise<undefined>'.
2933
node_modules/chrome-devtools-frontend/front_end/Runtime.js(283,7): error TS2554: Expected 2-3 arguments, but got 1.
34+
node_modules/chrome-devtools-frontend/front_end/Runtime.js(299,5): error TS2322: Type 'string | { (regexp: string | RegExp): number; (searcher: { [Symbol.search](string: string): numbe...' is not assignable to type 'string'.
35+
Type '{ (regexp: string | RegExp): number; (searcher: { [Symbol.search](string: string): number; }): nu...' is not assignable to type 'string'.
36+
node_modules/chrome-devtools-frontend/front_end/Runtime.js(355,35): error TS2339: Property 'href' does not exist on type 'string | Location'.
37+
Property 'href' does not exist on type 'string'.
3038
node_modules/chrome-devtools-frontend/front_end/Runtime.js(398,24): error TS1138: Parameter declaration expected.
3139
node_modules/chrome-devtools-frontend/front_end/Runtime.js(398,24): error TS8024: JSDoc '@param' tag has name 'function', but there is no parameter with that name.
3240
node_modules/chrome-devtools-frontend/front_end/Runtime.js(527,9): error TS2322: Type 'Function' is not assignable to type 'new () => any'.
@@ -42,6 +50,10 @@ node_modules/chrome-devtools-frontend/front_end/Runtime.js(715,7): error TS2322:
4250
node_modules/chrome-devtools-frontend/front_end/Runtime.js(721,5): error TS2322: Type 'Promise<undefined[]>' is not assignable to type 'Promise<undefined>'.
4351
node_modules/chrome-devtools-frontend/front_end/Runtime.js(729,7): error TS2322: Type 'Promise<void>' is not assignable to type 'Promise<undefined>'.
4452
node_modules/chrome-devtools-frontend/front_end/Runtime.js(854,36): error TS2339: Property 'eval' does not exist on type 'Window'.
53+
node_modules/chrome-devtools-frontend/front_end/Runtime.js(1060,16): error TS2339: Property 'href' does not exist on type 'string | Location'.
54+
Property 'href' does not exist on type 'string'.
55+
node_modules/chrome-devtools-frontend/front_end/Runtime.js(1063,41): error TS2339: Property 'origin' does not exist on type 'string | Location'.
56+
Property 'origin' does not exist on type 'string'.
4557
node_modules/chrome-devtools-frontend/front_end/Runtime.js(1083,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value.
4658
node_modules/chrome-devtools-frontend/front_end/Runtime.js(1088,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value.
4759
node_modules/chrome-devtools-frontend/front_end/Tests.js(107,5): error TS2322: Type 'Timer' is not assignable to type 'number'.
@@ -4614,6 +4626,8 @@ node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(769,67):
46144626
node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(770,23): error TS2495: Type 'IterableIterator<string>' is not an array type or a string type.
46154627
node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(779,64): error TS2339: Property 'copyText' does not exist on type 'typeof InspectorFrontendHost'.
46164628
node_modules/chrome-devtools-frontend/front_end/components/Reload.js(7,27): error TS2339: Property 'setIsDocked' does not exist on type 'typeof InspectorFrontendHost'.
4629+
node_modules/chrome-devtools-frontend/front_end/components/Reload.js(8,19): error TS2339: Property 'reload' does not exist on type 'string | Location'.
4630+
Property 'reload' does not exist on type 'string'.
46174631
node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(8,9): error TS2339: Property 'ConsoleContextSelector' does not exist on type '{ new (): Console; prototype: Console; }'.
46184632
node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(10,17): error TS2315: Type '(Anonymous class)' is not generic.
46194633
node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(12,17): error TS2315: Type '(Anonymous class)' is not generic.
@@ -6001,6 +6015,8 @@ node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(692,21
60016015
node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(741,50): error TS2694: Namespace 'InspectorFrontendHostAPI' has no exported member 'ContextMenuDescriptor'.
60026016
node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(872,10): error TS2339: Property 'InspectorFrontendHost' does not exist on type 'Window'.
60036017
node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1123,12): error TS2339: Property 'Object' does not exist on type 'Window'.
6018+
node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1203,32): error TS2339: Property 'indexOf' does not exist on type 'string | { (regexp: string | RegExp): number; (searcher: { [Symbol.search](string: string): numbe...'.
6019+
Property 'indexOf' does not exist on type '{ (regexp: string | RegExp): number; (searcher: { [Symbol.search](string: string): number; }): nu...'.
60046020
node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1207,17): error TS2339: Property 'KeyboardEvent' does not exist on type 'Window'.
60056021
node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1208,36): error TS2339: Property 'KeyboardEvent' does not exist on type 'Window'.
60066022
node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1214,46): error TS2339: Property 'keyCode' does not exist on type 'PropertyDescriptor'.
@@ -6958,6 +6974,8 @@ node_modules/chrome-devtools-frontend/front_end/elements_test_runner/StylesUpdat
69586974
node_modules/chrome-devtools-frontend/front_end/elements_test_runner/StylesUpdateLinksTestRunner.js(119,24): error TS2551: Property 'panels' does not exist on type 'typeof UI'. Did you mean 'Panel'?
69596975
node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(31,5): error TS2554: Expected 2 arguments, but got 1.
69606976
node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(56,22): error TS2694: Namespace 'Common' has no exported member 'Event'.
6977+
node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(65,31): error TS2339: Property 'href' does not exist on type 'string | Location'.
6978+
Property 'href' does not exist on type 'string'.
69616979
node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(88,7): error TS2554: Expected 2 arguments, but got 1.
69626980
node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(92,22): error TS2694: Namespace 'Common' has no exported member 'Event'.
69636981
node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(105,22): error TS2694: Namespace 'Common' has no exported member 'Event'.
@@ -7444,6 +7462,8 @@ node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(145,2
74447462
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(149,19): error TS1110: Type expected.
74457463
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(203,23): error TS2339: Property 'sendRequest' does not exist on type '{ _callbacks: { [x: string]: any; }; _handlers: { [x: string]: any; }; _lastRequestId: number; _l...'.
74467464
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(207,23): error TS2339: Property 'sendRequest' does not exist on type '{ _callbacks: { [x: string]: any; }; _handlers: { [x: string]: any; }; _lastRequestId: number; _l...'.
7465+
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(208,96): error TS2339: Property 'hostname' does not exist on type 'string | Location'.
7466+
Property 'hostname' does not exist on type 'string'.
74477467
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(224,23): error TS2339: Property 'sendRequest' does not exist on type '{ _callbacks: { [x: string]: any; }; _handlers: { [x: string]: any; }; _lastRequestId: number; _l...'.
74487468
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(243,23): error TS2339: Property 'sendRequest' does not exist on type '{ _callbacks: { [x: string]: any; }; _handlers: { [x: string]: any; }; _lastRequestId: number; _l...'.
74497469
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(249,53): error TS2339: Property 'nextObjectId' does not exist on type '{ _callbacks: { [x: string]: any; }; _handlers: { [x: string]: any; }; _lastRequestId: number; _l...'.
@@ -7518,6 +7538,8 @@ node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(68
75187538
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(708,31): error TS2339: Property 'setInjectedScriptForOrigin' does not exist on type 'typeof InspectorFrontendHost'.
75197539
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(712,14): error TS2339: Property 'src' does not exist on type 'Element'.
75207540
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(713,14): error TS2339: Property 'style' does not exist on type 'Element'.
7541+
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(724,38): error TS2339: Property 'origin' does not exist on type 'string | Location'.
7542+
Property 'origin' does not exist on type 'string'.
75217543
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(765,31): error TS2694: Namespace 'Common' has no exported member 'Event'.
75227544
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(777,31): error TS2694: Namespace 'Common' has no exported member 'Event'.
75237545
node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(839,43): error TS2694: Namespace '(Anonymous class)' has no exported member 'Record'.
@@ -8710,6 +8732,8 @@ node_modules/chrome-devtools-frontend/front_end/main/Main.js(820,47): error TS25
87108732
node_modules/chrome-devtools-frontend/front_end/main/Main.js(822,25): error TS2339: Property 'createChild' does not exist on type 'Element'.
87118733
node_modules/chrome-devtools-frontend/front_end/main/Main.js(823,9): error TS2555: Expected at least 2 arguments, but got 1.
87128734
node_modules/chrome-devtools-frontend/front_end/main/Main.js(824,38): error TS2555: Expected at least 2 arguments, but got 1.
8735+
node_modules/chrome-devtools-frontend/front_end/main/Main.js(824,99): error TS2339: Property 'reload' does not exist on type 'string | Location'.
8736+
Property 'reload' does not exist on type 'string'.
87138737
node_modules/chrome-devtools-frontend/front_end/main/Main.js(825,25): error TS2339: Property 'createChild' does not exist on type 'Element'.
87148738
node_modules/chrome-devtools-frontend/front_end/main/Main.js(833,28): error TS2345: Argument of type 'symbol' is not assignable to parameter of type '{ [x: string]: any; SetExactSize: symbol; SetExactWidthMaxHeight: symbol; MeasureContent: symbol; }'.
87158739
node_modules/chrome-devtools-frontend/front_end/main/Main.js(836,5): error TS2554: Expected 2 arguments, but got 1.
@@ -15140,8 +15164,8 @@ node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1258,2
1514015164
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1279,81): error TS2345: Argument of type 'Function' is not assignable to parameter of type '(value: any) => any'.
1514115165
Type 'Function' provides no match for the signature '(value: any): any'.
1514215166
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1304,3): error TS2322: Type 'Promise<void>' is not assignable to type 'Promise<undefined>'.
15143-
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1310,30): error TS2339: Property 'getAttribute' does not exist on type 'Node'.
15144-
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1311,44): error TS2339: Property 'getAttribute' does not exist on type 'Node'.
15167+
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1310,30): error TS2339: Property 'getAttribute' does not exist on type 'Node & ChildNode'.
15168+
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1311,44): error TS2339: Property 'getAttribute' does not exist on type 'Node & ChildNode'.
1514515169
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1388,16): error TS2339: Property 'testRunner' does not exist on type 'Window'.
1514615170
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1424,14): error TS2339: Property '_initializeTargetForStartupTest' does not exist on type 'typeof TestRunner'.
1514715171
node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1425,37): error TS2339: Property '_instanceForTest' does not exist on type 'typeof (Anonymous class)'.

0 commit comments

Comments
 (0)