about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/doc/unstable-book/src/language-features/cfg-panic.md38
-rw-r--r--src/librustdoc/json/mod.rs9
-rw-r--r--src/test/mir-opt/const_prop/invalid_constant.main.ConstProp.diff48
-rw-r--r--src/test/mir-opt/const_prop/invalid_constant.rs8
-rw-r--r--src/test/ui/cfg/cfg-panic-abort.rs2
-rw-r--r--src/test/ui/cfg/cfg-panic.rs2
-rw-r--r--src/test/ui/const-generics/defaults/doesnt_infer.rs2
-rw-r--r--src/test/ui/const-generics/defaults/doesnt_infer.stderr2
-rw-r--r--src/test/ui/const-generics/generic_arg_infer/issue-91614.rs2
-rw-r--r--src/test/ui/const-generics/generic_arg_infer/issue-91614.stderr2
-rw-r--r--src/test/ui/feature-gates/feature-gate-cfg-panic.rs11
-rw-r--r--src/test/ui/feature-gates/feature-gate-cfg-panic.stderr21
-rw-r--r--src/test/ui/fmt/format-args-capture.rs1
-rw-r--r--src/test/ui/issues/issue-68696-catch-during-unwind.rs1
14 files changed, 50 insertions, 99 deletions
diff --git a/src/doc/unstable-book/src/language-features/cfg-panic.md b/src/doc/unstable-book/src/language-features/cfg-panic.md
deleted file mode 100644
index f5b73128ad6..00000000000
--- a/src/doc/unstable-book/src/language-features/cfg-panic.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# `cfg_panic`
-
-The tracking issue for this feature is: [#77443]
-
-[#77443]: https://github.com/rust-lang/rust/issues/77443
-
-------------------------
-
-The `cfg_panic` feature makes it possible to execute different code
-depending on the panic strategy.
-
-Possible values at the moment are `"unwind"` or `"abort"`, although
-it is possible that new panic strategies may be added to Rust in the
-future.
-
-## Examples
-
-```rust
-#![feature(cfg_panic)]
-
-#[cfg(panic = "unwind")]
-fn a() {
-    // ...
-}
-
-#[cfg(not(panic = "unwind"))]
-fn a() {
-    // ...
-}
-
-fn b() {
-    if cfg!(panic = "abort") {
-        // ...
-    } else {
-        // ...
-    }
-}
-```
diff --git a/src/librustdoc/json/mod.rs b/src/librustdoc/json/mod.rs
index f9e9fe0d3cf..52980e07b8c 100644
--- a/src/librustdoc/json/mod.rs
+++ b/src/librustdoc/json/mod.rs
@@ -8,6 +8,7 @@ mod conversions;
 
 use std::cell::RefCell;
 use std::fs::{create_dir_all, File};
+use std::io::{BufWriter, Write};
 use std::path::PathBuf;
 use std::rc::Rc;
 
@@ -213,7 +214,7 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> {
         let mut index = (*self.index).clone().into_inner();
         index.extend(self.get_trait_items());
         // This needs to be the default HashMap for compatibility with the public interface for
-        // rustdoc-json
+        // rustdoc-json-types
         #[allow(rustc::default_hash_types)]
         let output = types::Crate {
             root: types::Id(String::from("0:0")),
@@ -263,8 +264,10 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> {
         let mut p = out_dir;
         p.push(output.index.get(&output.root).unwrap().name.clone().unwrap());
         p.set_extension("json");
-        let file = try_err!(File::create(&p), p);
-        serde_json::ser::to_writer(&file, &output).unwrap();
+        let mut file = BufWriter::new(try_err!(File::create(&p), p));
+        serde_json::ser::to_writer(&mut file, &output).unwrap();
+        try_err!(file.flush(), p);
+
         Ok(())
     }
 
diff --git a/src/test/mir-opt/const_prop/invalid_constant.main.ConstProp.diff b/src/test/mir-opt/const_prop/invalid_constant.main.ConstProp.diff
index ee6c3b5f36f..1b53318806f 100644
--- a/src/test/mir-opt/const_prop/invalid_constant.main.ConstProp.diff
+++ b/src/test/mir-opt/const_prop/invalid_constant.main.ConstProp.diff
@@ -5,39 +5,53 @@
       let mut _0: ();                      // return place in scope 0 at $DIR/invalid_constant.rs:15:11: 15:11
       let _1: std::option::Option<()>;     // in scope 0 at $DIR/invalid_constant.rs:16:5: 16:12
       let mut _2: std::option::Option<std::option::Option<()>>; // in scope 0 at $DIR/invalid_constant.rs:16:7: 16:11
-      scope 1 (inlined f) {                // at $DIR/invalid_constant.rs:16:5: 16:12
-          debug x => _2;                   // in scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
-          let mut _3: isize;               // in scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
-          let _4: std::option::Option<()>; // in scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
-          scope 2 {
-              debug y => _4;               // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
+      let _3: main::Union;                 // in scope 0 at $DIR/invalid_constant.rs:22:9: 22:22
+      scope 1 {
+          debug _invalid_char => _3;       // in scope 1 at $DIR/invalid_constant.rs:22:9: 22:22
+      }
+      scope 2 (inlined f) {                // at $DIR/invalid_constant.rs:16:5: 16:12
+          debug x => _2;                   // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
+          let mut _4: isize;               // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
+          let _5: std::option::Option<()>; // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
+          scope 3 {
+              debug y => _5;               // in scope 3 at $DIR/invalid_constant.rs:16:5: 16:12
           }
       }
   
       bb0: {
           discriminant(_2) = 0;            // scope 0 at $DIR/invalid_constant.rs:16:7: 16:11
--         _3 = discriminant(_2);           // scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
--         switchInt(move _3) -> [0_isize: bb3, otherwise: bb2]; // scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
-+         _3 = const 0_isize;              // scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
-+         switchInt(const 0_isize) -> [0_isize: bb3, otherwise: bb2]; // scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
+-         _4 = discriminant(_2);           // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
+-         switchInt(move _4) -> [0_isize: bb3, otherwise: bb2]; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
++         _4 = const 0_isize;              // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
++         switchInt(const 0_isize) -> [0_isize: bb3, otherwise: bb2]; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
       }
   
       bb1: {
-          nop;                             // scope 0 at $DIR/invalid_constant.rs:15:11: 17:2
-          return;                          // scope 0 at $DIR/invalid_constant.rs:17:2: 17:2
+-         _3 = const { Union { int: 0x110001 } }; // scope 0 at $DIR/invalid_constant.rs:22:25: 22:58
++         _3 = const main::Union { int: 1114113_u32, chr: {transmute(0x00110001): char} }; // scope 0 at $DIR/invalid_constant.rs:22:25: 22:58
+                                           // ty::Const
+                                           // + ty: main::Union
+-                                          // + val: Unevaluated(main::{constant#0}, [main::Union], None)
++                                          // + val: Value(Scalar(0x00110001))
+                                           // mir::Constant
+                                           // + span: $DIR/invalid_constant.rs:22:25: 22:58
+-                                          // + literal: Const { ty: main::Union, val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:8 ~ invalid_constant[726d]::main::{constant#0}), const_param_did: None }, substs: [main::Union], promoted: None }) }
++                                          // + literal: Const { ty: main::Union, val: Value(Scalar(0x00110001)) }
+          nop;                             // scope 0 at $DIR/invalid_constant.rs:15:11: 23:2
+          return;                          // scope 0 at $DIR/invalid_constant.rs:23:2: 23:2
       }
   
       bb2: {
--         _4 = ((_2 as Some).0: std::option::Option<()>); // scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
--         _1 = _4;                         // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
-+         _4 = const Scalar(0x02): Option::<()>; // scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
+-         _5 = ((_2 as Some).0: std::option::Option<()>); // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
+-         _1 = _5;                         // scope 3 at $DIR/invalid_constant.rs:16:5: 16:12
++         _5 = const Scalar(0x02): Option::<()>; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
 +                                          // ty::Const
 +                                          // + ty: std::option::Option<()>
 +                                          // + val: Value(Scalar(0x02))
 +                                          // mir::Constant
 +                                          // + span: $DIR/invalid_constant.rs:16:5: 16:12
 +                                          // + literal: Const { ty: std::option::Option<()>, val: Value(Scalar(0x02)) }
-+         _1 = const Scalar(0x02): Option::<()>; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
++         _1 = const Scalar(0x02): Option::<()>; // scope 3 at $DIR/invalid_constant.rs:16:5: 16:12
 +                                          // ty::Const
 +                                          // + ty: std::option::Option<()>
 +                                          // + val: Value(Scalar(0x02))
@@ -48,7 +62,7 @@
       }
   
       bb3: {
-          discriminant(_1) = 0;            // scope 1 at $DIR/invalid_constant.rs:16:5: 16:12
+          discriminant(_1) = 0;            // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12
           goto -> bb1;                     // scope 0 at $DIR/invalid_constant.rs:9:17: 9:21
       }
   }
diff --git a/src/test/mir-opt/const_prop/invalid_constant.rs b/src/test/mir-opt/const_prop/invalid_constant.rs
index 1eb6f37df59..4aca9090019 100644
--- a/src/test/mir-opt/const_prop/invalid_constant.rs
+++ b/src/test/mir-opt/const_prop/invalid_constant.rs
@@ -2,7 +2,7 @@
 // by constant propagation. Regression test for issue #93688.
 //
 // compile-flags: -Copt-level=0 -Zinline-mir
-
+#![feature(inline_const)]
 #[inline(always)]
 pub fn f(x: Option<Option<()>>) -> Option<()> {
     match x {
@@ -14,4 +14,10 @@ pub fn f(x: Option<Option<()>>) -> Option<()> {
 // EMIT_MIR invalid_constant.main.ConstProp.diff
 fn main() {
     f(None);
+
+    union Union {
+        int: u32,
+        chr: char,
+    }
+    let _invalid_char = const { Union { int: 0x110001 } };
 }
diff --git a/src/test/ui/cfg/cfg-panic-abort.rs b/src/test/ui/cfg/cfg-panic-abort.rs
index 9b88eff12ed..3853b598a7a 100644
--- a/src/test/ui/cfg/cfg-panic-abort.rs
+++ b/src/test/ui/cfg/cfg-panic-abort.rs
@@ -1,7 +1,7 @@
 // build-pass
 // compile-flags: -C panic=abort
 // no-prefer-dynamic
-#![feature(cfg_panic)]
+
 
 #[cfg(panic = "unwind")]
 pub fn bad() -> i32 { }
diff --git a/src/test/ui/cfg/cfg-panic.rs b/src/test/ui/cfg/cfg-panic.rs
index d2113e4f5ec..fb3e5059c81 100644
--- a/src/test/ui/cfg/cfg-panic.rs
+++ b/src/test/ui/cfg/cfg-panic.rs
@@ -4,7 +4,7 @@
 // ignore-emscripten no panic_unwind implementation
 // ignore-wasm32     no panic_unwind implementation
 // ignore-wasm64     no panic_unwind implementation
-#![feature(cfg_panic)]
+
 
 #[cfg(panic = "abort")]
 pub fn bad() -> i32 { }
diff --git a/src/test/ui/const-generics/defaults/doesnt_infer.rs b/src/test/ui/const-generics/defaults/doesnt_infer.rs
index cd533b57bc3..9c59e672d8e 100644
--- a/src/test/ui/const-generics/defaults/doesnt_infer.rs
+++ b/src/test/ui/const-generics/defaults/doesnt_infer.rs
@@ -9,5 +9,5 @@ impl<const N: u32> Foo<N> {
 fn main() {
     let foo = Foo::<1>::foo();
     let foo = Foo::foo();
-    //~^ error: type annotations needed for `Foo<{_: u32}>`
+    //~^ error: type annotations needed for `Foo<N>`
 }
diff --git a/src/test/ui/const-generics/defaults/doesnt_infer.stderr b/src/test/ui/const-generics/defaults/doesnt_infer.stderr
index 1551e81ea75..cccf433e328 100644
--- a/src/test/ui/const-generics/defaults/doesnt_infer.stderr
+++ b/src/test/ui/const-generics/defaults/doesnt_infer.stderr
@@ -1,4 +1,4 @@
-error[E0282]: type annotations needed for `Foo<{_: u32}>`
+error[E0282]: type annotations needed for `Foo<N>`
   --> $DIR/doesnt_infer.rs:11:15
    |
 LL |     let foo = Foo::foo();
diff --git a/src/test/ui/const-generics/generic_arg_infer/issue-91614.rs b/src/test/ui/const-generics/generic_arg_infer/issue-91614.rs
index 413cc153924..b45e2cbc737 100644
--- a/src/test/ui/const-generics/generic_arg_infer/issue-91614.rs
+++ b/src/test/ui/const-generics/generic_arg_infer/issue-91614.rs
@@ -4,5 +4,5 @@ use std::simd::Mask;
 
 fn main() {
     let y = Mask::<_, _>::splat(false);
-    //~^ error: type annotations needed for `Mask<_, {_: usize}>`
+    //~^ ERROR: type annotations needed for
 }
diff --git a/src/test/ui/const-generics/generic_arg_infer/issue-91614.stderr b/src/test/ui/const-generics/generic_arg_infer/issue-91614.stderr
index 71a5ff79280..347cd2364b2 100644
--- a/src/test/ui/const-generics/generic_arg_infer/issue-91614.stderr
+++ b/src/test/ui/const-generics/generic_arg_infer/issue-91614.stderr
@@ -1,4 +1,4 @@
-error[E0283]: type annotations needed for `Mask<_, {_: usize}>`
+error[E0283]: type annotations needed for `Mask<_, LANES>`
   --> $DIR/issue-91614.rs:6:13
    |
 LL |     let y = Mask::<_, _>::splat(false);
diff --git a/src/test/ui/feature-gates/feature-gate-cfg-panic.rs b/src/test/ui/feature-gates/feature-gate-cfg-panic.rs
deleted file mode 100644
index 1508374d942..00000000000
--- a/src/test/ui/feature-gates/feature-gate-cfg-panic.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-#[cfg(panic = "unwind")]
-//~^ ERROR `cfg(panic)` is experimental and subject to change
-fn foo() -> bool { true }
-#[cfg(not(panic = "unwind"))]
-//~^ ERROR `cfg(panic)` is experimental and subject to change
-fn foo() -> bool { false }
-
-
-fn main() {
-    assert!(foo());
-}
diff --git a/src/test/ui/feature-gates/feature-gate-cfg-panic.stderr b/src/test/ui/feature-gates/feature-gate-cfg-panic.stderr
deleted file mode 100644
index ea5cd54fa90..00000000000
--- a/src/test/ui/feature-gates/feature-gate-cfg-panic.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0658]: `cfg(panic)` is experimental and subject to change
-  --> $DIR/feature-gate-cfg-panic.rs:1:7
-   |
-LL | #[cfg(panic = "unwind")]
-   |       ^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #77443 <https://github.com/rust-lang/rust/issues/77443> for more information
-   = help: add `#![feature(cfg_panic)]` to the crate attributes to enable
-
-error[E0658]: `cfg(panic)` is experimental and subject to change
-  --> $DIR/feature-gate-cfg-panic.rs:4:11
-   |
-LL | #[cfg(not(panic = "unwind"))]
-   |           ^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #77443 <https://github.com/rust-lang/rust/issues/77443> for more information
-   = help: add `#![feature(cfg_panic)]` to the crate attributes to enable
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/fmt/format-args-capture.rs b/src/test/ui/fmt/format-args-capture.rs
index d31d2a6c336..560352b5cb9 100644
--- a/src/test/ui/fmt/format-args-capture.rs
+++ b/src/test/ui/fmt/format-args-capture.rs
@@ -1,5 +1,4 @@
 // run-pass
-#![feature(cfg_panic)]
 
 fn main() {
     named_argument_takes_precedence_to_captured();
diff --git a/src/test/ui/issues/issue-68696-catch-during-unwind.rs b/src/test/ui/issues/issue-68696-catch-during-unwind.rs
index f25a78f59cd..2b12a62d0eb 100644
--- a/src/test/ui/issues/issue-68696-catch-during-unwind.rs
+++ b/src/test/ui/issues/issue-68696-catch-during-unwind.rs
@@ -4,7 +4,6 @@
 // entering the catch_unwind.
 //
 // run-pass
-#![feature(cfg_panic)]
 
 use std::panic::catch_unwind;