Open tmhao2005 opened 4 years ago
I just found out an issue regarding the option "removeImport": true like I got a following snippet function:
"removeImport": true
function foo(arg, list) { switch (arg) { case 0: { const item = arg.payload; return list.some(_item => _item.id === item.id); }; case 1: { const item = arg.payload; return list.some(_item => _item.id === item.id); } } }
the results after compile with es5 mode:
function foo(arg, list) { switch (arg) { case 0: { var item = arg.payload; return list.some(function (_item) { return _item.id === item.id; }); } ; case 1: { var _item = arg.payload; return list.some(function (_item) { /* BUG HERE: it renamed wrongly here 2 vars with same name */ return _item.id === _item.id; }); } } }
The issue is at the case 1 where it renames 2 vars with the name name _item in 2 scopes that creating bug.
case 1
_item
Seems reprocess the scope causes the issue here:
programPath.scope.crawl()
https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types/blob/master/src/index.js#L364
I just found out an issue regarding the option
"removeImport": true
like I got a following snippet function:the results after compile with es5 mode:
The issue is at the
case 1
where it renames 2 vars with the name name_item
in 2 scopes that creating bug.Seems reprocess the scope causes the issue here:
https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types/blob/master/src/index.js#L364