(String name, String desc)
| 775 | } |
| 776 | |
| 777 | public FieldInstance resolveField(String name, String desc) { |
| 778 | FieldInstance ret = getField(name, desc); |
| 779 | if (ret != null) return ret; |
| 780 | |
| 781 | if (!interfaces.isEmpty()) { |
| 782 | Deque<ClassInstance> queue = new ArrayDeque<>(); |
| 783 | queue.addAll(interfaces); |
| 784 | ClassInstance cls; |
| 785 | |
| 786 | while ((cls = queue.pollFirst()) != null) { |
| 787 | ret = cls.getField(name, desc); |
| 788 | if (ret != null) return ret; |
| 789 | |
| 790 | for (ClassInstance iface : cls.interfaces) { |
| 791 | queue.addFirst(iface); |
| 792 | } |
| 793 | } |
| 794 | } |
| 795 | |
| 796 | ClassInstance cls = superClass; |
| 797 | |
| 798 | while (cls != null) { |
| 799 | ret = cls.getField(name, desc); |
| 800 | if (ret != null) return ret; |
| 801 | |
| 802 | cls = cls.superClass; |
| 803 | } |
| 804 | |
| 805 | return null; |
| 806 | } |
| 807 | |
| 808 | public MethodInstance getMethod(int pos) { |
| 809 | if (pos < 0 || pos >= methods.length) throw new IndexOutOfBoundsException(); |
no test coverage detected