---
# System prepended metadata

title: T-style triage meeting 2024-08-21
tags: [triage-meeting, minutes, T-style]

---

---
title: T-style triage meeting 2024-08-21
tags: ["T-style", "triage-meeting", "minutes"]
date: 2024-08-21
discussion: https://rust-lang.zulipchat.com/#narrow/stream/346005-t-style/topic/meeting.202024-08-21
url: https://hackmd.io/MFflcwfMTb6vdq7zvLCvWA
---

# T-style meeting agenda

- Meeting date: 2024-08-21

## Attendance

- People: TC, CE, Josh, Caleb

## Meeting roles

- Facilitator: TC
- Minutes: TC

## Check-in

(Not minuted.)

## Scheduled design meetings

None.

Update these [here](https://github.com/orgs/rust-lang/projects/38/views/1).

## Proposed design meetings

None.

Update these [here](https://github.com/orgs/rust-lang/projects/38/views/1).

## Announcements or custom items

(Meeting attendees, feel free to add items here!)

## Rust 2024 edition review

Caleb: Two things still need to go in:

- Version sorting.
- `overflow_delimited_expr`

Otherwise the impl is complete.  I'd recommend that people have a look at the version sorting PR and the code.  Make sure the examples there align with your expectations.

## Nominated RFCs, PRs, and issues

### "Tracking Issue for Rust 2024: rustfmt enable `overflow_delimited_expr`" rust#123751

Caleb: Here's an example:

```diff=
-            .emit_formatted_file(
-                &mut writer,
-                FormattedFile {
-                    filename: &FileName::Real(PathBuf::from("src/lib.rs")),
-                    original_text: "fn empty() {}\n",
-                    formatted_text: "fn empty() {}\r\n",
-                },
-            )
+            .emit_formatted_file(&mut writer, FormattedFile {
+                filename: &FileName::Real(PathBuf::from("src/lib.rs")),
+                original_text: "fn empty() {}\n",
+                formatted_text: "fn empty() {}\r\n",
+            })
```

```diff=
-            context.report.append(
-                context.psess.span_to_filename(span),
-                vec![FormattingError::from_span(
-                    span,
-                    context.psess,
-                    ErrorKind::LostComment,
-                )],
-            );
+            context
+                .report
+                .append(context.psess.span_to_filename(span), vec![
+                    FormattingError::from_span(span, context.psess, ErrorKind::LostComment),
+                ]);
         }
```

```diff=
-        assert_eq!(
-            json,
-            json! {[
-                {"file": "src/lib.rs",  "range": [1, 7]},
-                {"file": "src/main.rs", "range": [1, 3]},
-                {"file": "src/main.rs", "range": [5, 7]},
-            ]}
-        );
+        assert_eq!(json, json! {[
+            {"file": "src/lib.rs",  "range": [1, 7]},
+            {"file": "src/main.rs", "range": [1, 3]},
+            {"file": "src/main.rs", "range": [5, 7]},
+        ]});
```

```diff=
-            (
-                FileName::Real(PathBuf::from("src/main.rs")),
-                vec![Range::new(1, 3), Range::new(5, 7)],
-            ),
-            (
-                FileName::Real(PathBuf::from("src/lib.rs")),
-                vec![Range::new(1, 7)],
-            ),
+            (FileName::Real(PathBuf::from("src/main.rs")), vec![
+                Range::new(1, 3),
+                Range::new(5, 7),
+            ]),
+            (FileName::Real(PathBuf::from("src/lib.rs")), vec![
+                Range::new(1, 7),
+            ]),
```

```diff=
-        test_merge!(
-            One,
-            ["b", "a::ac::{aca, acb}", "a::{aa::*, ab}"],
-            ["{a::{aa::*, ab, ac::{aca, acb}}, b}"]
-        );
+        test_merge!(One, ["b", "a::ac::{aca, acb}", "a::{aa::*, ab}"], [
+            "{a::{aa::*, ab, ac::{aca, acb}}, b}"
+        ]);
```

```diff=
-        test_merge!(
-            Module,
-            ["foo::{a::b, a::c, d::e, d::f}"],
-            ["foo::a::{b, c}", "foo::d::{e, f}"]
-        );
+        test_merge!(Module, ["foo::{a::b, a::c, d::e, d::f}"], [
+            "foo::a::{b, c}",
+            "foo::d::{e, f}"
+        ]);
```

```diff=
-        return Some(vec![
-            b[0].clone(),
-            UseSegment {
-                kind: UseSegmentKind::List(list),
-                style_edition,
-            },
-        ]);
+        return Some(vec![b[0].clone(), UseSegment {
+            kind: UseSegmentKind::List(list),
+            style_edition,
+        }]);
```

TC: On the last two, where macros come into play, Common Lisp actually has a distinction for this, largely for indentation reasons:

```lisp
(defmacro foo (&rest foo)
  ...)
  
(defmacro foo (&body foo)
  ...)
```

```diff=
-        assert_eq!(
-            lines,
-            ModifiedLines {
-                chunks: vec![
-                    ModifiedChunk {
-                        line_number_orig: 1,
-                        lines_removed: 6,
-                        lines: vec!["fn some() {}".to_owned(), "fn main() {}".to_owned(),]
-                    },
-                    ModifiedChunk {
-                        line_number_orig: 25,
-                        lines_removed: 3,
-                        lines: vec!["  struct Test {}".to_owned()]
-                    }
-                ]
-            }
-        );
+        assert_eq!(lines, ModifiedLines {
+            chunks: vec![
+                ModifiedChunk {
+                    line_number_orig: 1,
+                    lines_removed: 6,
+                    lines: vec!["fn some() {}".to_owned(), "fn main() {}".to_owned(),]
+                },
+                ModifiedChunk {
+                    line_number_orig: 25,
+                    lines_removed: 3,
+                    lines: vec!["  struct Test {}".to_owned()]
+                }
+            ]
+        });
```

```diff=
-        assert_eq!(
-            diff,
-            vec![Mismatch {
-                line_number: 3,
-                line_number_orig: 3,
-                lines: vec![Resulting("three".to_owned()), Expected("trois".to_owned())],
-            }]
-        );
+        assert_eq!(diff, vec![Mismatch {
+            line_number: 3,
+            line_number_orig: 3,
+            lines: vec![Resulting("three".to_owned()), Expected("trois".to_owned())],
+        }]);

```

```diff=
-    verify_mod_resolution(
-        "tests/mod-resolver/issue-5198/lib.rs",
-        &[
-            "tests/mod-resolver/issue-5198/a.rs",
-            "tests/mod-resolver/issue-5198/lib/b.rs",
-            "tests/mod-resolver/issue-5198/lib/c/mod.rs",
-            "tests/mod-resolver/issue-5198/lib/c/e.rs",
-            "tests/mod-resolver/issue-5198/lib/c/d/f.rs",
-            "tests/mod-resolver/issue-5198/lib/c/d/g/mod.rs",
-        ],
-    )
+    verify_mod_resolution("tests/mod-resolver/issue-5198/lib.rs", &[
+        "tests/mod-resolver/issue-5198/a.rs",
+        "tests/mod-resolver/issue-5198/lib/b.rs",
+        "tests/mod-resolver/issue-5198/lib/c/mod.rs",
+        "tests/mod-resolver/issue-5198/lib/c/e.rs",
+        "tests/mod-resolver/issue-5198/lib/c/d/f.rs",
+        "tests/mod-resolver/issue-5198/lib/c/d/g/mod.rs",
+    ])
```

```diff=
-    verify_mod_resolution(
-        "tests/mod-resolver/skip-files-issue-5065/main.rs",
-        &["tests/mod-resolver/skip-files-issue-5065/one.rs"],
-    );
+    verify_mod_resolution("tests/mod-resolver/skip-files-issue-5065/main.rs", &[
+        "tests/mod-resolver/skip-files-issue-5065/one.rs",
+    ]);
```

```diff=
-    verify_mod_resolution(
-        "tests/mod-resolver/issue-5063/main.rs",
-        &[
-            "tests/mod-resolver/issue-5063/foo/bar/baz.rs",
-            "tests/mod-resolver/issue-5063/foo.rs",
-        ],
-    );
+    verify_mod_resolution("tests/mod-resolver/issue-5063/main.rs", &[
+        "tests/mod-resolver/issue-5063/foo/bar/baz.rs",
+        "tests/mod-resolver/issue-5063/foo.rs",
+    ]);
```

TC: (Net-net, everyone here seems to like these changes overall.)

**Link:** https://github.com/rust-lang/rust/issues/123751

### "Tracking Issue for Rust 2024: rustfmt change sort to Unicode-aware "non-lowercase before lowercase"" rust#123802

**Link:** https://github.com/rust-lang/rust/issues/123802

We're reviewing the diff here:

https://github.com/rust-lang/rustfmt/pull/6284/commits/7f0d9a2284f15e3ffbe6df4cec8006cd3bddf6d3

TC: (This one seems right to everyone here also.)

### Writing the edition guide chapters

TC: We should perhaps think about how to help Caleb with these.

(Discussion to the effect that we can use the normal meeting slot to collaborate on these.)

### style-guide: When breaking binops handle multi-line first operand better #119838

https://github.com/rust-lang/rust/pull/119838

Josh: Can we get this in?

Caleb: Maybe.  We'll create a tracking issue and see about it.

(The meeting ended here.)

---

### "Tracking Issue for Rust 2024: rustfmt use version sort" rust#123800

**Link:** https://github.com/rust-lang/rust/issues/123800

### "Tracking Issue for Rust 2024: rustfmt style editions" rust#123799

**Link:** https://github.com/rust-lang/rust/issues/123799

### "Tracking Issue for Rust 2024: rustfmt improve impl generics indentation " rust#124758

**Link:** https://github.com/rust-lang/rust/issues/124758

### "Tracking Issue for Rust 2024: rustfmt trailing comment alignment" rust#124760

**Link:** https://github.com/rust-lang/rust/issues/124760

### "Tracking Issue for Rust 2024: rustfmt raw identifier sorting" rust#124764

**Link:** https://github.com/rust-lang/rust/issues/124764

### "Tracking Issue for Rust 2024: rustfmt closure body braces" rust#124767

**Link:** https://github.com/rust-lang/rust/issues/124767

### "`edition.md` is causing many conflicts" style-team#192

**Link:** https://github.com/rust-lang/style-team/issues/192

## Pending PRs on the style-team repo

None.

## RFCs waiting to be merged

None.

## `S-waiting-on-team`

None.

## Proposed FCPs

**Check your boxes!**

### "style-guide: Note that we don't account for comments in every possible place" rust#121762

**Link:** https://github.com/rust-lang/rust/pull/121762

## Active FCPs

None.

## P-critical issues

None.

## Check-out

(Not minuted.)
