diff --git a/lib/jsdoc/tag/dictionary/definitions.js b/lib/jsdoc/tag/dictionary/definitions.js index 05af7eb7..d6384dcf 100644 --- a/lib/jsdoc/tag/dictionary/definitions.js +++ b/lib/jsdoc/tag/dictionary/definitions.js @@ -47,6 +47,12 @@ function setDocletDescriptionToValue(doclet, tag) { } } +function setDocletTypeToValueType(doclet, tag) { + if (tag.value && tag.value.type) { + doclet.type = tag.value.type; + } +} + function setNameToFile(doclet, tag) { var name; @@ -211,9 +217,7 @@ exports.defineTags = function(dictionary) { onTagged: function(doclet, tag) { setDocletKindToTitle(doclet, tag); setDocletNameToValue(doclet, tag); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } + setDocletTypeToValueType(doclet, tag); } }) .synonym('const'); @@ -283,7 +287,7 @@ exports.defineTags = function(dictionary) { onTagged: function(doclet, tag) { doclet.kind = 'member'; doclet.isEnum = true; - if (tag.value && tag.value.type) { doclet.type = tag.value.type; } + setDocletTypeToValueType(doclet, tag); } }); @@ -311,9 +315,7 @@ exports.defineTags = function(dictionary) { onTagged: function(doclet, tag) { if (!doclet.exceptions) { doclet.exceptions = []; } doclet.exceptions.push(tag.value); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } + setDocletTypeToValueType(doclet, tag); } }) .synonym('throws'); @@ -324,7 +326,7 @@ exports.defineTags = function(dictionary) { onTagged: function(doclet, tag) { setDocletKindToTitle(doclet, tag); if (tag.value && tag.value.type) { - doclet.type = tag.value.type; + setDocletTypeToValueType(doclet, tag); doclet.addTag('name', doclet.type.names[0]); } } @@ -434,9 +436,7 @@ exports.defineTags = function(dictionary) { onTagged: function(doclet, tag) { setDocletKindToTitle(doclet, tag); setDocletNameToValue(doclet, tag); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } + setDocletTypeToValueType(doclet, tag); } }) .synonym('var'); @@ -474,9 +474,7 @@ exports.defineTags = function(dictionary) { if (!doclet.name) { setDocletNameToFilename(doclet, tag); } - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } + setDocletTypeToValueType(doclet, tag); } }); @@ -489,9 +487,7 @@ exports.defineTags = function(dictionary) { onTagged: function(doclet, tag) { setDocletKindToTitle(doclet, tag); setDocletNameToValue(doclet, tag); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } + setDocletTypeToValueType(doclet, tag); } }); @@ -647,7 +643,7 @@ exports.defineTags = function(dictionary) { }, onTagged: function(doclet, tag) { if (tag.value && tag.value.type) { - doclet.type = tag.value.type; + setDocletTypeToValueType(doclet, tag); // for backwards compatibility, we allow @type for functions to imply return type if (doclet.kind === 'function') { @@ -676,8 +672,8 @@ exports.defineTags = function(dictionary) { ] }; } - else if (tag.value.type) { - doclet.type = tag.value.type; + else { + setDocletTypeToValueType(doclet, tag); } } }