Demonstration of the "Duplicate declaration" error in Babel.
git clone https://gist.github.com/81ab0e3f823ce287d1bd8b2a65b4ad52.git
cd 81ab0e3f823ce287d1bd8b2a65b4ad52/
npm install
npm start
TypeError: .../babel-duplicate-definition-error/index.js: Duplicate declaration "Foo"
3 | export default function wrap() {
4 | return function() {
> 5 | class Foo {
| ^
6 | @autobind
7 | method() {}
8 | }
at File.buildCodeFrameError (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/core/lib/transformation/file/file.js:259:12)
at Scope.checkBlockScopedCollisions (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/scope/index.js:347:22)
at Scope.registerBinding (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/scope/index.js:504:16)
at Scope.registerDeclaration (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/scope/index.js:444:14)
at Object.BlockScoped (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/scope/index.js:189:28)
at Object.newFn (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/visitors.js:230:17)
at NodePath._call (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/path/context.js:53:20)
at NodePath.call (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/path/context.js:36:14)
at NodePath.visit (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/path/context.js:88:12)
at TraversalContext.visitQueue (/private/tmp/babel-duplicate-definition-error/node_modules/@babel/traverse/lib/context.js:118:16)