about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorCaleb Cartwright <caleb.cartwright@outlook.com>2024-08-01 23:26:00 -0500
committerCaleb Cartwright <calebcartwright@users.noreply.github.com>2024-08-27 20:49:15 -0500
commit065258659db720bfbb4987fa56137450e63d3cc4 (patch)
tree4e2d47c0b81bafc5c145fd5f4589f0021d51af9a /src
parent0c6515cacc4465ae29d90f4bacc7f95ace7afe0b (diff)
downloadrust-065258659db720bfbb4987fa56137450e63d3cc4.tar.gz
rust-065258659db720bfbb4987fa56137450e63d3cc4.zip
feat: implement 2024 Style Edition for expr overflows
Diffstat (limited to 'src')
-rw-r--r--src/bin/main.rs32
-rw-r--r--src/config/mod.rs2
-rw-r--r--src/config/options.rs2
3 files changed, 34 insertions, 2 deletions
diff --git a/src/bin/main.rs b/src/bin/main.rs
index 2e4877c7569..9e7476b1f81 100644
--- a/src/bin/main.rs
+++ b/src/bin/main.rs
@@ -915,4 +915,36 @@ mod test {
         let config = get_config(config_file, Some(options));
         assert_eq!(config.style_edition(), StyleEdition::Edition2021);
     }
+
+    #[nightly_only_test]
+    #[test]
+    fn correct_defaults_for_style_edition_loaded() {
+        let mut options = GetOptsOptions::default();
+        options.style_edition = Some(StyleEdition::Edition2024);
+        let config = get_config(None, Some(options));
+        assert_eq!(config.style_edition(), StyleEdition::Edition2024);
+        assert_eq!(config.overflow_delimited_expr(), true);
+    }
+
+    #[nightly_only_test]
+    #[test]
+    fn style_edition_defaults_overridden_from_config() {
+        let options = GetOptsOptions::default();
+        let config_file = Some(Path::new("tests/config/style-edition/overrides"));
+        let config = get_config(config_file, Some(options));
+        assert_eq!(config.style_edition(), StyleEdition::Edition2024);
+        assert_eq!(config.overflow_delimited_expr(), false);
+    }
+
+    #[nightly_only_test]
+    #[test]
+    fn style_edition_defaults_overridden_from_cli() {
+        let mut options = GetOptsOptions::default();
+        let config_file = Some(Path::new("tests/config/style-edition/just-style-edition"));
+        options.inline_config =
+            HashMap::from([("overflow_delimited_expr".to_owned(), "false".to_owned())]);
+        let config = get_config(config_file, Some(options));
+        assert_eq!(config.style_edition(), StyleEdition::Edition2024);
+        assert_eq!(config.overflow_delimited_expr(), false);
+    }
 }
diff --git a/src/config/mod.rs b/src/config/mod.rs
index da7adea5a74..cd6870e3890 100644
--- a/src/config/mod.rs
+++ b/src/config/mod.rs
@@ -828,7 +828,7 @@ binop_separator = "Front"
 remove_nested_parens = true
 combine_control_expr = true
 short_array_element_width_threshold = 10
-overflow_delimited_expr = false
+overflow_delimited_expr = true
 struct_field_align_threshold = 0
 enum_discrim_align_threshold = 0
 match_arm_blocks = true
diff --git a/src/config/options.rs b/src/config/options.rs
index f7a8c114330..46db5186b11 100644
--- a/src/config/options.rs
+++ b/src/config/options.rs
@@ -627,7 +627,7 @@ config_option_with_style_edition_default!(
     RemoveNestedParens, bool, _ => true;
     CombineControlExpr, bool, _ => true;
     ShortArrayElementWidthThreshold, usize, _ => 10;
-    OverflowDelimitedExpr, bool, _ => false;
+    OverflowDelimitedExpr, bool, Edition2024 => true, _ => false;
     StructFieldAlignThreshold, usize, _ => 0;
     EnumDiscrimAlignThreshold, usize, _ => 0;
     MatchArmBlocks, bool, _ => true;