Skip to content

Commit

Permalink
support the implicitCast tag (Closure Compiler only) (jsdoc#605)
Browse files Browse the repository at this point in the history
  • Loading branch information
hegemonic committed Jul 17, 2017
1 parent adf7426 commit e45a719
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/jsdoc/tag/dictionary/definitions.js
Original file line number Diff line number Diff line change
Expand Up @@ -882,6 +882,10 @@ exports.closureTags = {
},
final: cloneTagDef(baseTags.readonly),
implements: cloneTagDef(baseTags.implements),
// Closure Compiler only
implicitcast: {
onTagged: ignore
},
inheritdoc: cloneTagDef(baseTags.inheritdoc),
interface: cloneTagDef(baseTags.interface, {
canHaveName: false,
Expand Down
7 changes: 7 additions & 0 deletions test/fixtures/implicitcasttag.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
function Foo() {}

/**
* @type {string}
* @implicitCast
*/
Foo.prototype.bar;
42 changes: 42 additions & 0 deletions test/specs/tags/implicitcasttag.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
'use strict';

describe('@implicitCast tag', function() {
var env = require('jsdoc/env');
var logger = require('jsdoc/util/logger');

var allowUnknownTags = Boolean(env.conf.tags.allowUnknownTags);

beforeEach(function() {
env.conf.tags.allowUnknownTags = false;
spyOn(logger, 'error');
});

afterEach(function() {
jasmine.restoreTagDictionary();
env.conf.tags.allowUnknownTags = allowUnknownTags;
});

describe('JSDoc tags', function() {
beforeEach(function() {
jasmine.replaceTagDictionary('jsdoc');
});

it('should not recognize the @implicitCast tag', function() {
jasmine.getDocSetFromFile('test/fixtures/implicitcasttag.js');

expect(logger.error).toHaveBeenCalled();
});
});

describe('Closure Compiler tags', function() {
beforeEach(function() {
jasmine.replaceTagDictionary('closure');
});

it('should recognize the @implicitCast tag', function() {
jasmine.getDocSetFromFile('test/fixtures/implicitcasttag.js');

expect(logger.error).not.toHaveBeenCalled();
});
});
});

0 comments on commit e45a719

Please sign in to comment.