Merge pull request #7036 from RyanCavanaugh/port7007
Port PR 7007 to release 1.8
This commit is contained in:
commit
d5538f0b2d
6 changed files with 58 additions and 4 deletions
|
@ -2621,7 +2621,7 @@ namespace ts {
|
|||
function getJSDocTypeForVariableLikeDeclarationFromJSDocComment(declaration: VariableLikeDeclaration): JSDocType {
|
||||
// First, see if this node has an @type annotation on it directly.
|
||||
const typeTag = getJSDocTypeTag(declaration);
|
||||
if (typeTag) {
|
||||
if (typeTag && typeTag.typeExpression) {
|
||||
return typeTag.typeExpression.type;
|
||||
}
|
||||
|
||||
|
@ -2631,7 +2631,7 @@ namespace ts {
|
|||
|
||||
// @type annotation might have been on the variable statement, try that instead.
|
||||
const annotation = getJSDocTypeTag(declaration.parent.parent);
|
||||
if (annotation) {
|
||||
if (annotation && annotation.typeExpression) {
|
||||
return annotation.typeExpression.type;
|
||||
}
|
||||
}
|
||||
|
@ -7447,7 +7447,7 @@ namespace ts {
|
|||
|
||||
function getTypeForThisExpressionFromJSDoc(node: Node) {
|
||||
const typeTag = getJSDocTypeTag(node);
|
||||
if (typeTag && typeTag.typeExpression.type.kind === SyntaxKind.JSDocFunctionType) {
|
||||
if (typeTag && typeTag.typeExpression && typeTag.typeExpression.type && typeTag.typeExpression.type.kind === SyntaxKind.JSDocFunctionType) {
|
||||
const jsDocFunctionType = <JSDocFunctionType>typeTag.typeExpression.type;
|
||||
if (jsDocFunctionType.parameters.length > 0 && jsDocFunctionType.parameters[0].type.kind === SyntaxKind.JSDocThisType) {
|
||||
return getTypeFromTypeNode(jsDocFunctionType.parameters[0].type);
|
||||
|
|
|
@ -904,7 +904,8 @@ namespace Harness {
|
|||
{ name: "includeBuiltFile", type: "string" },
|
||||
{ name: "fileName", type: "string" },
|
||||
{ name: "libFiles", type: "string" },
|
||||
{ name: "noErrorTruncation", type: "boolean" }
|
||||
{ name: "noErrorTruncation", type: "boolean" },
|
||||
{ name: "suppressOutputPathCheck", type: "boolean" }
|
||||
];
|
||||
|
||||
let optionsIndex: ts.Map<ts.CommandLineOption>;
|
||||
|
|
17
tests/baselines/reference/malformedTags.js
Normal file
17
tests/baselines/reference/malformedTags.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
//// [myFile02.js]
|
||||
|
||||
/**
|
||||
* Checks if `value` is classified as an `Array` object.
|
||||
*
|
||||
* @type Function
|
||||
*/
|
||||
var isArray = Array.isArray;
|
||||
|
||||
|
||||
//// [myFile02.js]
|
||||
/**
|
||||
* Checks if `value` is classified as an `Array` object.
|
||||
*
|
||||
* @type Function
|
||||
*/
|
||||
var isArray = Array.isArray;
|
13
tests/baselines/reference/malformedTags.symbols
Normal file
13
tests/baselines/reference/malformedTags.symbols
Normal file
|
@ -0,0 +1,13 @@
|
|||
=== tests/cases/conformance/salsa/myFile02.js ===
|
||||
|
||||
/**
|
||||
* Checks if `value` is classified as an `Array` object.
|
||||
*
|
||||
* @type Function
|
||||
*/
|
||||
var isArray = Array.isArray;
|
||||
>isArray : Symbol(isArray, Decl(myFile02.js, 6, 3))
|
||||
>Array.isArray : Symbol(ArrayConstructor.isArray, Decl(lib.d.ts, --, --))
|
||||
>Array : Symbol(Array, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
|
||||
>isArray : Symbol(ArrayConstructor.isArray, Decl(lib.d.ts, --, --))
|
||||
|
13
tests/baselines/reference/malformedTags.types
Normal file
13
tests/baselines/reference/malformedTags.types
Normal file
|
@ -0,0 +1,13 @@
|
|||
=== tests/cases/conformance/salsa/myFile02.js ===
|
||||
|
||||
/**
|
||||
* Checks if `value` is classified as an `Array` object.
|
||||
*
|
||||
* @type Function
|
||||
*/
|
||||
var isArray = Array.isArray;
|
||||
>isArray : (arg: any) => arg is any[]
|
||||
>Array.isArray : (arg: any) => arg is any[]
|
||||
>Array : ArrayConstructor
|
||||
>isArray : (arg: any) => arg is any[]
|
||||
|
10
tests/cases/conformance/salsa/malformedTags.ts
Normal file
10
tests/cases/conformance/salsa/malformedTags.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
// @allowJS: true
|
||||
// @suppressOutputPathCheck: true
|
||||
|
||||
// @filename: myFile02.js
|
||||
/**
|
||||
* Checks if `value` is classified as an `Array` object.
|
||||
*
|
||||
* @type Function
|
||||
*/
|
||||
var isArray = Array.isArray;
|
Loading…
Reference in a new issue