What to do
- Review the report below, especially Affected Guidelines and Content Changes.
- If you believe no guideline updates are required, comment
@guidelines-bot /accept-no-fls-changes (triage+ only).
- If guideline updates are required, open a PR with the necessary changes and reference this issue.
- Optional: rerun locally for diffs:
uv run python scripts/fls_audit.py --print-diffs.
- See
docs/fls-audit.md for the full audit workflow.
Audit run
FLS Spec Lock Audit Report
- Generated: 2026-07-20T05:11:14.799921+00:00
- Spec lock:
/home/runner/work/safety-critical-rust-coding-guidelines/safety-critical-rust-coding-guidelines/src/spec.lock
- FLS source:
https://rust-lang.github.io/fls/paragraph-ids.json
- Baseline commit:
4ab4a37416e3fb1b47329e001f4add7bc6a9e9e2
- Current commit:
3977e597187d55140d57c75227a116b6afc7a852
Summary
- Added IDs: 52
- Removed IDs: 11
- Content changed: 26
- Renumbered only: 139
- Header changes: 0
- Section reorders: 0
- Guidelines affected: 1
Affected Guidelines
- compl_ex_xyaShvxL9JAM: Names in a macro definition shall use a fully qualified path (
src/coding-guidelines/macros/gui_SJMrWDYZ0dN4.rst) (FLS: fls_7kb6ltajgiou)
Potentially Relevant Guidelines (Heuristic)
Note: use --include-heuristic-details to show matches.
- fls_iuzvtr3oax1o (14.3:12) score 90 [content_changed]
- fls_P6dFw89ZDKv2 (14.3:9) score 80 [added]
- fls_uSajfdSsbxna (14.3:5) score 80 [added]
- fls_opn5n5t2mo3m (14.3:4) score 75 [content_changed]
- fls_aam34hsRmKU2 (14.7:29) score 65 [added]
- fls_sUhnfV62HJrb (14.7:27) score 65 [added]
- fls_7k88ypcgaoff (14.3:7) score 65 [content_changed]
- fls_e02um1gb89d0 (6.18:26) score 65 [content_changed]
- fls_QGdeRTe0H1Uc (14.7:28) score 60 [added]
- fls_RUiFQ17bmRLt (14.7:26) score 60 [content_changed]
- fls_Gc5RpT8nYvQm (6.18:63) score 55 [added]
- fls_LV94x3HlpBWk (14.7:30) score 55 [added]
- fls_Nc6JvS9rFaLm (6.18:36) score 55 [added]
- fls_kM6dZv3PaNqT (6.18:20) score 55 [added]
- fls_bzhz5wjd90ii (6.18:19) score 55 [content_changed]
- fls_iQOgxNihUEr7 (14.7:21) score 55 [content_changed]
- fls_yY58pFpkig9o (14.7:17) score 55 [content_changed]
- fls_Av4JyT9nMkRp (6.18:62) score 50 [added]
- fls_Cw2RsH7pVnQx (6.18:52) score 50 [added]
- fls_2bkcn83smy2y (14.7:9) score 50 [content_changed]
- fls_FILuR3pfwjw3 (14.7:20) score 50 [content_changed]
- fls_ar03D5rxjzy0 (14.7:18) score 50 [content_changed]
- fls_Er5TmL9bXwVq (6.18:14) score 45 [added]
- fls_Lc8EwS5rYpBn (6.18:21) score 45 [added]
- fls_Lm5WqZ2dJvYp (6.18:39) score 45 [added]
- fls_Nw2KxL7qVmRs (6.18:64) score 45 [added]
- fls_Qr3TcH8vNpKs (6.18:38) score 45 [added]
- fls_Rp5HxK8wJqYd (6.18:59) score 45 [added]
- fls_Td7McP9rQxVn (14.4.1:8) score 45 [added]
- fls_Uv7QsP2nKcDx (6.18:11) score 45 [added]
- fls_Yq4NhC8sRpJm (6.18:16) score 45 [added]
- fls_gNQBzI92IAir (6.18:13) score 45 [added]
- fls_gfD9XwVj5hab (6.18:44) score 45 [added]
- fls_vQ3tHg9XmDkF (4.12.7:58) score 45 [added]
- fls_gAWsqibl4GLq (14.7:8) score 45 [content_changed]
- fls_iNUBX5fJAI1N (14.7:23) score 45 [content_changed]
- fls_st9onPgDrc8y (4.12.7:57) score 45 [content_changed]
- fls_3TGpt9OGydQi (6.18:1) score 40 [added]
- fls_7OkU5RVrAyev (6.18:2) score 40 [added]
- fls_8Vrz9SNfjSh7 (6.18:66) score 40 [added]
- fls_DT4N2rr6wpvZ (6.18:12) score 40 [added]
- fls_Fj8QpM3dLsVt (6.18:54) score 40 [added]
- fls_Kz7NvR2xYpWm (6.18:56) score 40 [added]
- fls_Nt6QmC3sLpXz (6.18:61) score 40 [added]
- fls_Qf4VnH8sMxRa (6.18:55) score 40 [added]
- fls_Rh9TsD4vQpLm (6.18:65) score 40 [added]
- fls_Rt5XcG8nMbPw (6.18:50) score 40 [added]
- fls_Vr9MqJ5xNsYd (6.18:60) score 40 [added]
- fls_Wm4QvN7xTcRb (6.18:48) score 40 [added]
- fls_2UyFcB6Our1v (14.7:6) score 40 [content_changed]
- fls_90hQvSh7Bfyg (14.7:15) score 40 [content_changed]
- fls_irdKqoYzBM0M (14.7:7) score 40 [content_changed]
- fls_ldr7tsuqw34s (14.7:22) score 40 [content_changed]
- fls_sxo1jb25pl8a (14.7:2) score 40 [content_changed]
- fls_AAuyKfxLgJ43 (6.18:15) score 35 [added]
- fls_Bd9TmL4qVcNs (6.18:58) score 35 [added]
- fls_Dp8aJr2LqYwS (6.18:47) score 35 [added]
- fls_Et6PqW9nRcVm (15.9:4) score 35 [added]
- fls_Hw6CkR3mVzQn (6.18:43) score 35 [added]
- fls_Ks9FdL3pVxQa (6.18:49) score 35 [added]
- fls_Pb7MzD4wQkXe (6.18:53) score 35 [added]
- fls_Xd4LqN9vTrPm (6.18:42) score 35 [added]
- fls_Yh2NqT6vLsCk (6.18:51) score 35 [added]
- fls_Zc6TbK2wLpNd (6.18:57) score 35 [added]
- fls_Zm9VxF5pQwLd (6.18:45) score 35 [added]
- fls_sbtx1l6n2tp2 (6.18:46) score 35 [content_changed]
- fls_Bx8KsV4nQdRt (6.18:40) score 30 [added]
- fls_Mv2YpG7sLcHw (6.18:41) score 30 [added]
- fls_72JHo343O7jp (5:9) score 30 [content_changed]
- fls_lbsfhg42yiqy (15.8:13) score 25 [content_changed]
- fls_7yybrl2J37Et (15.9:5) score 20 [added]
- fls_Jp4NsK8vYqRc (15.8:14) score 20 [added]
- fls_Vq8LdN2xWmTs (15.8:33) score 20 [added]
- fls_X4y3QltM208J (5.12:17) score 20 [added]
- fls_6bwTtGKb7ba7 (5:10) score 15 [content_changed]
- fls_fnvr5w2wzxns (15.8:21) score 15 [content_changed]
- fls_ptk6yibqyfzi (15.8:32) score 15 [content_changed]
- fls_a5tmilqxdb6f (15.9:6) score 10 [content_changed]
New Paragraphs With Nearby Guidelines
- fls_3TGpt9OGydQi (6.18:1)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_7OkU5RVrAyev (6.18:2)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_8Vrz9SNfjSh7 (6.18:66)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_AAuyKfxLgJ43 (6.18:15)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Av4JyT9nMkRp (6.18:62)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Bd9TmL4qVcNs (6.18:58)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Bx8KsV4nQdRt (6.18:40)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Cw2RsH7pVnQx (6.18:52)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_DT4N2rr6wpvZ (6.18:12)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Dp8aJr2LqYwS (6.18:47)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Er5TmL9bXwVq (6.18:14)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Fj8QpM3dLsVt (6.18:54)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Gc5RpT8nYvQm (6.18:63)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Hw6CkR3mVzQn (6.18:43)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Ks9FdL3pVxQa (6.18:49)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Kz7NvR2xYpWm (6.18:56)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_LV94x3HlpBWk (14.7:30)
- Same chapter: compl_ex_xyaShvxL9JAM
- fls_Lc8EwS5rYpBn (6.18:21)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Lm5WqZ2dJvYp (6.18:39)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Mv2YpG7sLcHw (6.18:41)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Nc6JvS9rFaLm (6.18:36)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Nt6QmC3sLpXz (6.18:61)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Nw2KxL7qVmRs (6.18:64)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_P6dFw89ZDKv2 (14.3:9)
- Same section: compl_ex_xyaShvxL9JAM
- fls_Pb7MzD4wQkXe (6.18:53)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_QGdeRTe0H1Uc (14.7:28)
- Same chapter: compl_ex_xyaShvxL9JAM
- fls_Qf4VnH8sMxRa (6.18:55)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Qr3TcH8vNpKs (6.18:38)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Rh9TsD4vQpLm (6.18:65)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Rp5HxK8wJqYd (6.18:59)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Rt5XcG8nMbPw (6.18:50)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Td7McP9rQxVn (14.4.1:8)
- Same chapter: compl_ex_xyaShvxL9JAM
- fls_Uv7QsP2nKcDx (6.18:11)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Vr9MqJ5xNsYd (6.18:60)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Wm4QvN7xTcRb (6.18:48)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Xd4LqN9vTrPm (6.18:42)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Yh2NqT6vLsCk (6.18:51)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Yq4NhC8sRpJm (6.18:16)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Zc6TbK2wLpNd (6.18:57)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_Zm9VxF5pQwLd (6.18:45)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_aam34hsRmKU2 (14.7:29)
- Same chapter: compl_ex_xyaShvxL9JAM
- fls_gNQBzI92IAir (6.18:13)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_gfD9XwVj5hab (6.18:44)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_kM6dZv3PaNqT (6.18:20)
- Same chapter: bib_7y0GAMmtMhch, bib_kMbiWbn8Z6g5, gui_7y0GAMmtMhch, compl_ex_uilHTIOgxD37, bib_LvmzGKdsAgI5, bib_RHvQj8BHlz9b, compl_ex_oneKuF52yzrx, bib_dCquvqE1csI3, bib_WNCi5njUWLuZ, compl_ex_oBoluiKSvREu
- fls_sUhnfV62HJrb (14.7:27)
- Same chapter: compl_ex_xyaShvxL9JAM
- fls_uSajfdSsbxna (14.3:5)
- Same section: compl_ex_xyaShvxL9JAM
- fls_vQ3tHg9XmDkF (4.12.7:58)
- Same chapter: bib_Bib7x9KmPq2nL, bib_Bob7x9KmPq2nL, compl_ex_WTe7GoPu5Ez1
Added Paragraphs
- fls_3TGpt9OGydQi (6.18:1) expressions.html#fls_3TGpt9OGydQi
A:ds:MatchArmGuardConditionOperand is any expression in category:s:Expression, except expressions in categories:s:AssignmentExpression,:s:CompoundAssignmentExpression,:s:LazyBooleanExpression,:s:RangeFromExpression,:s:RangeFromToExpression, and:s:RangeInclusiveExpression.
- fls_7OkU5RVrAyev (6.18:2) expressions.html#fls_7OkU5RVrAyev
```text
A:ds:`MatchArmGuardScrutinee` is any expression in category:s:`Expression`, except expressions in categories:s:`AssignmentExpression`,:s:`CompoundAssignmentExpression`,:s:`LazyBooleanExpression`,:s:`RangeFromExpression`,:s:`RangeFromToExpression`, and:s:`RangeInclusiveExpression`.
- fls_7yybrl2J37Et (15.9:5) ownership-and-deconstruction.html#fls_7yybrl2J37Et
When a match arm guard evaluates to false, the [let binding]s and [temporary]s associated with the related match arm are dropped before the next pattern or match arm is considered.
- fls_8Vrz9SNfjSh7 (6.18:66) expressions.html#fls_8Vrz9SNfjSh7
```text
A match arm guard chain consisting of a match arm guard let pattern followed by a match arm guard condition operand.
- fls_AAuyKfxLgJ43 (6.18:15) expressions.html#fls_AAuyKfxLgJ43
A match arm guard let pattern is a match arm guard condition that consists of a pattern and a match arm guard scrutinee.
- fls_Av4JyT9nMkRp (6.18:62) expressions.html#fls_Av4JyT9nMkRp
```text
If every match arm guard condition of the chain has been evaluated without the match arm guard evaluating to false, then the match arm guard evaluates to true.
- fls_Bd9TmL4qVcNs (6.18:58) expressions.html#fls_Bd9TmL4qVcNs
The match arm guard scrutinee is evaluated.
- fls_Bx8KsV4nQdRt (6.18:40) expressions.html#fls_Bx8KsV4nQdRt
```text
If pattern matching with the pattern succeeds, then:
- fls_Cw2RsH7pVnQx (6.18:52) expressions.html#fls_Cw2RsH7pVnQx
Each match arm guard condition of the chain is evaluated in source order as follows:
- fls_DT4N2rr6wpvZ (6.18:12) expressions.html#fls_DT4N2rr6wpvZ
```text
A match arm guard chain is a sequence of one or more [match arm guard condition]s, separated by &&.
- fls_Dp8aJr2LqYwS (6.18:47) expressions.html#fls_Dp8aJr2LqYwS
If the match arm guard has a match arm guard operand, then:
- fls_Er5TmL9bXwVq (6.18:14) expressions.html#fls_Er5TmL9bXwVq
```text
A match arm guard condition operand is a match arm guard condition that consists of an expression.
- fls_Et6PqW9nRcVm (15.9:4) ownership-and-deconstruction.html#fls_Et6PqW9nRcVm
Evaluated [match arm guard let pattern]s that have [let binding]s or [temporary]s associated with the drop scope of a match arm are processed in reverse source order. For each such pattern, its [let binding]s, if any, are dropped in reverse declaration order before the [temporary]s created while evaluating its match arm guard scrutinee are dropped in reverse creation order.
- fls_Fj8QpM3dLsVt (6.18:54) expressions.html#fls_Fj8QpM3dLsVt
```text
The match arm guard condition operand is evaluated.
- fls_Gc5RpT8nYvQm (6.18:63) expressions.html#fls_Gc5RpT8nYvQm
During the evaluation of a match arm guard, each binding introduced by the pattern of the related match arm matcher is accessed through a shared reference to the matched part of the subject expression's value.
- fls_Hw6CkR3mVzQn (6.18:43) expressions.html#fls_Hw6CkR3mVzQn
```text
If the match arm guard evaluates to true, then the match arm matcher succeeds and its evaluation is complete.
- fls_Jp4NsK8vYqRc (15.8:14) ownership-and-deconstruction.html#fls_Jp4NsK8vYqRc
The parent drop scope of the match arm guard scrutinee of a match arm guard let pattern is the drop scope of the match arm that contains the match arm guard.
- fls_Ks9FdL3pVxQa (6.18:49) expressions.html#fls_Ks9FdL3pVxQa
```text
If the match arm guard operand evaluates to false, then the match arm guard evaluates to false and its evaluation is complete.
- fls_Kz7NvR2xYpWm (6.18:56) expressions.html#fls_Kz7NvR2xYpWm
If the match arm guard condition operand evaluates to true, then evaluation continues with the next match arm guard condition, if any.
- fls_LV94x3HlpBWk (14.7:30) entities-and-resolution.html#fls_LV94x3HlpBWk
```text
A simple import shall not refer to [enum variant]s through a type alias.
- fls_Lc8EwS5rYpBn (6.18:21) expressions.html#fls_Lc8EwS5rYpBn
The expected type of the pattern of a match arm guard let pattern is the type of its match arm guard scrutinee.
- fls_Lm5WqZ2dJvYp (6.18:39) expressions.html#fls_Lm5WqZ2dJvYp
```text
If pattern matching with the pattern and the value of the subject expression fails, then evaluation continues with the next pattern, if any.
- fls_Mv2YpG7sLcHw (6.18:41) expressions.html#fls_Mv2YpG7sLcHw
If the match arm matcher has no match arm guard, then the match arm matcher succeeds and its evaluation is complete.
- fls_Nc6JvS9rFaLm (6.18:36) expressions.html#fls_Nc6JvS9rFaLm
```text
When the pattern of a match arm matcher is an or-pattern, each pattern-without-alternation of the or-pattern is considered in source order during evaluation of the match arm matcher. Otherwise, the pattern itself is considered.
- fls_Nt6QmC3sLpXz (6.18:61) expressions.html#fls_Nt6QmC3sLpXz
If the pattern matching succeeds, then any [binding]s introduced by the pattern are bound to the matched [value]s as described in fls_t34oqarwcusu, and evaluation continues with the next match arm guard condition, if any.
- fls_Nw2KxL7qVmRs (6.18:64) expressions.html#fls_Nw2KxL7qVmRs
```text
If the binding mode of such a binding is by value, then the copy or move described by fls_pxvtqxke1enp is performed only if the related match arm guard evaluates to true.
- fls_P6dFw89ZDKv2 (14.3:9) entities-and-resolution.html#fls_P6dFw89ZDKv2
The first path segment of a global path shall be expressed as an identifier whose name matches the name of a candidate external prelude entity.
- fls_Pb7MzD4wQkXe (6.18:53) expressions.html#fls_Pb7MzD4wQkXe
```text
If the match arm guard condition is a match arm guard condition operand, then:
- fls_QGdeRTe0H1Uc (14.7:28) entities-and-resolution.html#fls_QGdeRTe0H1Uc
When a path segment expressed as keyword super is used to import a parent module, the imported entity shall be subject to a renaming.
- fls_Qf4VnH8sMxRa (6.18:55) expressions.html#fls_Qf4VnH8sMxRa
```text
If the match arm guard condition operand evaluates to false, then the match arm guard evaluates to false and no subsequent [match arm guard condition]s are evaluated.
- fls_Qr3TcH8vNpKs (6.18:38) expressions.html#fls_Qr3TcH8vNpKs
Each pattern determined by fls_Nc6JvS9rFaLm is considered in source order as follows:
- fls_Rh9TsD4vQpLm (6.18:65) expressions.html#fls_Rh9TsD4vQpLm
```text
If the related match arm guard evaluates to false, then no copy or move into such a binding is performed.
- fls_Rp5HxK8wJqYd (6.18:59) expressions.html#fls_Rp5HxK8wJqYd
Pattern matching is performed with the pattern of the match arm guard let pattern against the resulting value.
- fls_Rt5XcG8nMbPw (6.18:50) expressions.html#fls_Rt5XcG8nMbPw
```text
If the match arm guard operand evaluates to true, then the match arm guard evaluates to true and its evaluation is complete.
- fls_Td7McP9rQxVn (14.4.1:8) entities-and-resolution.html#fls_Td7McP9rQxVn
Each let binding introduced by a match arm guard let pattern is in scope within the following [match arm guard condition]s of the same match arm guard and within the related match arm body.
- fls_Uv7QsP2nKcDx (6.18:11) expressions.html#fls_Uv7QsP2nKcDx
```text
A match arm guard operand is the operand of a match arm guard that does not have a match arm guard chain.
- fls_Vq8LdN2xWmTs (15.8:33) ownership-and-deconstruction.html#fls_Vq8LdN2xWmTs
The drop scope of the match arm that contains the match arm guard, when the temporary is created while evaluating a match arm guard scrutinee of a match arm guard let pattern.
- fls_Vr9MqJ5xNsYd (6.18:60) expressions.html#fls_Vr9MqJ5xNsYd
```text
If the pattern matching fails, then the match arm guard evaluates to false and no subsequent [match arm guard condition]s are evaluated.
- fls_Wm4QvN7xTcRb (6.18:48) expressions.html#fls_Wm4QvN7xTcRb
The match arm guard operand is evaluated.
- fls_X4y3QltM208J (5.12:17) patterns.html#fls_X4y3QltM208J
```text
For a binding introduced by the pattern of a match arm matcher with a related match arm guard, the timing of a copy or move into a by value binding is specified by the match arm guard dynamic semantics.
- fls_Xd4LqN9vTrPm (6.18:42) expressions.html#fls_Xd4LqN9vTrPm
If the match arm matcher has a match arm guard, then the match arm guard is evaluated.
- fls_Yh2NqT6vLsCk (6.18:51) expressions.html#fls_Yh2NqT6vLsCk
```text
Otherwise, the match arm guard has a match arm guard chain, and:
- fls_Yq4NhC8sRpJm (6.18:16) expressions.html#fls_Yq4NhC8sRpJm
A match arm guard scrutinee is the expression of a match arm guard let pattern whose value is matched against the pattern of that match arm guard let pattern.
- fls_Zc6TbK2wLpNd (6.18:57) expressions.html#fls_Zc6TbK2wLpNd
```text
If the match arm guard condition is a match arm guard let pattern, then:
- fls_Zm9VxF5pQwLd (6.18:45) expressions.html#fls_Zm9VxF5pQwLd
If no considered pattern causes the match arm matcher to succeed, then the match arm matcher fails.
- fls_aam34hsRmKU2 (14.7:29) entities-and-resolution.html#fls_aam34hsRmKU2
```text
A simple import whose import path prefix consists only of namespace qualifier:: and whose simple path consists of a single path segment expressed as keyword self shall not be used.
- fls_gNQBzI92IAir (6.18:13) expressions.html#fls_gNQBzI92IAir
A match arm guard that contains a match arm guard let pattern has a match arm guard chain; otherwise it has a match arm guard operand.
- fls_gfD9XwVj5hab (6.18:44) expressions.html#fls_gfD9XwVj5hab
```text
If the match arm guard evaluates to false, then the drop scope of the related match arm is left, and evaluation continues with the next pattern, including subsequent [pattern-without-alternation]s of the same or-pattern.
- fls_kM6dZv3PaNqT (6.18:20) expressions.html#fls_kM6dZv3PaNqT
The type of a match arm guard condition operand shall be type:c:bool.
- fls_sUhnfV62HJrb (14.7:27) entities-and-resolution.html#fls_sUhnfV62HJrb
```text
A use import with a single path segment expressed as either keyword crate or keyword $crate shall be subject to a renaming.
- fls_uSajfdSsbxna (14.3:5) entities-and-resolution.html#fls_uSajfdSsbxna
If a path segment is expressed as keyword self, then the path segment shall be either the first path segment of a path, or the last path segment of a simple import that appears in a nesting import.
- fls_vQ3tHg9XmDkF (4.12.7:58) types-and-traits.html#fls_vQ3tHg9XmDkF
```text
Infer each match arm guard scrutinee with the expected type set to the type of the pattern of the related match arm guard let pattern.
Removed Paragraphs
- fls_Pxc0Ts8Y7pfW (14.7:27) entities-and-resolution.html#fls_Pxc0Ts8Y7pfW
It shall be subject to a renaming.
- fls_cw006jhlboa (14.3:11) entities-and-resolution.html#fls_cw006jhlboa
```text
If a simple path appears in a use import and starts with a path segment expressed as keyword self, then the path shall be part of the:s:`UseImportContent` of a nesting import as long as the path is a single segment path.
- fls_f5f0x8jstp1g (6.18:32) expressions.html#fls_f5f0x8jstp1g
Otherwise the match arm matcher fails.
- fls_gbb6wbmher5z (6.18:29) expressions.html#fls_gbb6wbmher5z
```text
If the match arm matcher has a match arm guard, then
- fls_hv3xT2CjZuxc (14.7:26) entities-and-resolution.html#fls_hv3xT2CjZuxc
It shall either appear in a nesting import with a non-empty import path prefix, or
- fls_jl4av757yx8j (6.18:30) expressions.html#fls_jl4av757yx8j
```text
The match arm guard is evaluated.
- fls_k68zkb6jv0vz (6.18:28) expressions.html#fls_k68zkb6jv0vz
If the pattern succeeds, then
- fls_k7kliy101m0f (6.18:27) expressions.html#fls_k7kliy101m0f
```text
The pattern of the match arm matcher is evaluated.
- fls_kz2Gij5wHXnl (14.7:17) entities-and-resolution.html#fls_kz2Gij5wHXnl
If the simple path is keyword self and:
- fls_wkh5wztauwhu (6.18:31) expressions.html#fls_wkh5wztauwhu
```text
If the match arm guard evaluates to true, then the match arm matcher succeeds.
- fls_yk8l9zjh7i0d (6.18:33) expressions.html#fls_yk8l9zjh7i0d
Otherwise the match arm matcher fails.
## Content Changes
- fls_2UyFcB6Our1v (14.7:6) entities-and-resolution.html#fls_2UyFcB6Our1v
Before:
```text
If the use import is a glob import then start with the [path segment]s of the glob import's simple path prefix.
After:
If the use import is a glob import then start with the [path segment]s of the glob import's common path prefix.
Diff:
--- before
+++ after
@@ -1 +1 @@
-If the use import is a glob import then start with the [path segment]s of the glob import's simple path prefix.
+If the use import is a glob import then start with the [path segment]s of the glob import's common path prefix.
- fls_2bkcn83smy2y (14.7:9) entities-and-resolution.html#fls_2bkcn83smy2y
Before:
A simple import is a use import that brings all entities it refers to into scope, optionally with a different name than they are declared with by using a renaming.
After:
```text
A:dt:`simple import` is a use import that brings into scope an entity selected by its simple import path, or by its import path prefix when its simple path ends in keyword self and the simple path appears in a nesting import.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A simple import is a use import that brings all entities <entity> it refers to into scope, optionally with a different name than they are declared with by using a renaming.
+A:dt:`simple import` is a use import that brings into scope an entity selected by its simple import path, or by its import path prefix when its simple path ends in keyword self and the simple path appears in a nesting import.
- fls_6bwTtGKb7ba7 (5:10) patterns.html#fls_6bwTtGKb7ba7
Before:
A:dt:let binding is the binding introduced by a let statement, an if let expression, or a while let loop expression.
After:
```text
A:dt:`let binding` is a binding introduced by the pattern of a let statement, an if let expression, a while let loop expression, or a match arm guard let pattern.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A:dt:`let binding` is the binding introduced by a let statement, an if let expression, or a while let loop expression.
+A:dt:`let binding` is a binding introduced by the pattern of a let statement, an if let expression, a while let loop expression, or a match arm guard let pattern.
- fls_72JHo343O7jp (5:9) patterns.html#fls_72JHo343O7jp
Before:
An or-pattern shall not appear in the pattern-without-alternation of a closure parameter, a function parameter, or a let binding.
After:
```text
An or-pattern shall not be used as the top-level pattern of a closure parameter, a function parameter, or a let statement.
Diff:
--- before
+++ after
@@ -1 +1 @@
-An or-pattern shall not appear in the pattern-without-alternation of a closure parameter, a function parameter, or a let binding.
+An or-pattern shall not be used as the top-level pattern of a closure parameter, a function parameter, or a let statement.
- fls_7k88ypcgaoff (14.3:7) entities-and-resolution.html#fls_7k88ypcgaoff
Before:
If a path segment is expressed as keyword super, then the path segment shall either be the first path segment of a path, or the previous path segment of the path shall also be expressed as keyword super.
After:
```text
If a path segment is expressed as keyword super, then each path segment that precedes it in the path shall be expressed as keyword super, except that the first path segment of the path may be expressed as keyword self.
Diff:
--- before
+++ after
@@ -1 +1 @@
-If a path segment is expressed as keyword super, then the path segment shall either be the first path segment of a path, or the previous path segment of the path shall also be expressed as keyword super.
+If a path segment is expressed as keyword super, then each path segment that precedes it in the path shall be expressed as keyword super, except that the first path segment of the path may be expressed as keyword self.
- fls_90hQvSh7Bfyg (14.7:15) entities-and-resolution.html#fls_90hQvSh7Bfyg
Before:
A:dt:simple import path is the path constructed by appending the last path segment of a simple import's simple path to the import path prefix.
After:
```text
A:dt:`simple import path` is the path constructed by appending the last path segment of the path of the simple import to the import path prefix.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A:dt:`simple import path` is the path constructed by appending the last path segment of a simple import's simple path to the import path prefix.
+A:dt:`simple import path` is the path constructed by appending the last path segment of the path of the simple import to the import path prefix.
- fls_FILuR3pfwjw3 (14.7:20) entities-and-resolution.html#fls_FILuR3pfwjw3
Before:
An Entity imported by a simple import subject to a renaming with identifier is brought into scope under the name declared by the renaming.
After:
```text
An entity imported by a simple import subject to a renaming with identifier is brought into scope under the name declared by the renaming.
Diff:
--- before
+++ after
@@ -1 +1 @@
-An Entity imported by a simple import subject to a renaming with identifier is brought into scope under the name declared by the renaming.
+An entity imported by a simple import subject to a renaming with identifier is brought into scope under the name declared by the renaming.
- fls_RUiFQ17bmRLt (14.7:26) entities-and-resolution.html#fls_RUiFQ17bmRLt
Before:
A simple import with a simple path with a single path segment of keyword self shall be subject to the following:
After:
```text
When a path segment expressed as keyword self is used to import the current module, the imported entity shall be subject to a renaming.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A simple import with a simple path with a single path segment of keyword self shall be subject to the following:
+When a path segment expressed as keyword self is used to import the current module, the imported entity shall be subject to a renaming.
- fls_a5tmilqxdb6f (15.9:6) ownership-and-deconstruction.html#fls_a5tmilqxdb6f
Before:
Temporaries are dropped in reverse creation order.
After:
```text
All other [temporary]s are dropped in reverse creation order.
Diff:
--- before
+++ after
@@ -1 +1 @@
-Temporaries <temporary> are dropped in reverse creation order.
+All other [temporary]s are dropped in reverse creation order.
- fls_ar03D5rxjzy0 (14.7:18) entities-and-resolution.html#fls_ar03D5rxjzy0
Before:
Otherwise bring the containing module into scope.
After:
```text
If the simple path is expressed as keyword self, then the simple import brings the containing module into scope.
Diff:
--- before
+++ after
@@ -1 +1 @@
-Otherwise bring the containing module into scope.
+If the simple path is expressed as keyword self, then the simple import brings the containing module into scope.
- fls_bzhz5wjd90ii (6.18:19) expressions.html#fls_bzhz5wjd90ii
Before:
The type of the operand of a match arm guard shall be type:c:bool.
After:
```text
The type of a match arm guard operand shall be type:c:`bool`.
Diff:
--- before
+++ after
@@ -1 +1 @@
-The type of the operand of a match arm guard shall be type:c:`bool`.
+The type of a match arm guard operand shall be type:c:`bool`.
- fls_e02um1gb89d0 (6.18:26) expressions.html#fls_e02um1gb89d0
Before:
The [pattern]s of all [match arm]s taken together shall exhaustively match the [subject expression]'s type.
After:
```text
The [pattern]s of all [match arm]s without a match arm guard taken together shall exhaustively match the [subject expression]'s type.
Diff:
--- before
+++ after
@@ -1 +1 @@
-The [pattern]s of all [match arm]s taken together shall exhaustively match the [subject expression]'s type.
+The [pattern]s of all [match arm]s without a match arm guard taken together shall exhaustively match the [subject expression]'s type.
- fls_fnvr5w2wzxns (15.8:21) ownership-and-deconstruction.html#fls_fnvr5w2wzxns
Before:
A binding declared in a match expression is associated with the drop scope of the match arm of the match expression.
After:
```text
A binding introduced by the pattern of a match arm matcher, or a let binding introduced by a match arm guard let pattern, is associated with the drop scope of the related match arm.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A binding declared in a match expression is associated with the drop scope of the match arm of the match expression.
+A binding introduced by the pattern of a match arm matcher, or a let binding introduced by a match arm guard let pattern, is associated with the drop scope of the related match arm.
- fls_gAWsqibl4GLq (14.7:8) entities-and-resolution.html#fls_gAWsqibl4GLq
Before:
Then if the current use import is the child of a nesting import, prepend the nesting import's simple path prefix to the import path prefix. Repeat this step with the nesting import as the current use import.
After:
```text
Then if the current use import is the child of a nesting import, prepend the nesting import's common path prefix to the import path prefix. Repeat this step with the nesting import as the current use import.
Diff:
--- before
+++ after
@@ -1 +1 @@
-Then if the current use import is the child of a nesting import, prepend the nesting import's simple path prefix to the import path prefix. Repeat this step with the nesting import as the current use import.
+Then if the current use import is the child of a nesting import, prepend the nesting import's common path prefix to the import path prefix. Repeat this step with the nesting import as the current use import.
- fls_iNUBX5fJAI1N (14.7:23) entities-and-resolution.html#fls_iNUBX5fJAI1N
Before:
A glob import outside of a nesting import without a simple path prefix is rejected, but may still be consumed by [macro]s.
After:
```text
A glob import outside of a nesting import without a common path prefix is rejected, but may still be consumed by [macro]s.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A glob import outside of a nesting import without a simple path prefix is rejected, but may still be consumed by [macro]s.
+A glob import outside of a nesting import without a common path prefix is rejected, but may still be consumed by [macro]s.
- fls_iQOgxNihUEr7 (14.7:21) entities-and-resolution.html#fls_iQOgxNihUEr7
Before:
A trait imported by a simple import subject to a renaming with character underscore _ is added into scope without a name.
After:
```text
An entity imported by a simple import subject to a renaming with character underscore _ is added into scope without a name.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A trait imported by a simple import subject to a renaming with character underscore _ is added into scope without a name.
+An entity imported by a simple import subject to a renaming with character underscore _ is added into scope without a name.
- fls_irdKqoYzBM0M (14.7:7) entities-and-resolution.html#fls_irdKqoYzBM0M
Before:
If the use import is a nesting import then start with the [path segment]s of the nesting import's simple path prefix.
After:
```text
If the use import is a nesting import then start with the [path segment]s of the nesting import's common path prefix.
Diff:
--- before
+++ after
@@ -1 +1 @@
-If the use import is a nesting import then start with the [path segment]s of the nesting import's simple path prefix.
+If the use import is a nesting import then start with the [path segment]s of the nesting import's common path prefix.
- fls_iuzvtr3oax1o (14.3:12) entities-and-resolution.html#fls_iuzvtr3oax1o
Before:
If a simple path appears in a use import and starts with a path segment expressed as either keyword crate, keyword $crate, keyword self, or keyword super, then the path shall be the simple path prefix of a glob import or a nesting import, or the simple path of a simple import.
After:
```text
If a simple path appears in a use import and starts with a path segment expressed as either keyword crate, keyword $crate, keyword self, or keyword super, then the path shall be the common path prefix of a glob import or a nesting import, or the path of a simple import.
Diff:
--- before
+++ after
@@ -1 +1 @@
-If a simple path appears in a use import and starts with a path segment expressed as either keyword crate, keyword $crate, keyword self, or keyword super, then the path shall be the simple path prefix of a glob import or a nesting import, or the simple path of a simple import.
+If a simple path appears in a use import and starts with a path segment expressed as either keyword crate, keyword $crate, keyword self, or keyword super, then the path shall be the common path prefix of a glob import or a nesting import, or the path of a simple import.
- fls_lbsfhg42yiqy (15.8:13) ownership-and-deconstruction.html#fls_lbsfhg42yiqy
Before:
The parent drop scope of the operand of a match arm guard is the drop scope of the match arm that contains the match arm guard.
After:
```text
The parent drop scope of a match arm guard operand or a match arm guard condition operand is the drop scope of the match arm that contains the match arm guard.
Diff:
--- before
+++ after
@@ -1 +1 @@
-The parent drop scope of the operand of a match arm guard is the drop scope of the match arm that contains the match arm guard.
+The parent drop scope of a match arm guard operand or a match arm guard condition operand is the drop scope of the match arm that contains the match arm guard.
- fls_ldr7tsuqw34s (14.7:22) entities-and-resolution.html#fls_ldr7tsuqw34s
Before:
A nesting import is a use import that provides a common simple path prefix for its nested [use import]s.
After:
```text
A nesting import is a use import that provides a common common path prefix for its nested [use import]s.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A nesting import is a use import that provides a common simple path prefix for its nested [use import]s.
+A nesting import is a use import that provides a common common path prefix for its nested [use import]s.
- fls_opn5n5t2mo3m (14.3:4) entities-and-resolution.html#fls_opn5n5t2mo3m
Before:
If a path segment is expressed as either keyword crate, keyword $crate, keyword self, or keyword Self, then the path segment shall be the first path segment of a path.
After:
```text
If a path segment is expressed as either keyword crate, keyword $crate, or keyword Self, then the path segment shall be the first path segment of a path.
Diff:
--- before
+++ after
@@ -1 +1 @@
-If a path segment is expressed as either keyword crate, keyword $crate, keyword self, or keyword Self, then the path segment shall be the first path segment of a path.
+If a path segment is expressed as either keyword crate, keyword $crate, or keyword Self, then the path segment shall be the first path segment of a path.
- fls_ptk6yibqyfzi (15.8:32) ownership-and-deconstruction.html#fls_ptk6yibqyfzi
Before:
The drop scope of the operand of a match arm guard.
After:
```text
The drop scope of a match arm guard operand or a match arm guard condition operand.
Diff:
--- before
+++ after
@@ -1 +1 @@
-The drop scope of the operand of a match arm guard.
+The drop scope of a match arm guard operand or a match arm guard condition operand.
- fls_sbtx1l6n2tp2 (6.18:46) expressions.html#fls_sbtx1l6n2tp2
Before:
The evaluation of a match arm guard evaluates its operand. A match arm guard evaluates to true when its operand evaluates to true, otherwise it evaluates to false.
After:
```text
The evaluation of a match arm guard proceeds as follows:
Diff:
--- before
+++ after
@@ -1 +1 @@
-The evaluation of a match arm guard evaluates its operand. A match arm guard evaluates to true when its operand evaluates to true, otherwise it evaluates to false.
+The evaluation of a match arm guard proceeds as follows:
- fls_st9onPgDrc8y (4.12.7:57) types-and-traits.html#fls_st9onPgDrc8y
Before:
Infer the [operand]s of all [match arm guard]s with expected type:c:bool.
After:
```text
Infer each match arm guard operand and each match arm guard condition operand with expected type:c:`bool`.
Diff:
--- before
+++ after
@@ -1 +1 @@
-Infer the [operand]s of all [match arm guard]s with expected type:c:`bool`.
+Infer each match arm guard operand and each match arm guard condition operand with expected type:c:`bool`.
- fls_sxo1jb25pl8a (14.7:2) entities-and-resolution.html#fls_sxo1jb25pl8a
Before:
A simple path prefix is the leading simple path of a glob import or a nesting import.
After:
```text
A:dt:`common path prefix` is the leading simple path of a glob import or a nesting import.
Diff:
--- before
+++ after
@@ -1 +1 @@
-A simple path prefix is the leading simple path of a glob import or a nesting import.
+A:dt:`common path prefix` is the leading simple path of a glob import or a nesting import.
- fls_yY58pFpkig9o (14.7:17) entities-and-resolution.html#fls_yY58pFpkig9o
Before:
The simple import is in a nesting import, then bring the entity in type namespace that the import path prefix resolves to into scope.
After:
```text
If the simple import appears in a nesting import and the last path segment of its simple path is expressed as keyword self, then the simple import brings the entity in type namespace that the import path prefix resolves to into scope.
Diff:
--- before
+++ after
@@ -1 +1 @@
-The simple import is in a nesting import, then bring the entity in type namespace that the import path prefix resolves to into scope.
+If the simple import appears in a nesting import and the last path segment of its simple path is expressed as keyword self, then the simple import brings the entity in type namespace that the import path prefix resolves to into scope.
Renumbered Only
- fls_07AIc06bGnZt: 4.12.7:88 -> 4.12.7:89
- fls_093YxG6YXQz2: 15.9:19 -> 15.9:21
- fls_0RZ7w0YqmzE3: 4.12.7:98 -> 4.12.7:99
- fls_0eATa6RtDNtA: 4.12.7:61 -> 4.12.7:62
- fls_17ag0wzdbxv6: 6.18:12 -> 6.18:22
- fls_1vZFa5mDEbXW: 15.8:21 -> 15.8:22
- fls_21ay7EUUUmhx: 4.12.7:93 -> 4.12.7:94
- fls_28c21rzc6rsp: 14.3:31 -> 14.3:32
- fls_2dg7wl68z7ar: 6.18:22 -> 6.18:32
- fls_2peq1tihglnr: 15.8:24 -> 15.8:25
- fls_3i348l3pbtrx: 15.9:9 -> 15.9:11
- fls_3jtU8grRaMM9: 15.8:22 -> 15.8:23
- fls_43yqlxjr3a10: 15.9:15 -> 15.9:17
- fls_4dv7x9nh2h4e: 6.18:26 -> 6.18:37
- fls_4s2n95h4rd1q: 14.3:32 -> 14.3:33
- fls_4sgca9wcl8h0: 15.9:11 -> 15.9:13
- fls_4sh2yrslszvb: 6.18:17 -> 6.18:27
- fls_560437qmeqtr: 15.8:28 -> 15.8:29
- fls_56J8BlLOuvr4: 4.12.7:76 -> 4.12.7:77
- fls_5dlnffim6fso: 14.7:30 -> 14.7:31
- fls_5jDBPymVKzDv: 4.12.7:73 -> 4.12.7:74
- fls_5m3u3k6f00bd: 15.8:14 -> 15.8:15
- fls_5w964phrru82: 6.18:13 -> 6.18:23
- fls_774uryecc2sx: 14.3:5 -> 14.3:6
- fls_7kb6ltajgiou: 14.3:7 -> 14.3:8
- fls_7rwo0he8x143: 15.9:14 -> 15.9:16
- fls_7sm3206va03c: 14.3:24 -> 14.3:25
- fls_81nnizrxgrsm: 6.18:25 -> 6.18:35
- fls_8VgAhOgDOk0y: 4.12.7:94 -> 4.12.7:95
- fls_8cunkfc6x24q: 15.8:29 -> 15.8:30
- fls_8dba4o5qg8js: 6.18:15 -> 6.18:25
- fls_8edzBBIo7jF7: 4.12.7:91 -> 4.12.7:92
- fls_8r39duatupxw: 15.8:23 -> 15.8:24
- fls_8wjdichfxp0y: 6.18:7 -> 6.18:9
- fls_9GDElCkL1UbH: 4.12.7:60 -> 4.12.7:61
- fls_9rhflreuubhq: 14.7:31 -> 14.7:32
- fls_A36NBOl1FTCb: 4.12.7:89 -> 4.12.7:90
- fls_Ai1jN5a8h3Dz: 14.3:20 -> 14.3:21
- fls_CVfHkJq1PixR: 4.12.7:97 -> 4.12.7:98
- fls_Esa4ST7lLp8T: 4.12.7:59 -> 4.12.7:60
- fls_F999gqcBfff9: 4.12.7:58 -> 4.12.7:59
- fls_FojOvB6l3lAh: 4.12.7:96 -> 4.12.7:97
- fls_Fv8fj9R8prUV: 4.12.7:84 -> 4.12.7:85
- fls_IoceMi7HfqsK: 4.12.7:66 -> 4.12.7:67
- fls_JKZHF3ZDHshw: 4.12.7:68 -> 4.12.7:69
- fls_K8whhUwAUVqR: 15.9:7 -> 15.9:9
- fls_NpCrm4t03oQg: 15.9:8 -> 15.9:10
- fls_NpwLzJJH9cGw: 4.12.7:75 -> 4.12.7:76
- fls_O2r51Xrmmj38: 4.12.7:86 -> 4.12.7:87
- fls_OVVY9CE0pGtJ: 4.12.7:95 -> 4.12.7:96
- fls_QDWVv2nTufX7: 4.12.7:85 -> 4.12.7:86
- fls_QjNQbQhUcRTT: 14.3:23 -> 14.3:24
- fls_RPMOAaZ6lflI: 6.18:9 -> 6.18:17
- fls_RZvIsApi4WQm: 14.3:26 -> 14.3:27
- fls_SZmiJjI43fQL: 4.12.7:100 -> 4.12.7:101
- fls_TAJ3JJwIeDbQ: 4.12.7:105 -> 4.12.7:106
- fls_U46IXItEKMCB: 4.12.7:104 -> 4.12.7:105
- fls_UFMyHzk6ucsT: 4.12.7:70 -> 4.12.7:71
- fls_VrpaTruoBwtF: 4.12.7:106 -> 4.12.7:107
- fls_YnUsdSM4x9eq: 14.3:9 -> 14.3:11
- fls_YppNCEPMYqWJ: 4.12.7:99 -> 4.12.7:100
- fls_a2m4ibzhgupa: 15.9:12 -> 15.9:14
- fls_a7lsq2kkzkk4: 15.9:16 -> 15.9:18
- fls_aiSI99pbAYqT: 4.12.7:64 -> 4.12.7:65
- fls_asvuef2pc3m0: 15.8:27 -> 15.8:28
- fls_b96Zca6oFn82: 4.12.7:87 -> 4.12.7:88
- fls_be2djziKJw3I: 4.12.7:80 -> 4.12.7:81
- fls_bewcu5xceu8i: 15.8:16 -> 15.8:17
- fls_ce73bg0BqV1X: 14.7:20 -> 14.7:19
- fls_chtj3hcfe3ap: 14.3:13 -> 14.3:14
- fls_cul31g1kkz5c: 14.3:29 -> 14.3:30
- fls_cy7vza3flqi9: 14.3:28 -> 14.3:29
- fls_d9gerg12hm2d: 6.18:3 -> 6.18:5
- fls_dhfIPP4yR3Tt: 15.9:17 -> 15.9:19
- fls_dltmd8e8c5ia: 15.8:32 -> 15.8:34
- fls_e65q3iz50j6a: 14.3:19 -> 14.3:20
- fls_eBacCVlDaKYK: 14.4.1:8 -> 14.4.1:9
- fls_ei4pbeksd1v8: 6.18:1 -> 6.18:3
- fls_f1ciozzetj5a: 14.3:27 -> 14.3:28
- fls_f21GNntBOxaz: 4.12.7:74 -> 4.12.7:75
- fls_fjV22WcosNnt: 4.12.7:78 -> 4.12.7:79
- fls_g07zq3n55094: 15.9:5 -> 15.9:7
- fls_g551l8r8yh6d: 6.18:18 -> 6.18:28
- fls_g6xyz0beps3o: 6.18:14 -> 6.18:24
- fls_gNWXh61ZXXt8: 15.9:20 -> 15.9:22
- fls_go3bvd23vzi9: 15.9:13 -> 15.9:15
- fls_h2zikgmazoxx: 14.3:17 -> 14.3:18
- fls_h3OVuCdsKPhV: 4.12.7:79 -> 4.12.7:80
- fls_h3mmmIBR72kV: 4.12.7:90 -> 4.12.7:91
- fls_hH58ftCxBYzm: 4.12.7:63 -> 4.12.7:64
- fls_hPZmcfQiNasT: 4.12.7:71 -> 4.12.7:72
- fls_hs1rr54hu18w: 6.18:8 -> 6.18:10
- fls_huynsyx13gsz: 14.3:25 -> 14.3:26
- fls_iHHhlxCiqNWZ: 15.8:17 -> 15.8:18
- fls_il09n7sq0a3k: 15.8:25 -> 15.8:26
- fls_ipWTrhF4xakC: 4.12.7:101 -> 4.12.7:102
- fls_jK2pIVxOmtJ8: 4.12.7:77 -> 4.12.7:78
- fls_jwxykea99psw: 6.18:20 -> 6.18:30
- fls_knv1affr2o8t: 6.18:10 -> 6.18:18
- fls_kv5bpq8rf1j9: 14.3:12 -> 14.3:13
- fls_l45i24ikfavm: 6.18:2 -> 6.18:4
- fls_lDkPMB5UI58B: 4.12.7:67 -> 4.12.7:68
- fls_lUg26vFuSePP: 4.12.7:92 -> 4.12.7:93
- fls_lrdrtedyz28i: 6.18:5 -> 6.18:7
- fls_m86ljncnmo7j: 15.8:15 -> 15.8:16
- fls_mCISAdm7sjRs: 4.12.7:83 -> 4.12.7:84
- fls_mvi9z1x836qu: 6.18:24 -> 6.18:34
- fls_n108lvc4otoc: 15.8:30 -> 15.8:31
- fls_n77icl6idazp: 14.3:8 -> 14.3:10
- fls_nHt0LVSiwTB3: 4.12.7:81 -> 4.12.7:82
- fls_nRgjCLYZL3iX: 14.3:15 -> 14.3:16
- fls_nj7s6xmzx55f: 14.3:18 -> 14.3:19
- fls_no853u27p4f3: 14.3:30 -> 14.3:31
- fls_oe8l81y0wnao: 15.9:10 -> 15.9:12
- fls_oj8dg28xw5yp: 6.18:4 -> 6.18:6
- fls_ojdntg5i79pb: 14.3:33 -> 14.3:34
- fls_pgulnjeoxwtj: 6.18:21 -> 6.18:31
- fls_q1JZZMxqWXCk: 4.12.7:62 -> 4.12.7:63
- fls_qkYF2J7GVah8: 14.3:22 -> 14.3:23
- fls_rT6zpG3cYhaF: 4.12.7:69 -> 4.12.7:70
- fls_rgC3Iea5p9Kr: 4.12.7:72 -> 4.12.7:73
- fls_s1wbqld139gz: 15.8:26 -> 15.8:27
- fls_s86dgrdpl1w4: 14.7:32 -> 14.7:33
- fls_sLCBZ3vG1AWs: 4.12.7:82 -> 4.12.7:83
- fls_swXXkbZGLPKa: 15.8:18 -> 15.8:19
- fls_tvvycup09b51: 14.3:16 -> 14.3:17
- fls_vrqgac634wpr: 15.8:19 -> 15.8:20
- fls_wB3fVglLOqbZ: 14.7:28 -> 14.7:24
- fls_wm61yeclairz: 14.3:14 -> 14.3:15
- fls_y44jzkbv74bv: 6.18:19 -> 6.18:29
- fls_ybv0tdu7dnj5: 14.3:21 -> 14.3:22
- fls_yv11febo0kyb: 6.18:23 -> 6.18:33
- fls_z2UkZX5Qdmws: 4.12.7:103 -> 4.12.7:104
- fls_zJQ4LecT1HYd: 6.18:6 -> 6.18:8
- fls_zQGkVGWIzMQ7: 15.9:6 -> 15.9:8
- fls_zRdxowO4eDMN: 4.12.7:65 -> 4.12.7:66
- fls_zgRFKbfdI6ro: 4.12.7:102 -> 4.12.7:103
- fls_zmYSBW995kSN: 14.7:29 -> 14.7:25
- fls_zxFM7EoE2Xq8: 15.9:18 -> 15.9:20
Section Reordering
Header Changes
What to do
@guidelines-bot /accept-no-fls-changes(triage+ only).uv run python scripts/fls_audit.py --print-diffs.docs/fls-audit.mdfor the full audit workflow.Audit run
2026-07-20T05:11:14.795047+00:00FLS Spec Lock Audit Report
/home/runner/work/safety-critical-rust-coding-guidelines/safety-critical-rust-coding-guidelines/src/spec.lockhttps://rust-lang.github.io/fls/paragraph-ids.json4ab4a37416e3fb1b47329e001f4add7bc6a9e9e23977e597187d55140d57c75227a116b6afc7a852Summary
Affected Guidelines
src/coding-guidelines/macros/gui_SJMrWDYZ0dN4.rst) (FLS: fls_7kb6ltajgiou)Potentially Relevant Guidelines (Heuristic)
Note: use
--include-heuristic-detailsto show matches.New Paragraphs With Nearby Guidelines
Added Paragraphs
A:ds:
MatchArmGuardConditionOperandis any expression in category:s:Expression, except expressions in categories:s:AssignmentExpression,:s:CompoundAssignmentExpression,:s:LazyBooleanExpression,:s:RangeFromExpression,:s:RangeFromToExpression, and:s:RangeInclusiveExpression.When a match arm guard evaluates to false, the [let binding]s and [temporary]s associated with the related match arm are dropped before the next pattern or match arm is considered.
A match arm guard let pattern is a match arm guard condition that consists of a pattern and a match arm guard scrutinee.
The match arm guard scrutinee is evaluated.
Each match arm guard condition of the chain is evaluated in source order as follows:
If the match arm guard has a match arm guard operand, then:
Evaluated [match arm guard let pattern]s that have [let binding]s or [temporary]s associated with the drop scope of a match arm are processed in reverse source order. For each such pattern, its [let binding]s, if any, are dropped in reverse declaration order before the [temporary]s created while evaluating its match arm guard scrutinee are dropped in reverse creation order.
During the evaluation of a match arm guard, each binding introduced by the pattern of the related match arm matcher is accessed through a shared reference to the matched part of the subject expression's value.
The parent drop scope of the match arm guard scrutinee of a match arm guard let pattern is the drop scope of the match arm that contains the match arm guard.
If the match arm guard condition operand evaluates to true, then evaluation continues with the next match arm guard condition, if any.
The expected type of the pattern of a match arm guard let pattern is the type of its match arm guard scrutinee.
If the match arm matcher has no match arm guard, then the match arm matcher succeeds and its evaluation is complete.
If the pattern matching succeeds, then any [binding]s introduced by the pattern are bound to the matched [value]s as described in fls_t34oqarwcusu, and evaluation continues with the next match arm guard condition, if any.
The first path segment of a global path shall be expressed as an identifier whose name matches the name of a candidate external prelude entity.
When a path segment expressed as keyword super is used to import a parent module, the imported entity shall be subject to a renaming.
Each pattern determined by fls_Nc6JvS9rFaLm is considered in source order as follows:
Pattern matching is performed with the pattern of the match arm guard let pattern against the resulting value.
Each let binding introduced by a match arm guard let pattern is in scope within the following [match arm guard condition]s of the same match arm guard and within the related match arm body.
The drop scope of the match arm that contains the match arm guard, when the temporary is created while evaluating a match arm guard scrutinee of a match arm guard let pattern.
The match arm guard operand is evaluated.
If the match arm matcher has a match arm guard, then the match arm guard is evaluated.
A match arm guard scrutinee is the expression of a match arm guard let pattern whose value is matched against the pattern of that match arm guard let pattern.
If no considered pattern causes the match arm matcher to succeed, then the match arm matcher fails.
A match arm guard that contains a match arm guard let pattern has a match arm guard chain; otherwise it has a match arm guard operand.
The type of a match arm guard condition operand shall be type:c:
bool.If a path segment is expressed as keyword self, then the path segment shall be either the first path segment of a path, or the last path segment of a simple import that appears in a nesting import.
Removed Paragraphs
It shall be subject to a renaming.
Otherwise the match arm matcher fails.
It shall either appear in a nesting import with a non-empty import path prefix, or
If the pattern succeeds, then
If the simple path is keyword self and:
Otherwise the match arm matcher fails.
After:
Diff:
Before:
A simple import is a use import that brings all entities it refers to into scope, optionally with a different name than they are declared with by using a renaming.
Diff:
Before:
A:dt:
let bindingis the binding introduced by a let statement, an if let expression, or a while let loop expression.Diff:
Before:
An or-pattern shall not appear in the pattern-without-alternation of a closure parameter, a function parameter, or a let binding.
Diff:
Before:
If a path segment is expressed as keyword super, then the path segment shall either be the first path segment of a path, or the previous path segment of the path shall also be expressed as keyword super.
Diff:
Before:
A:dt:
simple import pathis the path constructed by appending the last path segment of a simple import's simple path to the import path prefix.Diff:
Before:
An Entity imported by a simple import subject to a renaming with identifier is brought into scope under the name declared by the renaming.
Diff:
Before:
A simple import with a simple path with a single path segment of keyword self shall be subject to the following:
Diff:
Before:
Temporaries are dropped in reverse creation order.
Diff:
Before:
Otherwise bring the containing module into scope.
Diff:
Before:
The type of the operand of a match arm guard shall be type:c:
bool.Diff:
Before:
The [pattern]s of all [match arm]s taken together shall exhaustively match the [subject expression]'s type.
Diff:
Before:
A binding declared in a match expression is associated with the drop scope of the match arm of the match expression.
Diff:
Before:
Then if the current use import is the child of a nesting import, prepend the nesting import's simple path prefix to the import path prefix. Repeat this step with the nesting import as the current use import.
Diff:
Before:
A glob import outside of a nesting import without a simple path prefix is rejected, but may still be consumed by [macro]s.
Diff:
Before:
A trait imported by a simple import subject to a renaming with character underscore _ is added into scope without a name.
Diff:
Before:
If the use import is a nesting import then start with the [path segment]s of the nesting import's simple path prefix.
Diff:
Before:
If a simple path appears in a use import and starts with a path segment expressed as either keyword crate, keyword $crate, keyword self, or keyword super, then the path shall be the simple path prefix of a glob import or a nesting import, or the simple path of a simple import.
Diff:
Before:
The parent drop scope of the operand of a match arm guard is the drop scope of the match arm that contains the match arm guard.
Diff:
Before:
A nesting import is a use import that provides a common simple path prefix for its nested [use import]s.
Diff:
Before:
If a path segment is expressed as either keyword crate, keyword $crate, keyword self, or keyword Self, then the path segment shall be the first path segment of a path.
Diff:
Before:
The drop scope of the operand of a match arm guard.
Diff:
Before:
The evaluation of a match arm guard evaluates its operand. A match arm guard evaluates to true when its operand evaluates to true, otherwise it evaluates to false.
Diff:
Before:
Infer the [operand]s of all [match arm guard]s with expected type:c:
bool.Diff:
Before:
A simple path prefix is the leading simple path of a glob import or a nesting import.
Diff:
Before:
The simple import is in a nesting import, then bring the entity in type namespace that the import path prefix resolves to into scope.
Diff:
Renumbered Only
Section Reordering
Header Changes