From 65d09e46a05dcc2849ca40cedcc8d10f9724ec61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Sun, 5 Apr 2020 23:43:20 +0200 Subject: [PATCH] Don't check type annotations when deciding params scope (#11349) * Don't check type annotations when deciding params scope * Also type params --- packages/babel-plugin-transform-parameters/src/params.js | 3 +++ .../test/fixtures/regression/11344-flow/input.js | 7 +++++++ .../test/fixtures/regression/11344-flow/options.json | 6 ++++++ .../test/fixtures/regression/11344-flow/output.js | 9 +++++++++ .../test/fixtures/regression/11344-typescript/input.js | 7 +++++++ .../fixtures/regression/11344-typescript/options.json | 6 ++++++ .../test/fixtures/regression/11344-typescript/output.js | 9 +++++++++ 7 files changed, 47 insertions(+) create mode 100644 packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/input.js create mode 100644 packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/options.json create mode 100644 packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/output.js create mode 100644 packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/input.js create mode 100644 packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/options.json create mode 100644 packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/output.js diff --git a/packages/babel-plugin-transform-parameters/src/params.js b/packages/babel-plugin-transform-parameters/src/params.js index 041e0bf90b..b0463f79a8 100644 --- a/packages/babel-plugin-transform-parameters/src/params.js +++ b/packages/babel-plugin-transform-parameters/src/params.js @@ -36,6 +36,9 @@ const iifeVisitor = { path.stop(); } }, + // type annotations don't use or introduce "real" bindings + "TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration": path => + path.skip(), }; export default function convertFunctionParams(path, loose) { diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/input.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/input.js new file mode 100644 index 0000000000..953d0473e2 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/input.js @@ -0,0 +1,7 @@ +function a(b: (c) => void = {}) { + let c; +} + +function d(e = () => {}) { + let T; +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/options.json new file mode 100644 index 0000000000..8fe7e8dcec --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "transform-parameters", + "syntax-flow" + ] +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/output.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/output.js new file mode 100644 index 0000000000..d4d757d31d --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/output.js @@ -0,0 +1,9 @@ +function a() { + let b: (c) => void = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + let c; +} + +function d() { + let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : () => {}; + let T; +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/input.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/input.js new file mode 100644 index 0000000000..953d0473e2 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/input.js @@ -0,0 +1,7 @@ +function a(b: (c) => void = {}) { + let c; +} + +function d(e = () => {}) { + let T; +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/options.json new file mode 100644 index 0000000000..abf00ef612 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "transform-parameters", + "syntax-typescript" + ] +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/output.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/output.js new file mode 100644 index 0000000000..d4d757d31d --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/output.js @@ -0,0 +1,9 @@ +function a() { + let b: (c) => void = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + let c; +} + +function d() { + let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : () => {}; + let T; +}