From eb2ae9cfbfb35e8c7c1a17687525cbd99c0b067e Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Fri, 18 Nov 2016 11:55:19 -0500 Subject: [PATCH] Merge inferred return type like we do for params. Refs #359 --- lib/infer/return.js | 15 +++++++++++---- test/fixture/merge-infered-type.input.js | 2 +- test/fixture/merge-infered-type.output.json | 5 +---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/infer/return.js b/lib/infer/return.js index 5ee4b9350..27f7d9b26 100644 --- a/lib/infer/return.js +++ b/lib/infer/return.js @@ -14,7 +14,9 @@ var findTarget = require('./finders').findTarget, */ module.exports = function () { return shouldSkipInference(function inferReturn(comment) { - if (comment.returns) { + if (Array.isArray(comment.returns) && + comment.returns.length && + comment.returns[0].type) { return comment; } var path = findTarget(comment.context.ast); @@ -29,9 +31,14 @@ module.exports = function () { if (t.isFunction(fn) && fn.returnType && fn.returnType.typeAnnotation) { - comment.returns = [{ - type: flowDoctrine(fn.returnType.typeAnnotation) - }]; + var returnType = flowDoctrine(fn.returnType.typeAnnotation); + if (comment.returns) { + comment.returns[0].type = returnType; + } else { + comment.returns = [{ + type: returnType + }]; + } } return comment; }); diff --git a/test/fixture/merge-infered-type.input.js b/test/fixture/merge-infered-type.input.js index 1bdd4ba40..f93203900 100644 --- a/test/fixture/merge-infered-type.input.js +++ b/test/fixture/merge-infered-type.input.js @@ -2,7 +2,7 @@ * Add five to `x`. * * @param x The number to add five to. - * @returns {number} x plus five. + * @returns x plus five. */ function addFive(x: number): number { return x + 5; diff --git a/test/fixture/merge-infered-type.output.json b/test/fixture/merge-infered-type.output.json index 2b83b1c5d..74112ac39 100644 --- a/test/fixture/merge-infered-type.output.json +++ b/test/fixture/merge-infered-type.output.json @@ -98,10 +98,7 @@ "title": "returns", "description": "x plus five.", "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "number" - } + "type": null } ], "loc": { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy