function validate( node ) {
		var jsdoc;
		var tags;
		var tag;
		var ast;
		var i;

		jsdoc = findJSDoc( source, node );
		if ( isObject( jsdoc ) ) {
			ast = doctrine.parse( jsdoc.value, OPTS );
			tags = ast.tags;
			for ( i = 0; i < tags.length; i++ ) {
				tag = tags[ i ];
				if (
					tag.title === 'param' ||
					tag.title === 'returns' ||
					tag.title === 'throws' ||
					tag.title === 'type'
				) {
					if ( tag.type ) {
						likelyHasTypo( tag.type, jsdoc.loc );
					} else {
						context.report({
							'message': '`@'+tag.title+'` is missing type definition',
							'loc': jsdoc.loc
						});
					}
				}
			}
		}
	}
Checks whether JSDoc comments likely have typos in type definitions of their JSDoc tags.

@private
@param {ASTNode} node - node to examine