babel-plugin-angularjs-annotate icon indicating copy to clipboard operation
babel-plugin-angularjs-annotate copied to clipboard

Method names can shadow import names

Open edsrzf opened this issue 7 years ago • 1 comments

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.

edsrzf avatar Aug 12 '18 21:08 edsrzf

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.

edsrzf avatar Oct 03 '18 07:10 edsrzf