Commit c6cefce
authored
fix(Turbopack): Fix duplicated layout rendering in edge cases (vercel#81948)
## Fix module reference handling in app_structure.rs creating duplicated layouts
### What?
Fixed a bug in the `check_and_update_module_references` function by
making the code always overrides the `not-found`, `unauthorized`, etc
files at the top level group route layer.
### Why?
The previous implementation had a bug that when a directory was setup
like the added test case where the layouts from a lower directory would
render when only the layouts at the level of the not-found page should
have rendered.
### How?
- Added the ability to force overriding of the `module` when running
`check_and_update_module_references`
- Split the logic between global and layer-specific modules
Fixes #PACK-50811 parent e2b6a50 commit c6cefce
15 files changed
Lines changed: 174 additions & 9 deletions
File tree
- crates/next-core/src
- next_app
- test
- e2e/app-dir/duplicate-layout-components
- app
- (site)
- (default)
- solutions
- [notfound.jsx]
- components
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
923 | 923 | | |
924 | 924 | | |
925 | 925 | | |
| 926 | + | |
| 927 | + | |
926 | 928 | | |
927 | 929 | | |
928 | 930 | | |
929 | 931 | | |
930 | 932 | | |
| 933 | + | |
931 | 934 | | |
932 | 935 | | |
| 936 | + | |
933 | 937 | | |
934 | | - | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
935 | 949 | | |
936 | | - | |
937 | | - | |
| 950 | + | |
938 | 951 | | |
939 | 952 | | |
940 | 953 | | |
| |||
943 | 956 | | |
944 | 957 | | |
945 | 958 | | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
946 | 978 | | |
947 | 979 | | |
948 | 980 | | |
| |||
967 | 999 | | |
968 | 1000 | | |
969 | 1001 | | |
970 | | - | |
971 | | - | |
972 | | - | |
973 | 1002 | | |
974 | | - | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
975 | 1009 | | |
976 | 1010 | | |
977 | 1011 | | |
978 | 1012 | | |
979 | 1013 | | |
| 1014 | + | |
980 | 1015 | | |
981 | 1016 | | |
982 | 1017 | | |
| |||
985 | 1020 | | |
986 | 1021 | | |
987 | 1022 | | |
| 1023 | + | |
988 | 1024 | | |
989 | 1025 | | |
990 | 1026 | | |
| |||
993 | 1029 | | |
994 | 1030 | | |
995 | 1031 | | |
| 1032 | + | |
996 | 1033 | | |
997 | 1034 | | |
| 1035 | + | |
998 | 1036 | | |
999 | | - | |
| 1037 | + | |
| 1038 | + | |
1000 | 1039 | | |
1001 | 1040 | | |
1002 | | - | |
1003 | 1041 | | |
1004 | 1042 | | |
1005 | 1043 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
296 | 301 | | |
297 | 302 | | |
298 | 303 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
0 commit comments