From f51822c16de5df4900cd9084703f5a2538e8aa13 Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Fri, 5 May 2017 22:14:12 -0700 Subject: [PATCH] fix(TypeScript): define TSFunctionType AST node (#1529) - fixes printing of comments inside function type node --- src/typescript-ast-nodes.js | 11 +++++------ .../compiler/__snapshots__/jsfmt.spec.js.snap | 11 +++++++++++ tests/typescript/compiler/commentsInterface.ts | 3 +++ 3 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 tests/typescript/compiler/commentsInterface.ts diff --git a/src/typescript-ast-nodes.js b/src/typescript-ast-nodes.js index 0e141d7c..0a29974c 100644 --- a/src/typescript-ast-nodes.js +++ b/src/typescript-ast-nodes.js @@ -62,7 +62,9 @@ module.exports = function(fork) { // Types def("TSConstructorType").bases("TSType"); - def("TSFunctionType").bases("TSType"); + def("TSFunctionType") + .bases("TSSignature") + .build("typeParameters", "parameters", "typeAnnotation"); def("TSIntersectionType") .bases("TSType") @@ -169,10 +171,7 @@ module.exports = function(fork) { .field("expression", def("Identifier")) .bases("Node"); - def("TSTypeParameter") - .build("name") - .field("name", def("Identifier")) + def("TSTypeParameter").build("name").field("name", def("Identifier")); - def("TSParameterProperty") - .build("accessibility", "isReadonly", "parameters") + def("TSParameterProperty").build("accessibility", "isReadonly", "parameters"); }; diff --git a/tests/typescript/compiler/__snapshots__/jsfmt.spec.js.snap b/tests/typescript/compiler/__snapshots__/jsfmt.spec.js.snap index a0cc1024..94753d21 100644 --- a/tests/typescript/compiler/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript/compiler/__snapshots__/jsfmt.spec.js.snap @@ -7,6 +7,17 @@ var results = number[]; `; +exports[`commentsInterface.ts 1`] = ` +interface i2 { + foo: (/**param help*/b: number) => string; +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +interface i2 { + foo: (/**param help*/ b: number) => string +} + +`; + exports[`functionOverloadsOnGenericArity1.ts 1`] = ` // overloading on arity not allowed interface C { diff --git a/tests/typescript/compiler/commentsInterface.ts b/tests/typescript/compiler/commentsInterface.ts new file mode 100644 index 00000000..35d8a7c0 --- /dev/null +++ b/tests/typescript/compiler/commentsInterface.ts @@ -0,0 +1,3 @@ +interface i2 { + foo: (/**param help*/b: number) => string; +}