Skip to content

🤖 User test baselines have changed #26490

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 16, 2018

Conversation

typescript-bot
Copy link
Collaborator

Please review the diff and merge if no changes are unexpected.
You can view the build log here.

cc @weswigham @sandersn @RyanCavanaugh

Copy link
Member

@sandersn sandersn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@@ -27,8 +27,6 @@ lib/FrameManager.js(127,15): error TS2503: Cannot find namespace 'Protocol'.
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; }'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix from puppeteer's side.

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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will be fixed tonight

@@ -326,6 +326,8 @@ node_modules/npm/lib/help.js(196,26): error TS2339: Property 'commands' does not
node_modules/npm/lib/help.js(197,22): error TS2339: Property 'deref' does not exist on type 'typeof EventEmitter'.
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'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intended effect of #26340

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'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 '{}'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR is now available at #26494

@@ -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'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function isn't assignable to new(): any anymore. Not sure why yet, but seems correct?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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; }'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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; }'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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[]'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably comes from DOM change?

@sandersn
Copy link
Member

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.

@sandersn sandersn merged commit 2ee4cee into microsoft:master Aug 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants