micmath/jsdoc — Issue #84: problems with the order of tags and using @ignore without using @this
Author: simonsarris
Created: 2012-02-13 20:45:41+00:00
State: open

If I use @ignore on a method without using @this I get some ridiculous error that took some time to track down:

```org.mozilla.javascript.EcmaError: TypeError: Cannot read property "filename" from undefined (file:/C:/Canvas/build/jsdoc3/rhino_modules/jsdoc/tag/validator.js#48)```

This is broken:

```javascript
/**
* Hello Test
* @constructor
* @class
* The Transform class holds a transformation matrix.
*/
function Transform() {
Util._Transforms++;
/** @type {number} */
this.m11 = 1;
}

/**
* @this {Transform}
* @ignore
* True if this transformation is the identity transformation.
* @return {boolean}
*/
Transform.prototype.isIdentity = function() {
return (this.m11 === 1);
};
```

Yet if you change the isIdentity doc to this, it works:

```javascript
/**
* @ignore
* @this {Transform}
* True if this transformation is the identity transformation.
* @return {boolean}
*/
```

But if you change it to this, its broken:

```javascript
/**
* @ignore
* True if this transformation is the identity transformation.
* @return {boolean}
*/
```

Similarly if I try to use two tags on the same line I get similar problems. This breaks:

```javascript
/**
* Hello Test
* @constructor
* @class
* The Transform class holds a transformation matrix.
*/
function Transform() {
Util._Transforms++;
/** @ignore @type {number} */
this.m11 = 1;
}
```

But if you change the line to ```/** @type {number} @ignore */``` it works.