Commit e3b323c
committed
Flatten handlers
pyflakes has traditionally recursed with a handler for every
level of the ast. The ast depth can become very large, especially
for an expression containing many binary operators.
Python has a maximum recursion limit, defaulting to a low number
like 1000, which resulted in a RuntimeError for the ast of:
x = 1 + 2 + 3 + ... + 1001
This change avoids recursing for nodes that do not have a specific
handler.
Checker.nodeDepth and node.depth change from always being the
ast depth, which varied based on Python version due to ast differences,
to being the number of nested handlers within pyflakes.1 parent 29914fc commit e3b323c
2 files changed
+150
-11
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
734 | 734 | | |
735 | 735 | | |
736 | 736 | | |
| 737 | + | |
737 | 738 | | |
738 | 739 | | |
739 | 740 | | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
740 | 784 | | |
741 | 785 | | |
742 | 786 | | |
| |||
766 | 810 | | |
767 | 811 | | |
768 | 812 | | |
769 | | - | |
| 813 | + | |
770 | 814 | | |
771 | 815 | | |
772 | 816 | | |
| |||
777 | 821 | | |
778 | 822 | | |
779 | 823 | | |
780 | | - | |
781 | | - | |
| 824 | + | |
| 825 | + | |
782 | 826 | | |
783 | | - | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
784 | 832 | | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
785 | 836 | | |
786 | 837 | | |
787 | 838 | | |
| |||
833 | 884 | | |
834 | 885 | | |
835 | 886 | | |
836 | | - | |
837 | | - | |
838 | | - | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
839 | 899 | | |
840 | 900 | | |
841 | 901 | | |
842 | 902 | | |
843 | 903 | | |
844 | 904 | | |
845 | | - | |
| 905 | + | |
846 | 906 | | |
847 | 907 | | |
848 | 908 | | |
849 | 909 | | |
850 | | - | |
| 910 | + | |
851 | 911 | | |
852 | 912 | | |
853 | 913 | | |
| |||
859 | 919 | | |
860 | 920 | | |
861 | 921 | | |
862 | | - | |
| 922 | + | |
| 923 | + | |
863 | 924 | | |
864 | 925 | | |
865 | 926 | | |
| |||
903 | 964 | | |
904 | 965 | | |
905 | 966 | | |
906 | | - | |
| 967 | + | |
907 | 968 | | |
908 | 969 | | |
909 | 970 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
5 | 7 | | |
6 | 8 | | |
7 | 9 | | |
| |||
1084 | 1086 | | |
1085 | 1087 | | |
1086 | 1088 | | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
1087 | 1133 | | |
1088 | 1134 | | |
1089 | 1135 | | |
| |||
1168 | 1214 | | |
1169 | 1215 | | |
1170 | 1216 | | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
1171 | 1222 | | |
1172 | 1223 | | |
1173 | 1224 | | |
| |||
1565 | 1616 | | |
1566 | 1617 | | |
1567 | 1618 | | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
1568 | 1626 | | |
1569 | 1627 | | |
1570 | 1628 | | |
| |||
1715 | 1773 | | |
1716 | 1774 | | |
1717 | 1775 | | |
| 1776 | + | |
1718 | 1777 | | |
| 1778 | + | |
1719 | 1779 | | |
1720 | 1780 | | |
1721 | 1781 | | |
| |||
1725 | 1785 | | |
1726 | 1786 | | |
1727 | 1787 | | |
| 1788 | + | |
| 1789 | + | |
1728 | 1790 | | |
1729 | 1791 | | |
1730 | 1792 | | |
| |||
1733 | 1795 | | |
1734 | 1796 | | |
1735 | 1797 | | |
| 1798 | + | |
1736 | 1799 | | |
| 1800 | + | |
1737 | 1801 | | |
1738 | 1802 | | |
1739 | 1803 | | |
| |||
1743 | 1807 | | |
1744 | 1808 | | |
1745 | 1809 | | |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
0 commit comments