| 664 | } |
| 665 | |
| 666 | string Sniffer::getDataTypeName(DataType *dataType) |
| 667 | { |
| 668 | switch (dataType->getDataType()) |
| 669 | { |
| 670 | case DataType::data_type_t::kListType: |
| 671 | { |
| 672 | ListType *listType = dynamic_cast<ListType *>(dataType); |
| 673 | assert(listType); |
| 674 | return "list<" + getDataTypeName(listType->getElementType()) + ">"; |
| 675 | } |
| 676 | case DataType::data_type_t::kArrayType: |
| 677 | { |
| 678 | string returnVal; |
| 679 | while (dataType->isArray()) |
| 680 | { |
| 681 | ArrayType *arrayType = dynamic_cast<ArrayType *>(dataType); |
| 682 | assert(arrayType); |
| 683 | returnVal += format_string("[%d]", arrayType->getElementCount()); |
| 684 | dataType = arrayType->getElementType(); |
| 685 | } |
| 686 | return getDataTypeName(dataType) + returnVal; |
| 687 | } |
| 688 | case DataType::data_type_t::kVoidType: |
| 689 | { |
| 690 | return "void"; |
| 691 | } |
| 692 | default: |
| 693 | { |
| 694 | return dataType->getName(); |
| 695 | } |
| 696 | } |
| 697 | } |
| 698 | |
| 699 | string Sniffer::getPrototype(Function *function) |
| 700 | { |
nothing calls this directly
no test coverage detected