it('question option', () => {
   let type = doctrine.parseParamType('?=');
   assert.deepEqual(type, {
     type: 'OptionalType',
     expression: {
       type: 'NullableLiteral'
     }
   });
 });
 it('function option parameters latter', () => {
   let type = doctrine.parseParamType('function(number, ?)');
   assert.deepEqual(type, {
     type: 'FunctionType',
     params: [
       {
         type: 'NameExpression',
         name: 'number'
       },
       {
         type: 'NullableLiteral'
       }
     ],
     result: null
   });
 });
 it('function type union', () => {
   let type = doctrine.parseParamType('function(): ?|number');
   assert.deepEqual(type, {
     type: 'UnionType',
     elements: [
       {
         type: 'FunctionType',
         params: [],
         result: {
           type: 'NullableLiteral'
         }
       },
       {
         type: 'NameExpression',
         name: 'number'
       }
     ]
   });
 });
 it('question', () => {
   let type = doctrine.parseParamType('?');
   assert.deepEqual(type, {
     type: 'NullableLiteral'
   });
 });