From 3a7559be58b8c3f14198f343bc882b7675e2bd30 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Wed, 12 Apr 2017 18:32:04 -0500 Subject: [PATCH] Preserve comment for last arg of ObjectMethod (#1216) * Preserve comment after last arg of ObjectMethod * Preserve comment after last arg with default value --- src/comments.js | 4 +- .../comments/__snapshots__/jsfmt.spec.js.snap | 38 +++++++++++++++++++ tests/comments/last-arg.js | 20 ++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/src/comments.js b/src/comments.js index 23ab25f7..6cbac5ab 100644 --- a/src/comments.js +++ b/src/comments.js @@ -567,11 +567,13 @@ function handleLastFunctionArgComments( // Real functions if ( precedingNode && - precedingNode.type === "Identifier" && + (precedingNode.type === "Identifier" || + precedingNode.type === "AssignmentPattern") && enclosingNode && (enclosingNode.type === "ArrowFunctionExpression" || enclosingNode.type === "FunctionExpression" || enclosingNode.type === "FunctionDeclaration" || + enclosingNode.type === "ObjectMethod" || enclosingNode.type === "ClassMethod") && getNextNonSpaceNonCommentCharacter(text, comment) === ")" ) { diff --git a/tests/comments/__snapshots__/jsfmt.spec.js.snap b/tests/comments/__snapshots__/jsfmt.spec.js.snap index afa2ae54..377bb50d 100644 --- a/tests/comments/__snapshots__/jsfmt.spec.js.snap +++ b/tests/comments/__snapshots__/jsfmt.spec.js.snap @@ -692,6 +692,26 @@ function f( ): number { return a + 1; } + +var x = { + getSectionMode( + pageMetaData: PageMetaData, + sectionMetaData: SectionMetaData + /* $FlowFixMe This error was exposed while converting keyMirror + * to keyMirrorRecursive */ + ): $Enum { + } +} + +class X { + getSectionMode( + pageMetaData: PageMetaData, + sectionMetaData: SectionMetaData = ['unknown'] + /* $FlowFixMe This error was exposed while converting keyMirror + * to keyMirrorRecursive */ + ): $Enum { + } +} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ type f = ( currentRequest: { a: number } @@ -727,6 +747,24 @@ function f( return a + 1; } +var x = { + getSectionMode( + pageMetaData: PageMetaData, + sectionMetaData: SectionMetaData + /* $FlowFixMe This error was exposed while converting keyMirror + * to keyMirrorRecursive */ + ): $Enum {} +}; + +class X { + getSectionMode( + pageMetaData: PageMetaData, + sectionMetaData: SectionMetaData = ["unknown"] + /* $FlowFixMe This error was exposed while converting keyMirror + * to keyMirrorRecursive */ + ): $Enum {} +} + `; exports[`preserve-new-line-last.js 1`] = ` diff --git a/tests/comments/last-arg.js b/tests/comments/last-arg.js index 1ceaa050..5a3052bd 100644 --- a/tests/comments/last-arg.js +++ b/tests/comments/last-arg.js @@ -31,3 +31,23 @@ function f( ): number { return a + 1; } + +var x = { + getSectionMode( + pageMetaData: PageMetaData, + sectionMetaData: SectionMetaData + /* $FlowFixMe This error was exposed while converting keyMirror + * to keyMirrorRecursive */ + ): $Enum { + } +} + +class X { + getSectionMode( + pageMetaData: PageMetaData, + sectionMetaData: SectionMetaData = ['unknown'] + /* $FlowFixMe This error was exposed while converting keyMirror + * to keyMirrorRecursive */ + ): $Enum { + } +}