Method names can shadow import names
I've run into a bug where if a class method has the same name as an import, prefixed with an underscore, it shadows the import with the similar name. Brief example:
import now from 'lodash/now'
const f = function ($log) {
'ngInject'
class C {
_now () {
// This line ends up referring to the method containing it.
now()
}
}
return C
}
I've created a full reproduction case with more information here: https://github.com/edsrzf/babel-angularjs-repro
Note that this uses babel 7. I've tried pulling in the changes from #43 but they don't seem to help anything.
I'm happy to try to fix this if I can get some guidance. In particular, I'm not sure if this is actually a bug in this plugin or if it's merely a symptom of some issue within babel itself.
I've forked this repo here, with a fix on its master branch: https://github.com/vend/babel-plugin-angularjs-annotate/
The commit is here: https://github.com/vend/babel-plugin-angularjs-annotate/commit/82cdc58f7f89905af5265f89a9e9c6149b8229f2
I'd make a pull request, but this repo seems to be unmaintained at the moment.