Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[experiment] Turn off never type fallback #122955

Draft
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

WaffleLapkin
Copy link
Member

Crater experiment

@rustbot
Copy link
Collaborator

rustbot commented Mar 23, 2024

r? @fmease

rustbot has assigned @fmease.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Mar 23, 2024
@rustbot
Copy link
Collaborator

rustbot commented Mar 23, 2024

rustc_macros::diagnostics was changed

cc @davidtwco, @compiler-errors, @TaKO8Ki

Some changes occurred to the CTFE / Miri engine

cc @rust-lang/miri

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

@rust-log-analyzer

This comment has been minimized.

@fmease fmease added S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 23, 2024
@fmease fmease assigned WaffleLapkin and unassigned fmease Mar 23, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 24, 2024
[experiment] Turn offf never type fallback

Crater experiment
@bors
Copy link
Contributor

bors commented Mar 24, 2024

⌛ Trying commit 45506e8 with merge 614a1bf...

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Mar 24, 2024

💔 Test failed - checks-actions

@bors bors added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Mar 24, 2024
@WaffleLapkin
Copy link
Member Author

@bors try

@bors
Copy link
Contributor

bors commented Mar 24, 2024

⌛ Trying commit 358aca1 with merge f1b8e2b...

bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 24, 2024
[experiment] Turn offf never type fallback

Crater experiment
@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Mar 24, 2024

💔 Test failed - checks-actions

@rust-log-analyzer

This comment has been minimized.

@rustbot
Copy link
Collaborator

rustbot commented Mar 24, 2024

Some changes occurred in src/tools/cargo

cc @ehuss

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Mar 26, 2024

