Skip to content

Commit 9bd74a1

Browse files
committed
Restore pre-nightly-2022-10-05 behavior of test_path PhantomData tests
1 parent 77c4fa4 commit 9bd74a1

File tree

1 file changed

+27
-7
lines changed

1 file changed

+27
-7
lines changed

tests/test_ensure.rs

+27-7
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@
1818
irrefutable_let_patterns
1919
)]
2020

21+
use self::Enum::Generic;
2122
use anyhow::{anyhow, ensure, Chain, Error, Result};
22-
use std::fmt::Debug;
23+
use std::fmt::{self, Debug};
2324
use std::iter;
2425
use std::marker::{PhantomData, PhantomData as P};
26+
use std::mem;
2527
use std::ops::Add;
2628
use std::ptr;
2729

@@ -44,6 +46,24 @@ trait Trait: Sized {
4446

4547
impl<T> Trait for T {}
4648

49+
enum Enum<T: ?Sized> {
50+
#[allow(dead_code)]
51+
Thing(PhantomData<T>),
52+
Generic,
53+
}
54+
55+
impl<T: ?Sized> PartialEq for Enum<T> {
56+
fn eq(&self, rhs: &Self) -> bool {
57+
mem::discriminant(self) == mem::discriminant(rhs)
58+
}
59+
}
60+
61+
impl<T: ?Sized> Debug for Enum<T> {
62+
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
63+
formatter.write_str("Generic")
64+
}
65+
}
66+
4767
#[track_caller]
4868
fn assert_err<T: Debug>(result: impl FnOnce() -> Result<T>, expected: &'static str) {
4969
let actual = result().unwrap_err().to_string();
@@ -356,27 +376,27 @@ fn test_path() {
356376
let test = || Ok(ensure!(E::U::<u8,>>E::U));
357377
assert_err(test, "Condition failed: `E::U::<u8> > E::U` (U vs U)");
358378

359-
let test = || Ok(ensure!(PhantomData::<dyn Debug + Sync> != PhantomData));
379+
let test = || Ok(ensure!(Generic::<dyn Debug + Sync> != Generic));
360380
assert_err(
361381
test,
362-
"Condition failed: `PhantomData::<dyn Debug + Sync> != PhantomData`",
382+
"Condition failed: `Generic::<dyn Debug + Sync> != Generic` (Generic vs Generic)",
363383
);
364384

365-
let test = || Ok(ensure!(PhantomData::<dyn Fn() + Sync> != PhantomData));
385+
let test = || Ok(ensure!(Generic::<dyn Fn() + Sync> != Generic));
366386
assert_err(
367387
test,
368-
"Condition failed: `PhantomData::<dyn Fn() + Sync> != PhantomData`",
388+
"Condition failed: `Generic::<dyn Fn() + Sync> != Generic` (Generic vs Generic)",
369389
);
370390

371391
#[rustfmt::skip]
372392
let test = || {
373393
Ok(ensure!(
374-
PhantomData::<dyn Fn::() + ::std::marker::Sync> != PhantomData
394+
Generic::<dyn Fn::() + ::std::marker::Sync> != Generic
375395
))
376396
};
377397
assert_err(
378398
test,
379-
"Condition failed: `PhantomData::<dyn Fn() + ::std::marker::Sync> != PhantomData`",
399+
"Condition failed: `Generic::<dyn Fn() + ::std::marker::Sync> != Generic` (Generic vs Generic)",
380400
);
381401
}
382402

0 commit comments

Comments
 (0)