From b04de1196ae453ba725aff867ba1e39742972cf9 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Tue, 21 Aug 2018 13:54:29 -0700 Subject: [PATCH] Rename exported functions where name conflicts with param. (#8505) --- packages/babel-traverse/src/scope/lib/renamer.js | 2 +- .../fixtures/rename/property-rename-with-export/input.mjs | 2 ++ .../rename/property-rename-with-export/options.json | 5 +++++ .../fixtures/rename/property-rename-with-export/output.mjs | 6 ++++++ 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 packages/babel-traverse/test/fixtures/rename/property-rename-with-export/input.mjs create mode 100644 packages/babel-traverse/test/fixtures/rename/property-rename-with-export/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/property-rename-with-export/output.mjs diff --git a/packages/babel-traverse/src/scope/lib/renamer.js b/packages/babel-traverse/src/scope/lib/renamer.js index 317dea76aa..cdfd908196 100644 --- a/packages/babel-traverse/src/scope/lib/renamer.js +++ b/packages/babel-traverse/src/scope/lib/renamer.js @@ -108,7 +108,7 @@ export default class Renamer { path.isClassExpression(), ); if (parentDeclar) { - const bindingIds = parentDeclar.getBindingIdentifiers(); + const bindingIds = parentDeclar.getOuterBindingIdentifiers(); if (bindingIds[oldName] === binding.identifier) { // When we are renaming an exported identifier, we need to ensure that // the exported binding keeps the old name. diff --git a/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/input.mjs b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/input.mjs new file mode 100644 index 0000000000..cee2ccf058 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/input.mjs @@ -0,0 +1,2 @@ +export function problem(problem) { } +void { problem: () => problem() }; diff --git a/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/options.json b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/options.json new file mode 100644 index 0000000000..0eae94b9f5 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + "transform-function-name" + ] +} diff --git a/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/output.mjs b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/output.mjs new file mode 100644 index 0000000000..413c2b85c5 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/property-rename-with-export/output.mjs @@ -0,0 +1,6 @@ +function _problem(problem) {} + +export { _problem as problem }; +void { + problem: () => _problem() +};