Fix devtools test (#20731)

* Fix devtools test

* Add small test case mimicing the issue from the user test
This commit is contained in:
Wesley Wigham 2017-12-18 14:47:45 -08:00 committed by GitHub
parent 60bd262437
commit 6c15fc6634
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 89 additions and 2 deletions

View File

@ -4682,6 +4682,7 @@ namespace ts {
}
else if (isJSDocPropertyTag(declaration)
|| isPropertyAccessExpression(declaration)
|| isIdentifier(declaration)
|| isMethodDeclaration(declaration) && !isObjectLiteralMethod(declaration)) {
// TODO: Mimics old behavior from incorrect usage of getWidenedTypeForVariableLikeDeclaration, but seems incorrect
type = tryGetTypeFromEffectiveTypeNode(declaration) || anyType;

View File

@ -0,0 +1,28 @@
=== tests/cases/conformance/salsa/index.js ===
Common.Item = class I {}
>Common : Symbol(Common, Decl(index.js, 0, 0), Decl(roots.js, 0, 3))
>I : Symbol(I, Decl(index.js, 0, 13))
Common.Object = class extends Common.Item {}
>Common : Symbol(Common, Decl(index.js, 0, 0), Decl(roots.js, 0, 3))
>Common.Item : Symbol(Common.Item, Decl(index.js, 0, 0))
>Common : Symbol(Common, Decl(index.js, 0, 0), Decl(roots.js, 0, 3))
>Item : Symbol(Common.Item, Decl(index.js, 0, 0))
Workspace.Object = class extends Common.Object {}
>Workspace : Symbol(Workspace, Decl(index.js, 1, 44), Decl(roots.js, 1, 3))
>Common.Object : Symbol(Common.Object, Decl(index.js, 0, 24))
>Common : Symbol(Common, Decl(index.js, 0, 0), Decl(roots.js, 0, 3))
>Object : Symbol(Common.Object, Decl(index.js, 0, 24))
/** @type {Workspace.Object} */
var am;
>am : Symbol(am, Decl(index.js, 6, 3))
=== tests/cases/conformance/salsa/roots.js ===
var Common = {};
>Common : Symbol(Common, Decl(index.js, 0, 0), Decl(roots.js, 0, 3))
var Workspace = {};
>Workspace : Symbol(Workspace, Decl(index.js, 1, 44), Decl(roots.js, 1, 3))

View File

@ -0,0 +1,42 @@
=== tests/cases/conformance/salsa/index.js ===
Common.Item = class I {}
>Common.Item = class I {} : typeof I
>Common.Item : any
>Common : any
>Item : any
>class I {} : typeof I
>I : typeof I
Common.Object = class extends Common.Item {}
>Common.Object = class extends Common.Item {} : typeof (Anonymous class)
>Common.Object : any
>Common : any
>Object : any
>class extends Common.Item {} : typeof (Anonymous class)
>Common.Item : any
>Common : any
>Item : any
Workspace.Object = class extends Common.Object {}
>Workspace.Object = class extends Common.Object {} : typeof (Anonymous class)
>Workspace.Object : any
>Workspace : any
>Object : any
>class extends Common.Object {} : typeof (Anonymous class)
>Common.Object : any
>Common : any
>Object : any
/** @type {Workspace.Object} */
var am;
>am : (Anonymous class)
=== tests/cases/conformance/salsa/roots.js ===
var Common = {};
>Common : any
>{} : { [x: string]: any; }
var Workspace = {};
>Workspace : any
>{} : { [x: string]: any; }

View File

@ -12,8 +12,8 @@ Standard output:
../../../../built/local/lib.dom.d.ts(9253,13): error TS2300: Duplicate identifier 'Request'.
../../../../built/local/lib.dom.d.ts(13511,11): error TS2300: Duplicate identifier 'Window'.
../../../../built/local/lib.dom.d.ts(13700,13): error TS2300: Duplicate identifier 'Window'.
../../../../built/local/lib.es5.d.ts(1322,11): error TS2300: Duplicate identifier 'ArrayLike'.
../../../../built/local/lib.es5.d.ts(1351,6): error TS2300: Duplicate identifier 'Record'.
../../../../built/local/lib.es5.d.ts(1321,11): error TS2300: Duplicate identifier 'ArrayLike'.
../../../../built/local/lib.es5.d.ts(1350,6): error TS2300: Duplicate identifier 'Record'.
node_modules/chrome-devtools-frontend/front_end/Runtime.js(43,8): error TS2339: Property '_importScriptPathPrefix' does not exist on type 'Window'.
node_modules/chrome-devtools-frontend/front_end/Runtime.js(95,28): error TS2339: Property 'response' does not exist on type 'EventTarget'.
node_modules/chrome-devtools-frontend/front_end/Runtime.js(147,37): error TS2339: Property '_importScriptPathPrefix' does not exist on type 'Window'.

View File

@ -0,0 +1,16 @@
// @noEmit: true
// @allowJs: true
// @checkJs: true
// @target: es3
// @filename: index.js
Common.Item = class I {}
Common.Object = class extends Common.Item {}
Workspace.Object = class extends Common.Object {}
/** @type {Workspace.Object} */
var am;
// @filename: roots.js
var Common = {};
var Workspace = {};