jsdoc3/jsdoc — pull request #417 by ErnstHaagsman (2013-05-07 12:08:58+00:00)
Title: Added parameter inheritance functionality for constructors.

Firstly, I'm new to Rhino development, so please forgive stupid mistakes.

In the code I'm currently documenting we often have abstract classes which are implemented by several others which will call the constructor of the abstract class to set configuration values which apply to all implementations. As shown in this code example, which is also used for the unit test:

```javascript
/**
*
* @param {object} config Configuration object
* @param {string} config.fill Fill color
* @constructor
*/
function Shape(config)
{

}

/**
*
* @param {object} config Configuration object
* @param {number} config.radius Circle radius
* @inheritparams config.
* @constructor
* @augments Shape
*/
function Circle(config)
{

}
```

Without parameter inheritance, to include those parameters they would have to be copied to every single implementation. This increases the maintenance workload, and the probability of inconsistencies. Alternatively for every single implementation I would need to write 'please check the abstract object for additional parameters' and users would have to look in multiple places to find what parameters they can supply.

To solve this issues I created the inheritparams tag. It takes a single argument, and then copies all arguments which match (using indexof) that signature to the implementation. So if 'config.' is provided, it will copy all configuration fields from the abstract to the implementation. In the above example 'circle' will now inherit the 'config.fill' parameter from 'shape'.