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() +};