🤖 User test baselines have changed#26490
Conversation
2693436 to
28c4461
Compare
sandersn
left a comment
There was a problem hiding this comment.
I still need to check the rest of chrome-devtools' failures, but I filed one bug and also need to delete var Animations = {} from chrome-devtools' definitions.js shim.
| lib/FrameManager.js(685,57): error TS2345: Argument of type 'string | number | Function' is not assignable to parameter of type 'number'. | ||
| Type 'string' is not assignable to type 'number'. | ||
| lib/FrameManager.js(773,15): error TS2503: Cannot find namespace 'Protocol'. | ||
| lib/NetworkManager.js(82,5): error TS2322: Type '{}' is not assignable to type '{ [x: string]: string; }'. |
| node_modules/npm/lib/uninstall.js(46,50): error TS2339: Property 'run' does not exist on type 'Uninstaller'. | ||
| node_modules/npm/lib/uninstall.js(51,27): error TS2507: Type 'typeof Installer' is not a constructor function type. | ||
| node_modules/npm/lib/uninstall.js(70,36): error TS2339: Property 'idealTree' does not exist on type 'Uninstaller'. | ||
| node_modules/npm/lib/uninstall.js(69,11): error TS2340: Only public and protected methods of the base class are accessible via the 'super' keyword. |
| node_modules/npm/lib/help.js(199,14): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never'. | ||
| node_modules/npm/lib/help.js(199,22): error TS2339: Property 'commands' does not exist on type 'typeof EventEmitter'. | ||
| node_modules/npm/lib/help.js(206,33): error TS2339: Property 'length' does not exist on type 'never'. | ||
| node_modules/npm/lib/help.js(207,14): error TS2339: Property 'split' does not exist on type 'never'. |
There was a problem hiding this comment.
No more implicit any when indexing never (repros in ts too):
function f(l: never, x: any) {
var x = l[0] // should be implicit any error here
x.length // and no error here
}With noImplicitAny on, you should get a noImplicitAny error, and instead you get an error on the next line that 'length' does not exist on type 'never'.
Filed #26493
| node_modules/chrome-devtools-frontend/front_end/cm_headless/headlesscodemirror.js(74,1): error TS2719: Type 'typeof StringStream' is not assignable to type 'typeof StringStream'. Two different types with this name exist, but they are unrelated. | ||
| Type 'StringStream' is not assignable to type 'StringStream & { backUp: (n: any) => void; column: () => void; current: () => void; eat: (match: any) => void; eatSpace: () => void; eatWhile: (match: any) => void; eol: () => void; indentation: () => void; ... 5 more ...; sol: () => void; }'. | ||
| Type 'StringStream' is not assignable to type '{ backUp: (n: any) => void; column: () => void; current: () => void; eat: (match: any) => void; eatSpace: () => void; eatWhile: (match: any) => void; eol: () => void; indentation: () => void; match: (pattern: string | RegExp, consume?: boolean, caseInsensitive?: boolean) => void; ... 4 more ...; sol: () => void; }'. | ||
| Property 'backUp' is missing in type 'StringStream'. |
There was a problem hiding this comment.
from yesterday, already tracked by a bug
| @@ -14,6 +14,8 @@ Standard output: | |||
| ../../../../built/local/lib.es5.d.ts(1346,11): error TS2300: Duplicate identifier 'ArrayLike'. | |||
| ../../../../built/local/lib.es5.d.ts(1382,6): error TS2300: Duplicate identifier 'Record'. | |||
| ../../../../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 '{}', but here has type 'NodeModule'. | |||
| definitions.js(3,5): error TS2322: Type '{}' is not assignable to type 'typeof Animation'. | |||
| Property 'AnimationGroupPreviewUI' is missing in type '{}'. | |||
There was a problem hiding this comment.
new, apparently we can now resolve Animation's real declaration in the DOM (maybe this is a result of a recent DOM change?). The fix is to delete var Animation = {} from definitions.js.
| @@ -29,6 +31,8 @@ node_modules/chrome-devtools-frontend/front_end/Runtime.js(270,9): error TS2322: | |||
| Type 'void' is not assignable to type 'undefined'. | |||
| node_modules/chrome-devtools-frontend/front_end/Runtime.js(280,5): error TS2322: Type 'Promise<void>' is not assignable to type 'Promise<undefined>'. | |||
| node_modules/chrome-devtools-frontend/front_end/Runtime.js(283,7): error TS2554: Expected 2-3 arguments, but got 1. | |||
| node_modules/chrome-devtools-frontend/front_end/Runtime.js(527,9): error TS2322: Type 'Function' is not assignable to type 'new () => any'. | |||
| Type 'Function' provides no match for the signature 'new (): any'. | |||
There was a problem hiding this comment.
Function isn't assignable to new(): any anymore. Not sure why yet, but seems correct?
There was a problem hiding this comment.
I think something else was hiding this error, because it's in an error in TS and JS, and has been for a while.
| @@ -218,15 +222,6 @@ node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeV | |||
| node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(522,20): error TS2339: Property 'createTextChild' does not exist on type 'Element'. | |||
| node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(535,24): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. | |||
| node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(619,26): error TS2339: Property 'removeChildren' does not exist on type 'Element'. | |||
| node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilitySidebarView.js(15,37): error TS2345: Argument of type 'AXBreadcrumbsPane' is not assignable to parameter of type '{ viewId(): string; title(): string; isCloseable(): boolean; isTransient(): boolean; toolbarItems(): Promise<({ item(): any & any; } & { item(): any & any; })[]>; widget(): Promise<Widget>; disposeView(): void; }'. | |||
There was a problem hiding this comment.
Looks like these were previously being compared with excess property checking, which makes no sense for a class source and target. This is an improvement.
| Property '_callback' does not exist on type '{ renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T, index: number): void; beginEdit(item: T): Editor<T>; commitEdit(item: T, editor: Editor<T>, isNew: boolean): void; }'. | ||
| node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(286,5): error TS2322: Type 'ListWidget<any>' is not assignable to type '{ renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T, index: number): void; beginEdit(item: T): Editor<T>; commitEdit(item: T, editor: Editor<T>, isNew: boolean): void; } & { ...; }'. | ||
| Type 'ListWidget<any>' is not assignable to type '{ renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T, index: number): void; beginEdit(item: T): Editor<T>; commitEdit(item: T, editor: Editor<T>, isNew: boolean): void; }'. | ||
| Property 'renderItem' is missing in type 'ListWidget<any>'. |
There was a problem hiding this comment.
exposed by excess property check removal.
Wow, this is a bad one:
var UI = {}
UI.ListWidget = class { };
UI.ListWidget.Delegate = function() {};
UI.ListWidget.Delegate.prototype = {
renderItem() {},
};
/** @type {UI.ListWidget} */
var l = new UI.ListWidget();The type of l isn't UI.ListWidget, but { renderItem() {} } & { renderItem() {} } -- the structural type of UI.ListWidget.Delegate, duplicated.
Filed #26496
| Types of property 'itemForIndex' are incompatible. | ||
| Type '(index: number) => HeapSnapshotEdge' is not assignable to type '(newIndex: number) => { itemIndex(): number; serialize(): any; }'. | ||
| Type 'HeapSnapshotEdge' is not assignable to type '{ itemIndex(): number; serialize(): any; }'. | ||
| Property '_snapshot' does not exist on type '{ itemIndex(): number; serialize(): any; }'. |
There was a problem hiding this comment.
Removing the excess property error exposes a deeper excess property error.
| @@ -8280,20 +8173,16 @@ node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.j | |||
| node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(285,26): error TS2339: Property 'createChild' does not exist on type 'Element'. | |||
| node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemMapping.js(65,22): error TS2694: Namespace 'Common' has no exported member 'Event'. | |||
| node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemMapping.js(73,22): error TS2694: Namespace 'Common' has no exported member 'Event'. | |||
| node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemMapping.js(180,46): error TS2339: Property 'remove' does not exist on type 'Entry[]'. | |||
There was a problem hiding this comment.
we are no longer ignoring the type annotation on
/** @type {!Object.<string, !Array.<!Persistence.FileSystemMapping.Entry>>} */
this._fileSystemMappings = {};so we know that Array has no method remove. This is a good error.
| node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(397,35): error TS2345: Argument of type 'this' is not assignable to parameter of type '{ showProfile(profile: ProfileHeader): Widget; showObject(snapshotObjectId: any, perspectiveName: string): void; }'. | ||
| Type 'ProfilesPanel' is not assignable to type '{ showProfile(profile: ProfileHeader): Widget; showObject(snapshotObjectId: any, perspectiveName: string): void; }'. | ||
| Property '_profileTypes' does not exist on type '{ showProfile(profile: ProfileHeader): Widget; showObject(snapshotObjectId: any, perspectiveName: string): void; }'. | ||
| node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(494,9): error TS2322: Type 'ProfileGroupSidebarTreeElement' is not assignable to type 'this'. |
There was a problem hiding this comment.
same: we now use the declared type of a maplike.
| Types of property 'createElementForItem' are incompatible. | ||
| Type '(item: number) => Element' is not assignable to type '(item: T) => Element'. | ||
| Types of parameters 'item' and 'item' are incompatible. | ||
| Type 'T' is not assignable to type 'number'. |
There was a problem hiding this comment.
this exposes the bug that we don't treat class type parameters correctly in methods that are part of a prototype assignment. See #24230
| @@ -11279,6 +11076,8 @@ node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSid | |||
| node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(203,26): error TS2555: Expected at least 2 arguments, but got 1. | |||
| node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(206,28): error TS2555: Expected at least 2 arguments, but got 1. | |||
| node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptCompilerPlugin.js(51,5): error TS2322: Type 'Timer' is not assignable to type 'number'. | |||
| node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(60,50): error TS2345: Argument of type 'Event' is not assignable to parameter of type 'MouseEvent | KeyboardEvent'. | |||
| Type 'Event' is not assignable to type 'KeyboardEvent'. | |||
There was a problem hiding this comment.
Probably comes from DOM change?
|
I'm going to merge these changes just so future changes are easier to diff. I think the failures are tracked well enough right now. |
Please review the diff and merge if no changes are unexpected.
You can view the build log here.
cc @weswigham @sandersn @RyanCavanaugh