Skip to content

Commit

Permalink
Rollup merge of rust-lang#63419 - RalfJung:typeid, r=alexcrichton
Browse files Browse the repository at this point in the history
check against more collisions for TypeId of fn pointer

Cc rust-lang/rfcs#2738 (comment)
  • Loading branch information
Centril authored Aug 10, 2019
2 parents 9ece794 + 4dd96d2 commit 664b34d
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions src/test/ui/typeid-intrinsic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,20 @@ pub fn main() {
assert_eq!(TypeId::of::<other1::U32Iterator>(), other1::id_u32_iterator());
assert_eq!(other1::id_i32_iterator(), other2::id_i32_iterator());
assert_eq!(other1::id_u32_iterator(), other2::id_u32_iterator());
assert!(other1::id_i32_iterator() != other1::id_u32_iterator());
assert!(TypeId::of::<other1::I32Iterator>() != TypeId::of::<other1::U32Iterator>());
assert_ne!(other1::id_i32_iterator(), other1::id_u32_iterator());
assert_ne!(TypeId::of::<other1::I32Iterator>(), TypeId::of::<other1::U32Iterator>());

// Check fn pointer against collisions
assert!(TypeId::of::<fn(fn(A) -> A) -> A>() !=
TypeId::of::<fn(fn() -> A, A) -> A>());
assert_ne!(
TypeId::of::<fn(fn(A) -> A) -> A>(),
TypeId::of::<fn(fn() -> A, A) -> A>()
);
assert_ne!(
TypeId::of::<for<'a> fn(&'a i32) -> &'a i32>(),
TypeId::of::<for<'a> fn(&'a i32) -> &'static i32>()
);
assert_ne!(
TypeId::of::<for<'a, 'b> fn(&'a i32, &'b i32) -> &'a i32>(),
TypeId::of::<for<'a, 'b> fn(&'b i32, &'a i32) -> &'a i32>()
);
}

0 comments on commit 664b34d

Please sign in to comment.