()
| 9551 | } |
| 9552 | |
| 9553 | function parseDeclareFunction() { |
| 9554 | var id, idMarker, |
| 9555 | marker = markerCreate(), params, returnType, rest, tmp, |
| 9556 | typeParameters = null, value, valueMarker; |
| 9557 | |
| 9558 | expectContextualKeyword('declare'); |
| 9559 | expectKeyword('function'); |
| 9560 | idMarker = markerCreate(); |
| 9561 | id = parseVariableIdentifier(); |
| 9562 | |
| 9563 | valueMarker = markerCreate(); |
| 9564 | if (match('<')) { |
| 9565 | typeParameters = parseTypeParameterDeclaration(); |
| 9566 | } |
| 9567 | expect('('); |
| 9568 | tmp = parseFunctionTypeParams(); |
| 9569 | params = tmp.params; |
| 9570 | rest = tmp.rest; |
| 9571 | expect(')'); |
| 9572 | |
| 9573 | expect(':'); |
| 9574 | returnType = parseType(); |
| 9575 | |
| 9576 | value = markerApply(valueMarker, delegate.createFunctionTypeAnnotation( |
| 9577 | params, |
| 9578 | returnType, |
| 9579 | rest, |
| 9580 | typeParameters |
| 9581 | )); |
| 9582 | |
| 9583 | id.typeAnnotation = markerApply(valueMarker, delegate.createTypeAnnotation( |
| 9584 | value |
| 9585 | )); |
| 9586 | markerApply(idMarker, id); |
| 9587 | |
| 9588 | consumeSemicolon(); |
| 9589 | |
| 9590 | return markerApply(marker, delegate.createDeclareFunction( |
| 9591 | id |
| 9592 | )); |
| 9593 | } |
| 9594 | |
| 9595 | function parseDeclareVariable() { |
| 9596 | var id, marker = markerCreate(); |
no test coverage detected