☔ The latest upstream changes (presumably #123040) made this pull request unmergeable. Please resolve the merge conflicts.

@WaffleLapkin WaffleLapkin changed the title [experiment] Turn offf never type fallback [experiment] Turn off never type fallback Mar 31, 2024
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Apr 3, 2024

💔 Test failed - checks-actions

@rust-log-analyzer
Copy link
Collaborator

The job mingw-check-tidy failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Getting action download info
Download action repository 'msys2/setup-msys2@v2.22.0' (SHA:cc11e9188b693c2b100158c3322424c4cc1dadea)
Download action repository 'actions/checkout@v4' (SHA:b4ffde65f46336ab88eb53be808477a3936bae11)
Download action repository 'actions/upload-artifact@v4' (SHA:5d5d22a31266ced268874388b861e4b58bb5c2f3)
Complete job name: PR - mingw-check-tidy
git config --global core.autocrlf false
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
---
COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh

COPY host-x86_64/mingw-check/reuse-requirements.txt /tmp/
RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt \
    && pip3 install virtualenv
COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
COPY host-x86_64/mingw-check/validate-error-codes.sh /scripts/

# NOTE: intentionally uses python2 for x.py so we can test it still works.
# NOTE: intentionally uses python2 for x.py so we can test it still works.
# validate-toolstate only runs in our CI, so it's ok for it to only support python3.
ENV SCRIPT TIDY_PRINT_DIFF=1 python2.7 ../x.py test \
           --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
#    pip-compile --allow-unsafe --generate-hashes reuse-requirements.in
---

#12 [5/8] COPY host-x86_64/mingw-check/reuse-requirements.txt /tmp/
#12 DONE 0.0s

#13 [6/8] RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt     && pip3 install virtualenv
#13 0.427   Downloading binaryornot-0.4.4-py2.py3-none-any.whl (9.0 kB)
#13 0.444 Collecting boolean-py==4.0
#13 0.450   Downloading boolean.py-4.0-py3-none-any.whl (25 kB)
#13 0.467 Collecting chardet==5.1.0
---
#13 3.610 Building wheels for collected packages: reuse
#13 3.611   Building wheel for reuse (pyproject.toml): started
#13 3.931   Building wheel for reuse (pyproject.toml): finished with status 'done'
#13 3.932   Created wheel for reuse: filename=reuse-1.1.0-cp310-cp310-manylinux_2_35_x86_64.whl size=181117 sha256=f5f58750481f69515c2c0d1d503daf565e2565c370d07fc6aeb95fe3498b4269
#13 3.932   Stored in directory: /tmp/pip-ephem-wheel-cache-13fd91no/wheels/c2/3c/b9/1120c2ab4bd82694f7e6f0537dc5b9a085c13e2c69a8d0c76d
#13 3.935 Installing collected packages: boolean-py, binaryornot, setuptools, reuse, python-debian, markupsafe, license-expression, jinja2, chardet
#13 3.956   Attempting uninstall: setuptools
#13 3.957     Found existing installation: setuptools 59.6.0
#13 3.958     Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr
#13 3.958     Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr
#13 3.958     Can't uninstall 'setuptools'. No files were found to uninstall.
#13 4.620 Successfully installed binaryornot-0.4.4 boolean-py-4.0 chardet-5.1.0 jinja2-3.1.2 license-expression-30.0.0 markupsafe-2.1.1 python-debian-0.1.49 reuse-1.1.0 setuptools-66.0.0
#13 4.620 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#13 5.129 Collecting virtualenv
#13 5.198   Downloading virtualenv-20.25.1-py3-none-any.whl (3.8 MB)
#13 5.387      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 20.3 MB/s eta 0:00:00
#13 5.438 Collecting platformdirs<5,>=3.9.1
#13 5.445   Downloading platformdirs-4.2.0-py3-none-any.whl (17 kB)
#13 5.477 Collecting filelock<4,>=3.12.2
#13 5.484   Downloading filelock-3.13.3-py3-none-any.whl (11 kB)
#13 5.503 Collecting distlib<1,>=0.3.7
#13 5.510   Downloading distlib-0.3.8-py2.py3-none-any.whl (468 kB)
#13 5.524      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 468.9/468.9 KB 53.8 MB/s eta 0:00:00
#13 5.608 Installing collected packages: distlib, platformdirs, filelock, virtualenv
#13 5.769 Successfully installed distlib-0.3.8 filelock-3.13.3 platformdirs-4.2.0 virtualenv-20.25.1
#13 DONE 5.8s

#14 [7/8] COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
#14 DONE 0.0s
---
DirectMap4k:      188352 kB
DirectMap2M:     8200192 kB
DirectMap1G:    10485760 kB
##[endgroup]
Executing TIDY_PRINT_DIFF=1 python2.7 ../x.py test            --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint
+ TIDY_PRINT_DIFF=1 python2.7 ../x.py test --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint
    Finished `dev` profile [unoptimized] target(s) in 0.04s
##[endgroup]
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /checkout/regex-1.8.4/Cargo.toml
package:   /checkout/regex-1.8.4/Cargo.toml
workspace: /checkout/Cargo.toml
downloading https://ci-artifacts.rust-lang.org/rustc-builds-alt/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz
extracting /checkout/obj/build/cache/llvm-ceab6128fa48a616bfd3e3adf4bc80133b8ee223-true/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz to /checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm
##[group]Building stage0 tool tidy (x86_64-unknown-linux-gnu)
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /checkout/regex-1.8.4/Cargo.toml
workspace: /checkout/Cargo.toml
    Updating git repository `https://github.com/WaffleLapkin/rust-ctrlc.git`
---
   Compiling tidy v0.1.0 (/checkout/src/tools/tidy)
    Finished `release` profile [optimized] target(s) in 25.93s
##[endgroup]
fmt check
##[error]Diff in /checkout/crossbeam-utils-0.8.19/tests/cache_padded.rs at line 57:
 #[test]
 fn debug() {
-    assert_eq!(
-    assert_eq!(
-        format!("{:?}", CachePadded::new(17u64)),
-        "CachePadded { value: 17 }"
-    );
+    assert_eq!(format!("{:?}", CachePadded::new(17u64)), "CachePadded { value: 17 }");
 
 #[test]
 #[test]
##[error]Diff in /checkout/crossbeam-utils-0.8.19/tests/atomic_cell.rs at line 39:
     );
     assert_eq!(mem::size_of::<U64Align8>(), 8);
     assert_eq!(mem::align_of::<U64Align8>(), 8);
-    assert_eq!(
-        AtomicCell::<U64Align8>::is_lock_free(),
-        cfg!(target_has_atomic = "64")
-    );
+    assert_eq!(AtomicCell::<U64Align8>::is_lock_free(), cfg!(target_has_atomic = "64"));
     // AtomicU128 is unstable
     // AtomicU128 is unstable
     assert!(!AtomicCell::<u128>::is_lock_free());
##[error]Diff in /checkout/crossbeam-utils-0.8.19/tests/atomic_cell.rs at line 318:
 
 
     assert_eq!(mem::size_of::<Test>(), 8);
-    assert_eq!(
-        AtomicCell::<Test>::is_lock_free(),
-        cfg!(target_has_atomic = "64")
-    );
+    assert_eq!(AtomicCell::<Test>::is_lock_free(), cfg!(target_has_atomic = "64"));
     let x = AtomicCell::new(Test::FieldLess);
     assert_eq!(x.load(), Test::FieldLess);
 }
##[error]Diff in /checkout/crossbeam-utils-0.8.19/tests/thread.rs at line 96:
 
     let err = result.unwrap_err();
-    let vec = err
-    let vec = err
-        .downcast_ref::<Vec<Box<dyn Any + Send + 'static>>>()
-        .unwrap();
+    let vec = err.downcast_ref::<Vec<Box<dyn Any + Send + 'static>>>().unwrap();
     assert_eq!(2, vec.len());
 
     let first = vec[0].downcast_ref::<&str>().unwrap();
##[error]Diff in /checkout/crossbeam-utils-0.8.19/tests/thread.rs at line 116:
 
     let err = result.unwrap_err();
-    let vec = err
-    let vec = err
-        .downcast_ref::<Vec<Box<dyn Any + Send + 'static>>>()
-        .unwrap();
+    let vec = err.downcast_ref::<Vec<Box<dyn Any + Send + 'static>>>().unwrap();
     assert_eq!(3, vec.len());
     for panic in vec.iter() {
     for panic in vec.iter() {
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/cache_padded.rs at line 78:
 // - https://github.com/golang/go/blob/3dd58676054223962cd915bb0934d1f9f489d4d2/src/internal/cpu/cpu_ppc64x.go#L9
 // - https://github.com/torvalds/linux/blob/3516bd729358a2a9b090c1905bd2a3fa926e24c6/arch/powerpc/include/asm/cache.h#L26
-    any(
-        target_arch = "x86_64",
-        target_arch = "aarch64",
-        target_arch = "powerpc64",
-        target_arch = "powerpc64",
-    ),
+    any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64",),
     repr(align(128))
 )]
 // arm, mips, mips64, sparc, and hexagon have 32-byte cache line size.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/cache_padded.rs at line 196:
 
 impl<T: fmt::Debug> fmt::Debug for CachePadded<T> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        f.debug_struct("CachePadded")
-            .field("value", &self.value)
-            .finish()
+        f.debug_struct("CachePadded").field("value", &self.value).finish()
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/wait_group.rs at line 55:
 impl Default for WaitGroup {
     fn default() -> Self {
-        Self {
-            inner: Arc::new(Inner {
-            inner: Arc::new(Inner {
-                cvar: Condvar::new(),
-                count: Mutex::new(1),
-            }),
-        }
+        Self { inner: Arc::new(Inner { cvar: Condvar::new(), count: Mutex::new(1) }) }
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/wait_group.rs at line 131:
         let mut count = self.inner.count.lock().unwrap();
         *count += 1;
-        WaitGroup {
-            inner: self.inner.clone(),
-        }
-        }
+        WaitGroup { inner: self.inner.clone() }
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/parker.rs at line 200:
     /// let p = unsafe { Parker::from_raw(raw) };
     pub unsafe fn from_raw(ptr: *const ()) -> Parker {
-        Parker {
-            unparker: Unparker::from_raw(ptr),
-            _marker: PhantomData,
-            _marker: PhantomData,
-        }
+        Parker { unparker: Unparker::from_raw(ptr), _marker: PhantomData }
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/parker.rs at line 287:
     /// let u = unsafe { Unparker::from_raw(raw) };
     /// ```
     pub unsafe fn from_raw(ptr: *const ()) -> Unparker {
-        Unparker {
-            inner: Arc::from_raw(ptr.cast::<Inner>()),
-        }
+        Unparker { inner: Arc::from_raw(ptr.cast::<Inner>()) }
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/parker.rs at line 301:
 impl Clone for Unparker {
     fn clone(&self) -> Unparker {
-        Unparker {
-            inner: self.inner.clone(),
-            inner: self.inner.clone(),
-        }
+        Unparker { inner: self.inner.clone() }
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/parker.rs at line 320:
 impl Inner {
     fn park(&self, deadline: Option<Instant>) {
         // If we were previously notified then we consume this notification and return quickly.
-            .state
-            .state
-            .compare_exchange(NOTIFIED, EMPTY, SeqCst, SeqCst)
-            .is_ok()
-        {
+        if self.state.compare_exchange(NOTIFIED, EMPTY, SeqCst, SeqCst).is_ok() {
         }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/parker.rs at line 375:
             };
 
-            if self
-                .state
-                .state
-                .compare_exchange(NOTIFIED, EMPTY, SeqCst, SeqCst)
-                .is_ok()
-            {
+            if self.state.compare_exchange(NOTIFIED, EMPTY, SeqCst, SeqCst).is_ok() {
                 // got a notification
             }
             }
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/once_lock.rs at line 20:
     /// Creates a new empty cell.
     #[must_use]
     pub(crate) const fn new() -> Self {
-            once: Once::new(),
-            once: Once::new(),
-            value: UnsafeCell::new(MaybeUninit::uninit()),
-        }
+        Self { once: Once::new(), value: UnsafeCell::new(MaybeUninit::uninit()) }
 
 
     /// Gets the contents of the cell, initializing it with `f` if the cell
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 134:
         let is_poisoned = self.is_poisoned();
         let inner = self.value.into_inner();
-        if is_poisoned {
-        if is_poisoned {
-            Err(PoisonError::new(inner))
-            Ok(inner)
-        }
-        }
+        if is_poisoned { Err(PoisonError::new(inner)) } else { Ok(inner) }
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 190:
         let is_poisoned = self.is_poisoned();
         let inner = unsafe { &mut *self.value.get() };
-        if is_poisoned {
-        if is_poisoned {
-            Err(PoisonError::new(inner))
-            Ok(inner)
-        }
-        }
+        if is_poisoned { Err(PoisonError::new(inner)) } else { Ok(inner) }
 
     /// Attempts to acquire this lock with shared read access.
     /// Attempts to acquire this lock with shared read access.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 228:
         let shard_index = current_index & (self.shards.len() - 1);
 
         match self.shards[shard_index].lock.try_read() {
-            Ok(guard) => Ok(ShardedLockReadGuard {
-                lock: self,
-                _guard: guard,
-                _marker: PhantomData,
+            Ok(guard) => {
+            Ok(guard) => {
+                Ok(ShardedLockReadGuard { lock: self, _guard: guard, _marker: PhantomData })
+            }
             Err(TryLockError::Poisoned(err)) => {
                 let guard = ShardedLockReadGuard {
                     lock: self,
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 288:
         let shard_index = current_index & (self.shards.len() - 1);
 
         match self.shards[shard_index].lock.read() {
-            Ok(guard) => Ok(ShardedLockReadGuard {
-                lock: self,
-                _guard: guard,
-                _marker: PhantomData,
+            Ok(guard) => {
+            Ok(guard) => {
+                Ok(ShardedLockReadGuard { lock: self, _guard: guard, _marker: PhantomData })
+            }
             Err(err) => Err(PoisonError::new(ShardedLockReadGuard {
                 lock: self,
                 _guard: err.into_inner(),
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 362:
             }
             Err(TryLockError::WouldBlock)
         } else if poisoned {
-            let guard = ShardedLockWriteGuard {
-                lock: self,
-                _marker: PhantomData,
-            };
+            let guard = ShardedLockWriteGuard { lock: self, _marker: PhantomData };
             Err(TryLockError::Poisoned(PoisonError::new(guard)))
-            Ok(ShardedLockWriteGuard {
-                lock: self,
-                _marker: PhantomData,
-            })
-            })
+            Ok(ShardedLockWriteGuard { lock: self, _marker: PhantomData })
     }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 428:
 
         if poisoned {
         if poisoned {
-            Err(PoisonError::new(ShardedLockWriteGuard {
-                lock: self,
-                _marker: PhantomData,
-            }))
+            Err(PoisonError::new(ShardedLockWriteGuard { lock: self, _marker: PhantomData }))
-            Ok(ShardedLockWriteGuard {
-                lock: self,
-                _marker: PhantomData,
-            })
-            })
+            Ok(ShardedLockWriteGuard { lock: self, _marker: PhantomData })
     }
 }
 }
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 444:
 impl<T: ?Sized + fmt::Debug> fmt::Debug for ShardedLock<T> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-            Ok(guard) => f
-            Ok(guard) => f
-                .debug_struct("ShardedLock")
-                .field("data", &&*guard)
-                .finish(),
-            Err(TryLockError::Poisoned(err)) => f
-                .debug_struct("ShardedLock")
-                .field("data", &&**err.get_ref())
-                .finish(),
+            Ok(guard) => f.debug_struct("ShardedLock").field("data", &&*guard).finish(),
+            Err(TryLockError::Poisoned(err)) => {
+                f.debug_struct("ShardedLock").field("data", &&**err.get_ref()).finish()
+            }
             Err(TryLockError::WouldBlock) => {
                 struct LockedPlaceholder;
                 impl fmt::Debug for LockedPlaceholder {
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 459:
                         f.write_str("<locked>")
                 }
                 }
-                f.debug_struct("ShardedLock")
-                    .field("data", &LockedPlaceholder)
-                    .finish()
+                f.debug_struct("ShardedLock").field("data", &LockedPlaceholder).finish()
         }
     }
     }
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 499:
 
 impl<T: fmt::Debug> fmt::Debug for ShardedLockReadGuard<'_, T> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        f.debug_struct("ShardedLockReadGuard")
-            .field("lock", &self.lock)
-            .finish()
+        f.debug_struct("ShardedLockReadGuard").field("lock", &self.lock).finish()
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 535:
 
 impl<T: fmt::Debug> fmt::Debug for ShardedLockWriteGuard<'_, T> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        f.debug_struct("ShardedLockWriteGuard")
-            .field("lock", &self.lock)
-            .finish()
+        f.debug_struct("ShardedLockWriteGuard").field("lock", &self.lock).finish()
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/sync/sharded_lock.rs at line 588:
 fn thread_indices() -> &'static Mutex<ThreadIndices> {
     static THREAD_INDICES: OnceLock<Mutex<ThreadIndices>> = OnceLock::new();
     fn init() -> Mutex<ThreadIndices> {
-        Mutex::new(ThreadIndices {
-            free_list: Vec::new(),
-            next_index: 0,
-        })
-        })
+        Mutex::new(ThreadIndices { mapping: HashMap::new(), free_list: Vec::new(), next_index: 0 })
     THREAD_INDICES.get_or_init(init)
 }
 }
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/atomic_cell.rs at line 60:
     /// let a = AtomicCell::new(7);
     /// ```
     pub const fn new(val: T) -> AtomicCell<T> {
-        AtomicCell {
-            value: UnsafeCell::new(MaybeUninit::new(val)),
-        }
+        AtomicCell { value: UnsafeCell::new(MaybeUninit::new(val)) }
 
     /// Consumes the atomic and returns the contained value.
     /// Consumes the atomic and returns the contained value.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/atomic_cell.rs at line 954:
 
 impl<T: Copy + fmt::Debug> fmt::Debug for AtomicCell<T> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        f.debug_struct("AtomicCell")
-            .field("value", &self.load())
-            .finish()
+        f.debug_struct("AtomicCell").field("value", &self.load()).finish()
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/seq_lock_wide.rs at line 20:
 
 impl SeqLock {
     pub(crate) const fn new() -> Self {
-            state_hi: AtomicUsize::new(0),
-            state_lo: AtomicUsize::new(0),
-        }
-        }
+        Self { state_hi: AtomicUsize::new(0), state_lo: AtomicUsize::new(0) }
 
     /// If not locked, returns the current stamp.
     /// If not locked, returns the current stamp.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/seq_lock_wide.rs at line 39:
         // critical section of (`state_hi`, `state_lo`) happens before now.
         let state_hi = self.state_hi.load(Ordering::Acquire);
         let state_lo = self.state_lo.load(Ordering::Acquire);
-        if state_lo == 1 {
-        } else {
-            Some((state_hi, state_lo))
-        }
-        }
+        if state_lo == 1 { None } else { Some((state_hi, state_lo)) }
 
 
     /// Returns `true` if the current stamp is equal to `stamp`.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/seq_lock_wide.rs at line 86:
                 // the data at the critical section of `(state_hi, previous)`.
                 atomic::fence(Ordering::Release);
-                return SeqLockWriteGuard {
-                    lock: self,
-                    state_lo: previous,
-                };
-                };
+                return SeqLockWriteGuard { lock: self, state_lo: previous };
 
 
             backoff.snooze();
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/seq_lock_wide.rs at line 125:
         // Release ordering for synchronizing with `optimistic_read`.
         if state_lo == 0 {
             let state_hi = self.lock.state_hi.load(Ordering::Relaxed);
-                .state_hi
-                .state_hi
-                .store(state_hi.wrapping_add(1), Ordering::Release);
+            self.lock.state_hi.store(state_hi.wrapping_add(1), Ordering::Release);
 
         // Release the lock and increment the stamp.
         // Release the lock and increment the stamp.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/seq_lock.rs at line 14:
 
 impl SeqLock {
     pub(crate) const fn new() -> Self {
-            state: AtomicUsize::new(0),
-        }
+        Self { state: AtomicUsize::new(0) }
     }
     }
 
     /// If not locked, returns the current stamp.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/seq_lock.rs at line 25:
     pub(crate) fn optimistic_read(&self) -> Option<usize> {
     pub(crate) fn optimistic_read(&self) -> Option<usize> {
         let state = self.state.load(Ordering::Acquire);
-        if state == 1 {
-        } else {
-            Some(state)
-        }
-        }
+        if state == 1 { None } else { Some(state) }
 
 
     /// Returns `true` if the current stamp is equal to `stamp`.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/seq_lock.rs at line 52:
             if previous != 1 {
                 atomic::fence(Ordering::Release);
-                return SeqLockWriteGuard {
-                    lock: self,
-                    state: previous,
-                };
-                };
+                return SeqLockWriteGuard { lock: self, state: previous };
 
 
             backoff.snooze();
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/atomic/seq_lock.rs at line 88:
     #[inline]
     fn drop(&mut self) {
         // Release the lock and increment the stamp.
-            .state
-            .state
-            .store(self.state.wrapping_add(2), Ordering::Release);
+        self.lock.state.store(self.state.wrapping_add(2), Ordering::Release);
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/thread.rs at line 265:
         F: Send + 'env,
         T: Send + 'env,
-        self.builder()
-        self.builder()
-            .spawn(f)
-            .expect("failed to spawn scoped thread")
+        self.builder().spawn(f).expect("failed to spawn scoped thread")
 
     /// Creates a builder that can configure a thread before spawning.
     /// Creates a builder that can configure a thread before spawning.
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/thread.rs at line 284:
     /// }).unwrap();
     /// ```
     pub fn builder<'scope>(&'scope self) -> ScopedThreadBuilder<'scope, 'env> {
-        ScopedThreadBuilder {
-            scope: self,
-        }
-        }
+        ScopedThreadBuilder { scope: self, builder: thread::Builder::new() }
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/thread.rs at line 474:
         // Add the handle to the shared list of join handles.
         self.scope.handles.lock().unwrap().push(Arc::clone(&handle));
-        Ok(ScopedJoinHandle {
-            handle,
-            result,
-            thread,
-            thread,
-            _marker: PhantomData,
-        })
+        Ok(ScopedJoinHandle { handle, result, thread, _marker: PhantomData })
 }
 
 
##[error]Diff in /checkout/crossbeam-utils-0.8.19/src/thread.rs at line 539:
         let handle = self.handle.lock().unwrap().take().unwrap();
         // Join the thread and then take the result out of its inner closure.
-        handle
-            .join()

@WaffleLapkin
Copy link
Member Author

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 3, 2024
[experiment] Turn off never type fallback

Crater experiment
@bors
Copy link
Contributor

bors commented Apr 3, 2024

⌛ Trying commit 517f677 with merge 3a4bc97...

@bors
Copy link
Contributor

bors commented Apr 3, 2024

☀️ Try build successful - checks-actions
Build commit: 3a4bc97 (3a4bc97f6385a3aa300a4fd689b44350e54fd676)

@WaffleLapkin
Copy link
Member Author

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

@WaffleLapkin
Copy link
Member Author

@craterbot run start=master#ceab6128fa48a616bfd3e3adf4bc80133b8ee223 end=try#3a4bc97f6385a3aa300a4fd689b44350e54fd676 mode=check-only name=no-never-type-fallback

@craterbot
Copy link
Collaborator

👌 Experiment no-never-type-fallback created and queued.
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. labels Apr 3, 2024
@craterbot
Copy link
Collaborator

🚧 Experiment no-never-type-fallback is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added the S-waiting-on-crater Status: Waiting on a crater run to be completed. label Apr 3, 2024
@jhpratt jhpratt added the S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. label Apr 4, 2024
@WaffleLapkin WaffleLapkin added F-never_type `#![feature(never_type)]` and removed T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Apr 4, 2024
@craterbot
Copy link
Collaborator

🎉 Experiment no-never-type-fallback is completed!
📊 97965 regressed and 0 fixed (433590 total)
📰 Open the full report.

⚠️ If you notice any spurious failure please add them to the blacklist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. labels Apr 5, 2024
@WaffleLapkin WaffleLapkin marked this pull request as draft April 5, 2024 14:06
@WaffleLapkin WaffleLapkin added S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
F-never_type `#![feature(never_type)]` S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants