Commit fbb94bf
feat(r8): Add line span expansion and outside-range fallback (#86)
## Summary
- When a base entry (no minified range) maps to a span of original lines
(e.g., `:42:44`), expand into one frame per original line instead of
just the first
- When a frame's line number falls outside all mapped member ranges,
fall back to class-only remapping (keeping the obfuscated method name
and original line)
- Adds `matched_any` tracking in cache iterator to prevent false
fallback triggers after successful matches
Fixes `test_different_line_number_span_stacktrace` and
`test_outside_line_range_stacktrace`.
## Test plan
- [x] All existing tests pass (50 lib + all integration tests)
- [x] `test_different_line_number_span_stacktrace` now passes (was
failing: 1 frame instead of 3)
- [x] `test_outside_line_range_stacktrace` now passes (was failing:
unremapped frame instead of class-only remap)
- [x] Only remaining failure is
`test_single_line_no_line_number_stacktrace` (Group F — ordering)
- [x] `make format` and `make lint` pass
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 0a53eb0 commit fbb94bf
2 files changed
+100
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
86 | 95 | | |
87 | 96 | | |
88 | 97 | | |
| |||
838 | 847 | | |
839 | 848 | | |
840 | 849 | | |
| 850 | + | |
| 851 | + | |
841 | 852 | | |
842 | 853 | | |
843 | 854 | | |
| |||
851 | 862 | | |
852 | 863 | | |
853 | 864 | | |
| 865 | + | |
854 | 866 | | |
855 | 867 | | |
856 | 868 | | |
| |||
871 | 883 | | |
872 | 884 | | |
873 | 885 | | |
| 886 | + | |
874 | 887 | | |
875 | 888 | | |
876 | 889 | | |
| |||
883 | 896 | | |
884 | 897 | | |
885 | 898 | | |
| 899 | + | |
886 | 900 | | |
887 | 901 | | |
888 | 902 | | |
| |||
932 | 946 | | |
933 | 947 | | |
934 | 948 | | |
| 949 | + | |
935 | 950 | | |
936 | | - | |
937 | | - | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
938 | 963 | | |
939 | 964 | | |
940 | 965 | | |
| |||
965 | 990 | | |
966 | 991 | | |
967 | 992 | | |
| 993 | + | |
968 | 994 | | |
969 | 995 | | |
970 | 996 | | |
| |||
974 | 1000 | | |
975 | 1001 | | |
976 | 1002 | | |
977 | | - | |
| 1003 | + | |
978 | 1004 | | |
979 | | - | |
980 | | - | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
981 | 1043 | | |
982 | 1044 | | |
983 | 1045 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
7 | 16 | | |
8 | 17 | | |
9 | 18 | | |
| |||
697 | 706 | | |
698 | 707 | | |
699 | 708 | | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
700 | 725 | | |
701 | 726 | | |
702 | 727 | | |
| |||
712 | 737 | | |
713 | 738 | | |
714 | 739 | | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
715 | 748 | | |
716 | 749 | | |
717 | 750 | | |
| |||
0 commit comments