Jeff Williams eaa2cfb807 fix: correctly track interface members
When an interface is a) defined as an ES2015 class and b) assigned to a variable, JSDoc sometimes used the wrong `longname` and `memberof` for members of the interface (specifically, for instance properties).

The root cause was that we weren't resolving `this` correctly within this type of interface. As a result, if you added a JSDoc comment to something like `this.foo = 'bar'`, the doclet for `this.foo` had the wrong `longname` and `memberof`.

Fixing that issue uncovered another issue: When we merged the constructor's doclet with the interface's doclet, we preferred the constructor's doclet. However, the constructor's doclet used the wrong `kind` in this case; we already had code to fix up the `longname` and `memberof` of the combined doclet, but not the `kind`. The fix was to prefer the interface's doclet for all properties.

Manual cherry-pick of 95e3192525310b9f1567e034c22489da3a5847a1.
2020-12-12 19:24:20 -08:00
..
2020-06-07 16:41:06 -07:00
2020-11-23 10:10:42 -08:00

JSDoc CLI tool

This directory contains most of the source files for JSDoc.

Over time, most of the code in this package is being moved into other packages.