Auto merge of #107925 - thomcc:sip13, r=cjgillot
Use SipHash-1-3 instead of SipHash-2-4 for StableHasher Noticed this, and it seems easy and likely a perf win. IIUC we don't need DDOS resistance (just collision) so we ideally would have an even faster hash, but it's hard to beat this SipHash impl here, since it's been so highly tuned for the interface. It wouldn't surprise me if there's some subtle reason changing this sucks, as it's so obvious it seems likely to have been done. Still, SipHash-1-3 seems to still have the guarantees StableHasher should need (and seemingly more), and is clearly less work. So it's worth a shot. Not fully tested locally.
This commit is contained in:
commit
2e486be8d2
35 changed files with 179 additions and 377 deletions
|
@ -247,7 +247,7 @@ impl SipHasher128 {
|
||||||
for i in 0..BUFFER_CAPACITY {
|
for i in 0..BUFFER_CAPACITY {
|
||||||
let elem = self.buf.get_unchecked(i).assume_init().to_le();
|
let elem = self.buf.get_unchecked(i).assume_init().to_le();
|
||||||
self.state.v3 ^= elem;
|
self.state.v3 ^= elem;
|
||||||
Sip24Rounds::c_rounds(&mut self.state);
|
Sip13Rounds::c_rounds(&mut self.state);
|
||||||
self.state.v0 ^= elem;
|
self.state.v0 ^= elem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -327,7 +327,7 @@ impl SipHasher128 {
|
||||||
for i in 0..last {
|
for i in 0..last {
|
||||||
let elem = self.buf.get_unchecked(i).assume_init().to_le();
|
let elem = self.buf.get_unchecked(i).assume_init().to_le();
|
||||||
self.state.v3 ^= elem;
|
self.state.v3 ^= elem;
|
||||||
Sip24Rounds::c_rounds(&mut self.state);
|
Sip13Rounds::c_rounds(&mut self.state);
|
||||||
self.state.v0 ^= elem;
|
self.state.v0 ^= elem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,7 +340,7 @@ impl SipHasher128 {
|
||||||
for _ in 0..elems_left {
|
for _ in 0..elems_left {
|
||||||
let elem = (msg.as_ptr().add(processed) as *const u64).read_unaligned().to_le();
|
let elem = (msg.as_ptr().add(processed) as *const u64).read_unaligned().to_le();
|
||||||
self.state.v3 ^= elem;
|
self.state.v3 ^= elem;
|
||||||
Sip24Rounds::c_rounds(&mut self.state);
|
Sip13Rounds::c_rounds(&mut self.state);
|
||||||
self.state.v0 ^= elem;
|
self.state.v0 ^= elem;
|
||||||
processed += ELEM_SIZE;
|
processed += ELEM_SIZE;
|
||||||
}
|
}
|
||||||
|
@ -368,7 +368,7 @@ impl SipHasher128 {
|
||||||
for i in 0..last {
|
for i in 0..last {
|
||||||
let elem = unsafe { self.buf.get_unchecked(i).assume_init().to_le() };
|
let elem = unsafe { self.buf.get_unchecked(i).assume_init().to_le() };
|
||||||
state.v3 ^= elem;
|
state.v3 ^= elem;
|
||||||
Sip24Rounds::c_rounds(&mut state);
|
Sip13Rounds::c_rounds(&mut state);
|
||||||
state.v0 ^= elem;
|
state.v0 ^= elem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,15 +392,15 @@ impl SipHasher128 {
|
||||||
let b: u64 = ((length as u64 & 0xff) << 56) | elem;
|
let b: u64 = ((length as u64 & 0xff) << 56) | elem;
|
||||||
|
|
||||||
state.v3 ^= b;
|
state.v3 ^= b;
|
||||||
Sip24Rounds::c_rounds(&mut state);
|
Sip13Rounds::c_rounds(&mut state);
|
||||||
state.v0 ^= b;
|
state.v0 ^= b;
|
||||||
|
|
||||||
state.v2 ^= 0xee;
|
state.v2 ^= 0xee;
|
||||||
Sip24Rounds::d_rounds(&mut state);
|
Sip13Rounds::d_rounds(&mut state);
|
||||||
let _0 = state.v0 ^ state.v1 ^ state.v2 ^ state.v3;
|
let _0 = state.v0 ^ state.v1 ^ state.v2 ^ state.v3;
|
||||||
|
|
||||||
state.v1 ^= 0xdd;
|
state.v1 ^= 0xdd;
|
||||||
Sip24Rounds::d_rounds(&mut state);
|
Sip13Rounds::d_rounds(&mut state);
|
||||||
let _1 = state.v0 ^ state.v1 ^ state.v2 ^ state.v3;
|
let _1 = state.v0 ^ state.v1 ^ state.v2 ^ state.v3;
|
||||||
|
|
||||||
(_0, _1)
|
(_0, _1)
|
||||||
|
@ -477,13 +477,12 @@ impl Hasher for SipHasher128 {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Default)]
|
#[derive(Debug, Clone, Default)]
|
||||||
struct Sip24Rounds;
|
struct Sip13Rounds;
|
||||||
|
|
||||||
impl Sip24Rounds {
|
impl Sip13Rounds {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn c_rounds(state: &mut State) {
|
fn c_rounds(state: &mut State) {
|
||||||
compress!(state);
|
compress!(state);
|
||||||
compress!(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
|
@ -491,6 +490,5 @@ impl Sip24Rounds {
|
||||||
compress!(state);
|
compress!(state);
|
||||||
compress!(state);
|
compress!(state);
|
||||||
compress!(state);
|
compress!(state);
|
||||||
compress!(state);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,269 +22,76 @@ fn hash_with<T: Hash>(mut st: SipHasher128, x: &T) -> (u64, u64) {
|
||||||
fn hash<T: Hash>(x: &T) -> (u64, u64) {
|
fn hash<T: Hash>(x: &T) -> (u64, u64) {
|
||||||
hash_with(SipHasher128::new_with_keys(0, 0), x)
|
hash_with(SipHasher128::new_with_keys(0, 0), x)
|
||||||
}
|
}
|
||||||
|
#[rustfmt::skip]
|
||||||
const TEST_VECTOR: [[u8; 16]; 64] = [
|
const TEST_VECTOR: [[u8; 16]; 64] = [
|
||||||
[
|
[0xe7, 0x7e, 0xbc, 0xb2, 0x27, 0x88, 0xa5, 0xbe, 0xfd, 0x62, 0xdb, 0x6a, 0xdd, 0x30, 0x30, 0x01],
|
||||||
0xa3, 0x81, 0x7f, 0x04, 0xba, 0x25, 0xa8, 0xe6, 0x6d, 0xf6, 0x72, 0x14, 0xc7, 0x55, 0x02,
|
[0xfc, 0x6f, 0x37, 0x04, 0x60, 0xd3, 0xed, 0xa8, 0x5e, 0x05, 0x73, 0xcc, 0x2b, 0x2f, 0xf0, 0x63],
|
||||||
0x93,
|
[0x75, 0x78, 0x7f, 0x09, 0x05, 0x69, 0x83, 0x9b, 0x85, 0x5b, 0xc9, 0x54, 0x8c, 0x6a, 0xea, 0x95],
|
||||||
],
|
[0x6b, 0xc5, 0xcc, 0xfa, 0x1e, 0xdc, 0xf7, 0x9f, 0x48, 0x23, 0x18, 0x77, 0x12, 0xeb, 0xd7, 0x43],
|
||||||
[
|
[0x0c, 0x78, 0x4e, 0x71, 0xac, 0x2b, 0x28, 0x5a, 0x9f, 0x8e, 0x92, 0xe7, 0x8f, 0xbf, 0x2c, 0x25],
|
||||||
0xda, 0x87, 0xc1, 0xd8, 0x6b, 0x99, 0xaf, 0x44, 0x34, 0x76, 0x59, 0x11, 0x9b, 0x22, 0xfc,
|
[0xf3, 0x28, 0xdb, 0x89, 0x34, 0x5b, 0x62, 0x0c, 0x79, 0x52, 0x29, 0xa4, 0x26, 0x95, 0x84, 0x3e],
|
||||||
0x45,
|
[0xdc, 0xd0, 0x3d, 0x29, 0xf7, 0x43, 0xe7, 0x10, 0x09, 0x51, 0xb0, 0xe8, 0x39, 0x85, 0xa6, 0xf8],
|
||||||
],
|
[0x10, 0x84, 0xb9, 0x23, 0xf2, 0xaa, 0xe0, 0xc3, 0xa6, 0x2f, 0x2e, 0xc8, 0x08, 0x48, 0xab, 0x77],
|
||||||
[
|
[0xaa, 0x12, 0xfe, 0xe1, 0xd5, 0xe3, 0xda, 0xb4, 0x72, 0x4f, 0x16, 0xab, 0x35, 0xf9, 0xc7, 0x99],
|
||||||
0x81, 0x77, 0x22, 0x8d, 0xa4, 0xa4, 0x5d, 0xc7, 0xfc, 0xa3, 0x8b, 0xde, 0xf6, 0x0a, 0xff,
|
[0x81, 0xdd, 0xb8, 0x04, 0x2c, 0xf3, 0x39, 0x94, 0xf4, 0x72, 0x0e, 0x00, 0x94, 0x13, 0x7c, 0x42],
|
||||||
0xe4,
|
[0x4f, 0xaa, 0x54, 0x1d, 0x5d, 0x49, 0x8e, 0x89, 0xba, 0x0e, 0xa4, 0xc3, 0x87, 0xb2, 0x2f, 0xb4],
|
||||||
],
|
[0x72, 0x3b, 0x9a, 0xf3, 0x55, 0x44, 0x91, 0xdb, 0xb1, 0xd6, 0x63, 0x3d, 0xfc, 0x6e, 0x0c, 0x4e],
|
||||||
[
|
[0xe5, 0x3f, 0x92, 0x85, 0x9e, 0x48, 0x19, 0xa8, 0xdc, 0x06, 0x95, 0x73, 0x9f, 0xea, 0x8c, 0x65],
|
||||||
0x9c, 0x70, 0xb6, 0x0c, 0x52, 0x67, 0xa9, 0x4e, 0x5f, 0x33, 0xb6, 0xb0, 0x29, 0x85, 0xed,
|
[0xb2, 0xf8, 0x58, 0xc7, 0xc9, 0xea, 0x80, 0x1d, 0x53, 0xd6, 0x03, 0x59, 0x6d, 0x65, 0x78, 0x44],
|
||||||
0x51,
|
[0x87, 0xe7, 0x62, 0x68, 0xdb, 0xc9, 0x22, 0x72, 0x26, 0xb0, 0xca, 0x66, 0x5f, 0x64, 0xe3, 0x78],
|
||||||
],
|
[0xc1, 0x7e, 0x55, 0x05, 0xb2, 0xbd, 0x52, 0x6c, 0x29, 0x21, 0xcd, 0xec, 0x1e, 0x7e, 0x01, 0x09],
|
||||||
[
|
[0xd0, 0xa8, 0xd9, 0x57, 0x15, 0x51, 0x8e, 0xeb, 0xb5, 0x13, 0xb0, 0xf8, 0x3d, 0x9e, 0x17, 0x93],
|
||||||
0xf8, 0x81, 0x64, 0xc1, 0x2d, 0x9c, 0x8f, 0xaf, 0x7d, 0x0f, 0x6e, 0x7c, 0x7b, 0xcd, 0x55,
|
[0x23, 0x41, 0x26, 0xf9, 0x3f, 0xbb, 0x66, 0x8d, 0x97, 0x51, 0x12, 0xe8, 0xfe, 0xbd, 0xf7, 0xec],
|
||||||
0x79,
|
[0xef, 0x42, 0xf0, 0x3d, 0xb7, 0x8f, 0x70, 0x4d, 0x02, 0x3c, 0x44, 0x9f, 0x16, 0xb7, 0x09, 0x2b],
|
||||||
],
|
[0xab, 0xf7, 0x62, 0x38, 0xc2, 0x0a, 0xf1, 0x61, 0xb2, 0x31, 0x4b, 0x4d, 0x55, 0x26, 0xbc, 0xe9],
|
||||||
[
|
[0x3c, 0x2c, 0x2f, 0x11, 0xbb, 0x90, 0xcf, 0x0b, 0xe3, 0x35, 0xca, 0x9b, 0x2e, 0x91, 0xe9, 0xb7],
|
||||||
0x13, 0x68, 0x87, 0x59, 0x80, 0x77, 0x6f, 0x88, 0x54, 0x52, 0x7a, 0x07, 0x69, 0x0e, 0x96,
|
[0x2a, 0x7a, 0x68, 0x0f, 0x22, 0xa0, 0x2a, 0x92, 0xf4, 0x51, 0x49, 0xd2, 0x0f, 0xec, 0xe0, 0xef],
|
||||||
0x27,
|
[0xc9, 0xa8, 0xd1, 0x30, 0x23, 0x1d, 0xd4, 0x3e, 0x42, 0xe6, 0x45, 0x69, 0x57, 0xf8, 0x37, 0x79],
|
||||||
],
|
[0x1d, 0x12, 0x7b, 0x84, 0x40, 0x5c, 0xea, 0xb9, 0x9f, 0xd8, 0x77, 0x5a, 0x9b, 0xe6, 0xc5, 0x59],
|
||||||
[
|
[0x9e, 0x4b, 0xf8, 0x37, 0xbc, 0xfd, 0x92, 0xca, 0xce, 0x09, 0xd2, 0x06, 0x1a, 0x84, 0xd0, 0x4a],
|
||||||
0x14, 0xee, 0xca, 0x33, 0x8b, 0x20, 0x86, 0x13, 0x48, 0x5e, 0xa0, 0x30, 0x8f, 0xd7, 0xa1,
|
[0x39, 0x03, 0x1a, 0x96, 0x5d, 0x73, 0xb4, 0xaf, 0x5a, 0x27, 0x4d, 0x18, 0xf9, 0x73, 0xb1, 0xd2],
|
||||||
0x5e,
|
[0x7f, 0x4d, 0x0a, 0x12, 0x09, 0xd6, 0x7e, 0x4e, 0xd0, 0x6f, 0x75, 0x38, 0xe1, 0xcf, 0xad, 0x64],
|
||||||
],
|
[0xe6, 0x1e, 0xe2, 0x40, 0xfb, 0xdc, 0xce, 0x38, 0x96, 0x9f, 0x4c, 0xd2, 0x49, 0x27, 0xdd, 0x93],
|
||||||
[
|
[0x4c, 0x3b, 0xa2, 0xb3, 0x7b, 0x0f, 0xdd, 0x8c, 0xfa, 0x5e, 0x95, 0xc1, 0x89, 0xb2, 0x94, 0x14],
|
||||||
0xa1, 0xf1, 0xeb, 0xbe, 0xd8, 0xdb, 0xc1, 0x53, 0xc0, 0xb8, 0x4a, 0xa6, 0x1f, 0xf0, 0x82,
|
[0xe0, 0x6f, 0xd4, 0xca, 0x06, 0x6f, 0xec, 0xdd, 0x54, 0x06, 0x8a, 0x5a, 0xd8, 0x89, 0x6f, 0x86],
|
||||||
0x39,
|
[0x5c, 0xa8, 0x4c, 0x34, 0x13, 0x9c, 0x65, 0x80, 0xa8, 0x8a, 0xf2, 0x49, 0x90, 0x72, 0x07, 0x06],
|
||||||
],
|
[0x42, 0xea, 0x96, 0x1c, 0x5b, 0x3c, 0x85, 0x8b, 0x17, 0xc3, 0xe5, 0x50, 0xdf, 0xa7, 0x90, 0x10],
|
||||||
[
|
[0x40, 0x6c, 0x44, 0xde, 0xe6, 0x78, 0x57, 0xb2, 0x94, 0x31, 0x60, 0xf3, 0x0c, 0x74, 0x17, 0xd3],
|
||||||
0x3b, 0x62, 0xa9, 0xba, 0x62, 0x58, 0xf5, 0x61, 0x0f, 0x83, 0xe2, 0x64, 0xf3, 0x14, 0x97,
|
[0xc5, 0xf5, 0x7b, 0xae, 0x13, 0x20, 0xfc, 0xf4, 0xb4, 0xe8, 0x68, 0xe7, 0x1d, 0x56, 0xc6, 0x6b],
|
||||||
0xb4,
|
[0x04, 0xbf, 0x73, 0x7a, 0x5b, 0x67, 0x6b, 0xe7, 0xc3, 0xde, 0x05, 0x01, 0x7d, 0xf4, 0xbf, 0xf9],
|
||||||
],
|
[0x51, 0x63, 0xc9, 0xc0, 0x3f, 0x19, 0x07, 0xea, 0x10, 0x44, 0xed, 0x5c, 0x30, 0x72, 0x7b, 0x4f],
|
||||||
[
|
[0x37, 0xa1, 0x10, 0xf0, 0x02, 0x71, 0x8e, 0xda, 0xd2, 0x4b, 0x3f, 0x9e, 0xe4, 0x53, 0xf1, 0x40],
|
||||||
0x26, 0x44, 0x99, 0x06, 0x0a, 0xd9, 0xba, 0xab, 0xc4, 0x7f, 0x8b, 0x02, 0xbb, 0x6d, 0x71,
|
[0xb9, 0x87, 0x7e, 0x38, 0x1a, 0xed, 0xd3, 0xda, 0x08, 0xc3, 0x3e, 0x75, 0xff, 0x23, 0xac, 0x10],
|
||||||
0xed,
|
[0x7c, 0x50, 0x04, 0x00, 0x5e, 0xc5, 0xda, 0x4c, 0x5a, 0xc9, 0x44, 0x0e, 0x5c, 0x72, 0x31, 0x93],
|
||||||
],
|
[0x81, 0xb8, 0x24, 0x37, 0x83, 0xdb, 0xc6, 0x46, 0xca, 0x9d, 0x0c, 0xd8, 0x2a, 0xbd, 0xb4, 0x6c],
|
||||||
[
|
[0x50, 0x57, 0x20, 0x54, 0x3e, 0xb9, 0xb4, 0x13, 0xd5, 0x0b, 0x3c, 0xfa, 0xd9, 0xee, 0xf9, 0x38],
|
||||||
0x00, 0x11, 0x0d, 0xc3, 0x78, 0x14, 0x69, 0x56, 0xc9, 0x54, 0x47, 0xd3, 0xf3, 0xd0, 0xfb,
|
[0x94, 0x5f, 0x59, 0x4d, 0xe7, 0x24, 0x11, 0xe4, 0xd3, 0x35, 0xbe, 0x87, 0x44, 0x56, 0xd8, 0xf3],
|
||||||
0xba,
|
[0x37, 0x92, 0x3b, 0x3e, 0x37, 0x17, 0x77, 0xb2, 0x11, 0x70, 0xbf, 0x9d, 0x7e, 0x62, 0xf6, 0x02],
|
||||||
],
|
[0x3a, 0xd4, 0xe7, 0xc8, 0x57, 0x64, 0x96, 0x46, 0x11, 0xeb, 0x0a, 0x6c, 0x4d, 0x62, 0xde, 0x56],
|
||||||
[
|
[0xcd, 0x91, 0x39, 0x6c, 0x44, 0xaf, 0x4f, 0x51, 0x85, 0x57, 0x8d, 0x9d, 0xd9, 0x80, 0x3f, 0x0a],
|
||||||
0x01, 0x51, 0xc5, 0x68, 0x38, 0x6b, 0x66, 0x77, 0xa2, 0xb4, 0xdc, 0x6f, 0x81, 0xe5, 0xdc,
|
[0xfe, 0x28, 0x15, 0x8e, 0x72, 0x7b, 0x86, 0x8f, 0x39, 0x03, 0xc9, 0xac, 0xda, 0x64, 0xa2, 0x58],
|
||||||
0x18,
|
[0x40, 0xcc, 0x10, 0xb8, 0x28, 0x8c, 0xe5, 0xf0, 0xbc, 0x3a, 0xc0, 0xb6, 0x8a, 0x0e, 0xeb, 0xc8],
|
||||||
],
|
[0x6f, 0x14, 0x90, 0xf5, 0x40, 0x69, 0x9a, 0x3c, 0xd4, 0x97, 0x44, 0x20, 0xec, 0xc9, 0x27, 0x37],
|
||||||
[
|
[0xd5, 0x05, 0xf1, 0xb7, 0x5e, 0x1a, 0x84, 0xa6, 0x03, 0xc4, 0x35, 0x83, 0xb2, 0xed, 0x03, 0x08],
|
||||||
0xd6, 0x26, 0xb2, 0x66, 0x90, 0x5e, 0xf3, 0x58, 0x82, 0x63, 0x4d, 0xf6, 0x85, 0x32, 0xc1,
|
[0x49, 0x15, 0x73, 0xcf, 0xd7, 0x2b, 0xb4, 0x68, 0x2b, 0x7c, 0xa5, 0x88, 0x0e, 0x1c, 0x8d, 0x6f],
|
||||||
0x25,
|
[0x3e, 0xd6, 0x9c, 0xfe, 0x45, 0xab, 0x40, 0x3f, 0x2f, 0xd2, 0xad, 0x95, 0x9b, 0xa2, 0x76, 0x66],
|
||||||
],
|
[0x8b, 0xe8, 0x39, 0xef, 0x1b, 0x20, 0xb5, 0x7c, 0x83, 0xba, 0x7e, 0xb6, 0xa8, 0xc2, 0x2b, 0x6a],
|
||||||
[
|
[0x14, 0x09, 0x18, 0x6a, 0xb4, 0x22, 0x31, 0xfe, 0xde, 0xe1, 0x81, 0x62, 0xcf, 0x1c, 0xb4, 0xca],
|
||||||
0x98, 0x69, 0xe2, 0x47, 0xe9, 0xc0, 0x8b, 0x10, 0xd0, 0x29, 0x93, 0x4f, 0xc4, 0xb9, 0x52,
|
[0x2b, 0xf3, 0xcc, 0xc2, 0x4a, 0xb6, 0x72, 0xcf, 0x15, 0x1f, 0xb8, 0xd2, 0xf3, 0xf3, 0x06, 0x9b],
|
||||||
0xf7,
|
[0xb9, 0xb9, 0x3a, 0x28, 0x82, 0xd6, 0x02, 0x5c, 0xdb, 0x8c, 0x56, 0xfa, 0x13, 0xf7, 0x53, 0x7b],
|
||||||
],
|
[0xd9, 0x7c, 0xca, 0x36, 0x94, 0xfb, 0x20, 0x6d, 0xb8, 0xbd, 0x1f, 0x36, 0x50, 0xc3, 0x33, 0x22],
|
||||||
[
|
[0x94, 0xec, 0x2e, 0x19, 0xa4, 0x0b, 0xe4, 0x1a, 0xf3, 0x94, 0x0d, 0x6b, 0x30, 0xc4, 0x93, 0x84],
|
||||||
0x31, 0xfc, 0xef, 0xac, 0x66, 0xd7, 0xde, 0x9c, 0x7e, 0xc7, 0x48, 0x5f, 0xe4, 0x49, 0x49,
|
[0x4b, 0x41, 0x60, 0x3f, 0x20, 0x9a, 0x04, 0x5b, 0xe1, 0x40, 0xa3, 0x41, 0xa3, 0xdf, 0xfe, 0x10],
|
||||||
0x02,
|
[0x23, 0xfb, 0xcb, 0x30, 0x9f, 0x1c, 0xf0, 0x94, 0x89, 0x07, 0x55, 0xab, 0x1b, 0x42, 0x65, 0x69],
|
||||||
],
|
[0xe7, 0xd9, 0xb6, 0x56, 0x90, 0x91, 0x8a, 0x2b, 0x23, 0x2f, 0x2f, 0x5c, 0x12, 0xc8, 0x30, 0x0e],
|
||||||
[
|
[0xad, 0xe8, 0x3c, 0xf7, 0xe7, 0xf3, 0x84, 0x7b, 0x36, 0xfa, 0x4b, 0x54, 0xb0, 0x0d, 0xce, 0x61],
|
||||||
0x54, 0x93, 0xe9, 0x99, 0x33, 0xb0, 0xa8, 0x11, 0x7e, 0x08, 0xec, 0x0f, 0x97, 0xcf, 0xc3,
|
[0x06, 0x10, 0xc5, 0xf2, 0xee, 0x57, 0x1c, 0x8a, 0xc8, 0x0c, 0xbf, 0xe5, 0x38, 0xbd, 0xf1, 0xc7],
|
||||||
0xd9,
|
[0x27, 0x1d, 0x5d, 0x00, 0xfb, 0xdb, 0x5d, 0x15, 0x5d, 0x9d, 0xce, 0xa9, 0x7c, 0xb4, 0x02, 0x18],
|
||||||
],
|
[0x4c, 0x58, 0x00, 0xe3, 0x4e, 0xfe, 0x42, 0x6f, 0x07, 0x9f, 0x6b, 0x0a, 0xa7, 0x52, 0x60, 0xad],
|
||||||
[
|
|
||||||
0x6e, 0xe2, 0xa4, 0xca, 0x67, 0xb0, 0x54, 0xbb, 0xfd, 0x33, 0x15, 0xbf, 0x85, 0x23, 0x05,
|
|
||||||
0x77,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x47, 0x3d, 0x06, 0xe8, 0x73, 0x8d, 0xb8, 0x98, 0x54, 0xc0, 0x66, 0xc4, 0x7a, 0xe4, 0x77,
|
|
||||||
0x40,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xa4, 0x26, 0xe5, 0xe4, 0x23, 0xbf, 0x48, 0x85, 0x29, 0x4d, 0xa4, 0x81, 0xfe, 0xae, 0xf7,
|
|
||||||
0x23,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x78, 0x01, 0x77, 0x31, 0xcf, 0x65, 0xfa, 0xb0, 0x74, 0xd5, 0x20, 0x89, 0x52, 0x51, 0x2e,
|
|
||||||
0xb1,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x9e, 0x25, 0xfc, 0x83, 0x3f, 0x22, 0x90, 0x73, 0x3e, 0x93, 0x44, 0xa5, 0xe8, 0x38, 0x39,
|
|
||||||
0xeb,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x56, 0x8e, 0x49, 0x5a, 0xbe, 0x52, 0x5a, 0x21, 0x8a, 0x22, 0x14, 0xcd, 0x3e, 0x07, 0x1d,
|
|
||||||
0x12,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x4a, 0x29, 0xb5, 0x45, 0x52, 0xd1, 0x6b, 0x9a, 0x46, 0x9c, 0x10, 0x52, 0x8e, 0xff, 0x0a,
|
|
||||||
0xae,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xc9, 0xd1, 0x84, 0xdd, 0xd5, 0xa9, 0xf5, 0xe0, 0xcf, 0x8c, 0xe2, 0x9a, 0x9a, 0xbf, 0x69,
|
|
||||||
0x1c,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x2d, 0xb4, 0x79, 0xae, 0x78, 0xbd, 0x50, 0xd8, 0x88, 0x2a, 0x8a, 0x17, 0x8a, 0x61, 0x32,
|
|
||||||
0xad,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x8e, 0xce, 0x5f, 0x04, 0x2d, 0x5e, 0x44, 0x7b, 0x50, 0x51, 0xb9, 0xea, 0xcb, 0x8d, 0x8f,
|
|
||||||
0x6f,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x9c, 0x0b, 0x53, 0xb4, 0xb3, 0xc3, 0x07, 0xe8, 0x7e, 0xae, 0xe0, 0x86, 0x78, 0x14, 0x1f,
|
|
||||||
0x66,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xab, 0xf2, 0x48, 0xaf, 0x69, 0xa6, 0xea, 0xe4, 0xbf, 0xd3, 0xeb, 0x2f, 0x12, 0x9e, 0xeb,
|
|
||||||
0x94,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x06, 0x64, 0xda, 0x16, 0x68, 0x57, 0x4b, 0x88, 0xb9, 0x35, 0xf3, 0x02, 0x73, 0x58, 0xae,
|
|
||||||
0xf4,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xaa, 0x4b, 0x9d, 0xc4, 0xbf, 0x33, 0x7d, 0xe9, 0x0c, 0xd4, 0xfd, 0x3c, 0x46, 0x7c, 0x6a,
|
|
||||||
0xb7,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xea, 0x5c, 0x7f, 0x47, 0x1f, 0xaf, 0x6b, 0xde, 0x2b, 0x1a, 0xd7, 0xd4, 0x68, 0x6d, 0x22,
|
|
||||||
0x87,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x29, 0x39, 0xb0, 0x18, 0x32, 0x23, 0xfa, 0xfc, 0x17, 0x23, 0xde, 0x4f, 0x52, 0xc4, 0x3d,
|
|
||||||
0x35,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x7c, 0x39, 0x56, 0xca, 0x5e, 0xea, 0xfc, 0x3e, 0x36, 0x3e, 0x9d, 0x55, 0x65, 0x46, 0xeb,
|
|
||||||
0x68,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x77, 0xc6, 0x07, 0x71, 0x46, 0xf0, 0x1c, 0x32, 0xb6, 0xb6, 0x9d, 0x5f, 0x4e, 0xa9, 0xff,
|
|
||||||
0xcf,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x37, 0xa6, 0x98, 0x6c, 0xb8, 0x84, 0x7e, 0xdf, 0x09, 0x25, 0xf0, 0xf1, 0x30, 0x9b, 0x54,
|
|
||||||
0xde,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xa7, 0x05, 0xf0, 0xe6, 0x9d, 0xa9, 0xa8, 0xf9, 0x07, 0x24, 0x1a, 0x2e, 0x92, 0x3c, 0x8c,
|
|
||||||
0xc8,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x3d, 0xc4, 0x7d, 0x1f, 0x29, 0xc4, 0x48, 0x46, 0x1e, 0x9e, 0x76, 0xed, 0x90, 0x4f, 0x67,
|
|
||||||
0x11,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x0d, 0x62, 0xbf, 0x01, 0xe6, 0xfc, 0x0e, 0x1a, 0x0d, 0x3c, 0x47, 0x51, 0xc5, 0xd3, 0x69,
|
|
||||||
0x2b,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x8c, 0x03, 0x46, 0x8b, 0xca, 0x7c, 0x66, 0x9e, 0xe4, 0xfd, 0x5e, 0x08, 0x4b, 0xbe, 0xe7,
|
|
||||||
0xb5,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x52, 0x8a, 0x5b, 0xb9, 0x3b, 0xaf, 0x2c, 0x9c, 0x44, 0x73, 0xcc, 0xe5, 0xd0, 0xd2, 0x2b,
|
|
||||||
0xd9,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xdf, 0x6a, 0x30, 0x1e, 0x95, 0xc9, 0x5d, 0xad, 0x97, 0xae, 0x0c, 0xc8, 0xc6, 0x91, 0x3b,
|
|
||||||
0xd8,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x80, 0x11, 0x89, 0x90, 0x2c, 0x85, 0x7f, 0x39, 0xe7, 0x35, 0x91, 0x28, 0x5e, 0x70, 0xb6,
|
|
||||||
0xdb,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xe6, 0x17, 0x34, 0x6a, 0xc9, 0xc2, 0x31, 0xbb, 0x36, 0x50, 0xae, 0x34, 0xcc, 0xca, 0x0c,
|
|
||||||
0x5b,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x27, 0xd9, 0x34, 0x37, 0xef, 0xb7, 0x21, 0xaa, 0x40, 0x18, 0x21, 0xdc, 0xec, 0x5a, 0xdf,
|
|
||||||
0x89,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x89, 0x23, 0x7d, 0x9d, 0xed, 0x9c, 0x5e, 0x78, 0xd8, 0xb1, 0xc9, 0xb1, 0x66, 0xcc, 0x73,
|
|
||||||
0x42,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x4a, 0x6d, 0x80, 0x91, 0xbf, 0x5e, 0x7d, 0x65, 0x11, 0x89, 0xfa, 0x94, 0xa2, 0x50, 0xb1,
|
|
||||||
0x4c,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x0e, 0x33, 0xf9, 0x60, 0x55, 0xe7, 0xae, 0x89, 0x3f, 0xfc, 0x0e, 0x3d, 0xcf, 0x49, 0x29,
|
|
||||||
0x02,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xe6, 0x1c, 0x43, 0x2b, 0x72, 0x0b, 0x19, 0xd1, 0x8e, 0xc8, 0xd8, 0x4b, 0xdc, 0x63, 0x15,
|
|
||||||
0x1b,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xf7, 0xe5, 0xae, 0xf5, 0x49, 0xf7, 0x82, 0xcf, 0x37, 0x90, 0x55, 0xa6, 0x08, 0x26, 0x9b,
|
|
||||||
0x16,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x43, 0x8d, 0x03, 0x0f, 0xd0, 0xb7, 0xa5, 0x4f, 0xa8, 0x37, 0xf2, 0xad, 0x20, 0x1a, 0x64,
|
|
||||||
0x03,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xa5, 0x90, 0xd3, 0xee, 0x4f, 0xbf, 0x04, 0xe3, 0x24, 0x7e, 0x0d, 0x27, 0xf2, 0x86, 0x42,
|
|
||||||
0x3f,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x5f, 0xe2, 0xc1, 0xa1, 0x72, 0xfe, 0x93, 0xc4, 0xb1, 0x5c, 0xd3, 0x7c, 0xae, 0xf9, 0xf5,
|
|
||||||
0x38,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x2c, 0x97, 0x32, 0x5c, 0xbd, 0x06, 0xb3, 0x6e, 0xb2, 0x13, 0x3d, 0xd0, 0x8b, 0x3a, 0x01,
|
|
||||||
0x7c,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x92, 0xc8, 0x14, 0x22, 0x7a, 0x6b, 0xca, 0x94, 0x9f, 0xf0, 0x65, 0x9f, 0x00, 0x2a, 0xd3,
|
|
||||||
0x9e,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xdc, 0xe8, 0x50, 0x11, 0x0b, 0xd8, 0x32, 0x8c, 0xfb, 0xd5, 0x08, 0x41, 0xd6, 0x91, 0x1d,
|
|
||||||
0x87,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x67, 0xf1, 0x49, 0x84, 0xc7, 0xda, 0x79, 0x12, 0x48, 0xe3, 0x2b, 0xb5, 0x92, 0x25, 0x83,
|
|
||||||
0xda,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x19, 0x38, 0xf2, 0xcf, 0x72, 0xd5, 0x4e, 0xe9, 0x7e, 0x94, 0x16, 0x6f, 0xa9, 0x1d, 0x2a,
|
|
||||||
0x36,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x74, 0x48, 0x1e, 0x96, 0x46, 0xed, 0x49, 0xfe, 0x0f, 0x62, 0x24, 0x30, 0x16, 0x04, 0x69,
|
|
||||||
0x8e,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x57, 0xfc, 0xa5, 0xde, 0x98, 0xa9, 0xd6, 0xd8, 0x00, 0x64, 0x38, 0xd0, 0x58, 0x3d, 0x8a,
|
|
||||||
0x1d,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x9f, 0xec, 0xde, 0x1c, 0xef, 0xdc, 0x1c, 0xbe, 0xd4, 0x76, 0x36, 0x74, 0xd9, 0x57, 0x53,
|
|
||||||
0x59,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0xe3, 0x04, 0x0c, 0x00, 0xeb, 0x28, 0xf1, 0x53, 0x66, 0xca, 0x73, 0xcb, 0xd8, 0x72, 0xe7,
|
|
||||||
0x40,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x76, 0x97, 0x00, 0x9a, 0x6a, 0x83, 0x1d, 0xfe, 0xcc, 0xa9, 0x1c, 0x59, 0x93, 0x67, 0x0f,
|
|
||||||
0x7a,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x58, 0x53, 0x54, 0x23, 0x21, 0xf5, 0x67, 0xa0, 0x05, 0xd5, 0x47, 0xa4, 0xf0, 0x47, 0x59,
|
|
||||||
0xbd,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0x51, 0x50, 0xd1, 0x77, 0x2f, 0x50, 0x83, 0x4a, 0x50, 0x3e, 0x06, 0x9a, 0x97, 0x3f, 0xbd,
|
|
||||||
0x7c,
|
|
||||||
],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// Test vector from reference implementation
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_siphash_2_4_test_vector() {
|
fn test_siphash_1_3_test_vector() {
|
||||||
let k0 = 0x_07_06_05_04_03_02_01_00;
|
let k0 = 0x_07_06_05_04_03_02_01_00;
|
||||||
let k1 = 0x_0f_0e_0d_0c_0b_0a_09_08;
|
let k1 = 0x_0f_0e_0d_0c_0b_0a_09_08;
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ fn test_hash_integers() {
|
||||||
test_isize.hash(&mut h);
|
test_isize.hash(&mut h);
|
||||||
|
|
||||||
// This depends on the hashing algorithm. See note at top of file.
|
// This depends on the hashing algorithm. See note at top of file.
|
||||||
let expected = (1784307454142909076, 11471672289340283879);
|
let expected = (13997337031081104755, 6178945012502239489);
|
||||||
|
|
||||||
assert_eq!(h.finalize(), expected);
|
assert_eq!(h.finalize(), expected);
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ fn test_hash_usize() {
|
||||||
test_usize.hash(&mut h);
|
test_usize.hash(&mut h);
|
||||||
|
|
||||||
// This depends on the hashing algorithm. See note at top of file.
|
// This depends on the hashing algorithm. See note at top of file.
|
||||||
let expected = (5798740672699530587, 11186240177685111648);
|
let expected = (12037165114281468837, 3094087741167521712);
|
||||||
|
|
||||||
assert_eq!(h.finalize(), expected);
|
assert_eq!(h.finalize(), expected);
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ fn test_hash_isize() {
|
||||||
test_isize.hash(&mut h);
|
test_isize.hash(&mut h);
|
||||||
|
|
||||||
// This depends on the hashing algorithm. See note at top of file.
|
// This depends on the hashing algorithm. See note at top of file.
|
||||||
let expected = (2789913510339652884, 674280939192711005);
|
let expected = (3979067582695659080, 2322428596355037273);
|
||||||
|
|
||||||
assert_eq!(h.finalize(), expected);
|
assert_eq!(h.finalize(), expected);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,9 +25,9 @@ global_asm!("movl ${}, %ecx", const 5, options(att_syntax));
|
||||||
global_asm!("call {}", sym my_func);
|
global_asm!("call {}", sym my_func);
|
||||||
// CHECK: lea rax, [rip + MY_STATIC]
|
// CHECK: lea rax, [rip + MY_STATIC]
|
||||||
global_asm!("lea rax, [rip + {}]", sym MY_STATIC);
|
global_asm!("lea rax, [rip + {}]", sym MY_STATIC);
|
||||||
// CHECK: call _RNvCsiubXh4Yz005_10global_asm6foobar
|
// CHECK: call _RNvCsddMtV7nAi4C_10global_asm6foobar
|
||||||
global_asm!("call {}", sym foobar);
|
global_asm!("call {}", sym foobar);
|
||||||
// CHECK: _RNvCsiubXh4Yz005_10global_asm6foobar:
|
// CHECK: _RNvCsddMtV7nAi4C_10global_asm6foobar:
|
||||||
fn foobar() {
|
fn foobar() {
|
||||||
loop {}
|
loop {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
// CHECK: @STATIC = {{.*}}, align 4
|
// CHECK: @STATIC = {{.*}}, align 4
|
||||||
|
|
||||||
// This checks the constants from inline_enum_const
|
// This checks the constants from inline_enum_const
|
||||||
// CHECK: @alloc_701ed935fbda2002838d0a2cbbc171e5 = {{.*}}, align 2
|
// CHECK: @alloc_af1f8e8e6f4b341431a1d405e652df2d = {{.*}}, align 2
|
||||||
|
|
||||||
// This checks the constants from {low,high}_align_const, they share the same
|
// This checks the constants from {low,high}_align_const, they share the same
|
||||||
// constant, but the alignment differs, so the higher one should be used
|
// constant, but the alignment differs, so the higher one should be used
|
||||||
|
|
|
@ -12,7 +12,7 @@ mod aux_mod;
|
||||||
include!("aux_mod.rs");
|
include!("aux_mod.rs");
|
||||||
|
|
||||||
// Here we check that the expansion of the file!() macro is mapped.
|
// Here we check that the expansion of the file!() macro is mapped.
|
||||||
// CHECK: @alloc_af9d0c7bc6ca3c31bb051d2862714536 = private unnamed_addr constant <{ [34 x i8] }> <{ [34 x i8] c"/the/src/remap_path_prefix/main.rs" }>
|
// CHECK: @alloc_5761061597a97f66e13ef2ff92712c4b = private unnamed_addr constant <{ [34 x i8] }> <{ [34 x i8] c"/the/src/remap_path_prefix/main.rs" }>
|
||||||
pub static FILE_PATH: &'static str = file!();
|
pub static FILE_PATH: &'static str = file!();
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
|
@ -82,7 +82,7 @@ fn taking_u(u: &dyn U) -> i32 {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn taking_v(v: &dyn V) -> i32 {
|
pub fn taking_v(v: &dyn V) -> i32 {
|
||||||
// CHECK: @llvm.type.checked.load({{.*}}, i32 24, metadata !"NtCsfRpWlKdQPZn_28virtual_function_elimination1V")
|
// CHECK: @llvm.type.checked.load({{.*}}, i32 24, metadata !"NtCs64ITQYi9761_28virtual_function_elimination1V")
|
||||||
v.public_function()
|
v.public_function()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,5 +97,5 @@ pub fn main() {
|
||||||
// CHECK: ![[TYPE0]] = !{i64 0, !"[[MANGLED_TYPE0]]"}
|
// CHECK: ![[TYPE0]] = !{i64 0, !"[[MANGLED_TYPE0]]"}
|
||||||
// CHECK: ![[VCALL_VIS0]] = !{i64 2}
|
// CHECK: ![[VCALL_VIS0]] = !{i64 2}
|
||||||
// CHECK: ![[TYPE1]] = !{i64 0, !"[[MANGLED_TYPE1]]"}
|
// CHECK: ![[TYPE1]] = !{i64 0, !"[[MANGLED_TYPE1]]"}
|
||||||
// CHECK: ![[TYPE2]] = !{i64 0, !"NtCsfRpWlKdQPZn_28virtual_function_elimination1V"}
|
// CHECK: ![[TYPE2]] = !{i64 0, !"NtCs64ITQYi9761_28virtual_function_elimination1V"}
|
||||||
// CHECK: ![[VCALL_VIS2]] = !{i64 1}
|
// CHECK: ![[VCALL_VIS2]] = !{i64 1}
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
// Const generic parameter
|
// Const generic parameter
|
||||||
// gdb-command:info functions -q function_names::const_generic_fn.*
|
// gdb-command:info functions -q function_names::const_generic_fn.*
|
||||||
// gdb-check:[...]static fn function_names::const_generic_fn_bool<false>();
|
// gdb-check:[...]static fn function_names::const_generic_fn_bool<false>();
|
||||||
// gdb-check:[...]static fn function_names::const_generic_fn_non_int<{CONST#6348c650c7b26618}>();
|
// gdb-check:[...]static fn function_names::const_generic_fn_non_int<{CONST#ad91263f6d2dd96e}>();
|
||||||
// gdb-check:[...]static fn function_names::const_generic_fn_signed_int<-7>();
|
// gdb-check:[...]static fn function_names::const_generic_fn_signed_int<-7>();
|
||||||
// gdb-check:[...]static fn function_names::const_generic_fn_unsigned_int<14>();
|
// gdb-check:[...]static fn function_names::const_generic_fn_unsigned_int<14>();
|
||||||
|
|
||||||
|
@ -76,9 +76,9 @@
|
||||||
// Const generic parameter
|
// Const generic parameter
|
||||||
// cdb-command:x a!function_names::const_generic_fn*
|
// cdb-command:x a!function_names::const_generic_fn*
|
||||||
// cdb-check:[...] a!function_names::const_generic_fn_bool<false> (void)
|
// cdb-check:[...] a!function_names::const_generic_fn_bool<false> (void)
|
||||||
|
// cdb-check:[...] a!function_names::const_generic_fn_non_int<CONST$ad91263f6d2dd96e> (void)
|
||||||
// cdb-check:[...] a!function_names::const_generic_fn_unsigned_int<14> (void)
|
// cdb-check:[...] a!function_names::const_generic_fn_unsigned_int<14> (void)
|
||||||
// cdb-check:[...] a!function_names::const_generic_fn_signed_int<-7> (void)
|
// cdb-check:[...] a!function_names::const_generic_fn_signed_int<-7> (void)
|
||||||
// cdb-check:[...] a!function_names::const_generic_fn_non_int<CONST$6348c650c7b26618> (void)
|
|
||||||
|
|
||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![feature(omit_gdb_pretty_printer_section)]
|
#![feature(omit_gdb_pretty_printer_section)]
|
||||||
|
|
|
@ -23,7 +23,7 @@ fn foo(_1: T, _2: i32) -> i32 {
|
||||||
StorageLive(_3); // scope 0 at $DIR/inline_closure.rs:+1:9: +1:10
|
StorageLive(_3); // scope 0 at $DIR/inline_closure.rs:+1:9: +1:10
|
||||||
_3 = [closure@foo::<T>::{closure#0}]; // scope 0 at $DIR/inline_closure.rs:+1:13: +1:24
|
_3 = [closure@foo::<T>::{closure#0}]; // scope 0 at $DIR/inline_closure.rs:+1:13: +1:24
|
||||||
// closure
|
// closure
|
||||||
// + def_id: DefId(0:6 ~ inline_closure[92ba]::foo::{closure#0})
|
// + def_id: DefId(0:6 ~ inline_closure[8f32]::foo::{closure#0})
|
||||||
// + substs: [
|
// + substs: [
|
||||||
// T,
|
// T,
|
||||||
// i8,
|
// i8,
|
||||||
|
|
|
@ -26,7 +26,7 @@ fn foo(_1: T, _2: &i32) -> i32 {
|
||||||
StorageLive(_3); // scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:9: +1:10
|
StorageLive(_3); // scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:9: +1:10
|
||||||
_3 = [closure@foo::<T>::{closure#0}]; // scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:13: +4:6
|
_3 = [closure@foo::<T>::{closure#0}]; // scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:13: +4:6
|
||||||
// closure
|
// closure
|
||||||
// + def_id: DefId(0:6 ~ inline_closure_borrows_arg[96e9]::foo::{closure#0})
|
// + def_id: DefId(0:6 ~ inline_closure_borrows_arg[f89f]::foo::{closure#0})
|
||||||
// + substs: [
|
// + substs: [
|
||||||
// T,
|
// T,
|
||||||
// i8,
|
// i8,
|
||||||
|
|
|
@ -32,7 +32,7 @@ fn foo(_1: T, _2: i32) -> (i32, T) {
|
||||||
_5 = &_1; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
|
_5 = &_1; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
|
||||||
_3 = [closure@foo::<T>::{closure#0}] { q: move _4, t: move _5 }; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
|
_3 = [closure@foo::<T>::{closure#0}] { q: move _4, t: move _5 }; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
|
||||||
// closure
|
// closure
|
||||||
// + def_id: DefId(0:6 ~ inline_closure_captures[8bc0]::foo::{closure#0})
|
// + def_id: DefId(0:6 ~ inline_closure_captures[63a5]::foo::{closure#0})
|
||||||
// + substs: [
|
// + substs: [
|
||||||
// T,
|
// T,
|
||||||
// i8,
|
// i8,
|
||||||
|
|
|
@ -6,21 +6,18 @@
|
||||||
let _1: (); // in scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
|
let _1: (); // in scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
|
||||||
+ scope 1 (inlined <C as Call>::call) { // at $DIR/inline_cycle_generic.rs:9:5: 9:24
|
+ scope 1 (inlined <C as Call>::call) { // at $DIR/inline_cycle_generic.rs:9:5: 9:24
|
||||||
+ scope 2 (inlined <B<A> as Call>::call) { // at $DIR/inline_cycle_generic.rs:38:9: 38:31
|
+ scope 2 (inlined <B<A> as Call>::call) { // at $DIR/inline_cycle_generic.rs:38:9: 38:31
|
||||||
+ scope 3 (inlined <A as Call>::call) { // at $DIR/inline_cycle_generic.rs:31:9: 31:28
|
|
||||||
+ scope 4 (inlined <B<C> as Call>::call) { // at $DIR/inline_cycle_generic.rs:23:9: 23:31
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
bb0: {
|
bb0: {
|
||||||
StorageLive(_1); // scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
|
StorageLive(_1); // scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
|
||||||
- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
|
- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
|
||||||
+ _1 = <C as Call>::call() -> bb1; // scope 4 at $DIR/inline_cycle_generic.rs:31:9: 31:28
|
+ _1 = <A as Call>::call() -> bb1; // scope 2 at $DIR/inline_cycle_generic.rs:31:9: 31:28
|
||||||
// mir::Constant
|
// mir::Constant
|
||||||
- // + span: $DIR/inline_cycle_generic.rs:9:5: 9:22
|
- // + span: $DIR/inline_cycle_generic.rs:9:5: 9:22
|
||||||
|
- // + literal: Const { ty: fn() {<C as Call>::call}, val: Value(<ZST>) }
|
||||||
+ // + span: $DIR/inline_cycle_generic.rs:31:9: 31:26
|
+ // + span: $DIR/inline_cycle_generic.rs:31:9: 31:26
|
||||||
// + literal: Const { ty: fn() {<C as Call>::call}, val: Value(<ZST>) }
|
+ // + literal: Const { ty: fn() {<A as Call>::call}, val: Value(<ZST>) }
|
||||||
}
|
}
|
||||||
|
|
||||||
bb1: {
|
bb1: {
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
- bb1: {
|
- bb1: {
|
||||||
+ _4 = [generator@$DIR/inline_generator.rs:15:5: 15:8 (#0)]; // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
|
+ _4 = [generator@$DIR/inline_generator.rs:15:5: 15:8 (#0)]; // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
|
||||||
+ // generator
|
+ // generator
|
||||||
+ // + def_id: DefId(0:7 ~ inline_generator[ea31]::g::{closure#0})
|
+ // + def_id: DefId(0:7 ~ inline_generator[e37e]::g::{closure#0})
|
||||||
+ // + substs: [
|
+ // + substs: [
|
||||||
+ // bool,
|
+ // bool,
|
||||||
+ // i32,
|
+ // i32,
|
||||||
|
|
|
@ -21,7 +21,7 @@ fn main() -> () {
|
||||||
StorageLive(_1); // scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:9: +1:10
|
StorageLive(_1); // scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:9: +1:10
|
||||||
_1 = [closure@$DIR/issue_76997_inline_scopes_parenting.rs:5:13: 5:16]; // scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:13: +1:33
|
_1 = [closure@$DIR/issue_76997_inline_scopes_parenting.rs:5:13: 5:16]; // scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:13: +1:33
|
||||||
// closure
|
// closure
|
||||||
// + def_id: DefId(0:4 ~ issue_76997_inline_scopes_parenting[bc59]::main::{closure#0})
|
// + def_id: DefId(0:4 ~ issue_76997_inline_scopes_parenting[5cd2]::main::{closure#0})
|
||||||
// + substs: [
|
// + substs: [
|
||||||
// i8,
|
// i8,
|
||||||
// extern "rust-call" fn(((),)),
|
// extern "rust-call" fn(((),)),
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// MIR for `main` after built
|
// MIR for `main` after built
|
||||||
|
|
||||||
| User Type Annotations
|
| User Type Annotations
|
||||||
| 0: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[8f58]::function_with_bytes), UserSubsts { substs: [Const { ty: &'static [u8; 4], kind: Value(Branch([Leaf(0x41), Leaf(0x41), Leaf(0x41), Leaf(0x41)])) }], user_self_ty: None }), max_universe: U0, variables: [] }, span: $DIR/issue_99325.rs:10:16: 10:46, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">}
|
| 0: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[22bb]::function_with_bytes), UserSubsts { substs: [Const { ty: &'static [u8; 4], kind: Value(Branch([Leaf(0x41), Leaf(0x41), Leaf(0x41), Leaf(0x41)])) }], user_self_ty: None }), max_universe: U0, variables: [] }, span: $DIR/issue_99325.rs:10:16: 10:46, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">}
|
||||||
| 1: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[8f58]::function_with_bytes), UserSubsts { substs: [Const { ty: &'static [u8; 4], kind: Unevaluated(UnevaluatedConst { def: WithOptConstParam { did: DefId(0:8 ~ issue_99325[8f58]::main::{constant#1}), const_param_did: Some(DefId(0:4 ~ issue_99325[8f58]::function_with_bytes::BYTES)) }, substs: [] }) }], user_self_ty: None }), max_universe: U0, variables: [] }, span: $DIR/issue_99325.rs:11:16: 11:68, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">}
|
| 1: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[22bb]::function_with_bytes), UserSubsts { substs: [Const { ty: &'static [u8; 4], kind: Unevaluated(UnevaluatedConst { def: WithOptConstParam { did: DefId(0:8 ~ issue_99325[22bb]::main::{constant#1}), const_param_did: Some(DefId(0:4 ~ issue_99325[22bb]::function_with_bytes::BYTES)) }, substs: [] }) }], user_self_ty: None }), max_universe: U0, variables: [] }, span: $DIR/issue_99325.rs:11:16: 11:68, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">}
|
||||||
|
|
|
|
||||||
fn main() -> () {
|
fn main() -> () {
|
||||||
let mut _0: (); // return place in scope 0 at $DIR/issue_99325.rs:+0:15: +0:15
|
let mut _0: (); // return place in scope 0 at $DIR/issue_99325.rs:+0:15: +0:15
|
||||||
|
|
|
@ -108,7 +108,7 @@ fn main() -> () {
|
||||||
StorageLive(_14); // scope 1 at $DIR/retag.rs:+11:31: +14:6
|
StorageLive(_14); // scope 1 at $DIR/retag.rs:+11:31: +14:6
|
||||||
_14 = [closure@main::{closure#0}]; // scope 1 at $DIR/retag.rs:+11:31: +14:6
|
_14 = [closure@main::{closure#0}]; // scope 1 at $DIR/retag.rs:+11:31: +14:6
|
||||||
// closure
|
// closure
|
||||||
// + def_id: DefId(0:14 ~ retag[4622]::main::{closure#0})
|
// + def_id: DefId(0:14 ~ retag[7654]::main::{closure#0})
|
||||||
// + substs: [
|
// + substs: [
|
||||||
// i8,
|
// i8,
|
||||||
// for<'a> extern "rust-call" fn((&'a i32,)) -> &'a i32,
|
// for<'a> extern "rust-call" fn((&'a i32,)) -> &'a i32,
|
||||||
|
|
|
@ -33,21 +33,6 @@ help: to link to the associated type, prefix with `type@`
|
||||||
LL | /// [`type@Self::IDENT2`]
|
LL | /// [`type@Self::IDENT2`]
|
||||||
| +++++
|
| +++++
|
||||||
|
|
||||||
error: `Self::IDENT2` is both an associated constant and an associated type
|
|
||||||
--> $DIR/issue-108653-associated-items.rs:30:7
|
|
||||||
|
|
|
||||||
LL | /// [`Self::IDENT2`]
|
|
||||||
| ^^^^^^^^^^^^ ambiguous link
|
|
||||||
|
|
|
||||||
help: to link to the associated constant, prefix with `const@`
|
|
||||||
|
|
|
||||||
LL | /// [`const@Self::IDENT2`]
|
|
||||||
| ++++++
|
|
||||||
help: to link to the associated type, prefix with `type@`
|
|
||||||
|
|
|
||||||
LL | /// [`type@Self::IDENT2`]
|
|
||||||
| +++++
|
|
||||||
|
|
||||||
error: `Self::IDENT` is both an associated function and a variant
|
error: `Self::IDENT` is both an associated function and a variant
|
||||||
--> $DIR/issue-108653-associated-items.rs:16:7
|
--> $DIR/issue-108653-associated-items.rs:16:7
|
||||||
|
|
|
|
||||||
|
@ -63,5 +48,20 @@ help: to link to the variant, prefix with `type@`
|
||||||
LL | /// [`type@Self::IDENT`]
|
LL | /// [`type@Self::IDENT`]
|
||||||
| +++++
|
| +++++
|
||||||
|
|
||||||
|
error: `Self::IDENT2` is both an associated constant and an associated type
|
||||||
|
--> $DIR/issue-108653-associated-items.rs:30:7
|
||||||
|
|
|
||||||
|
LL | /// [`Self::IDENT2`]
|
||||||
|
| ^^^^^^^^^^^^ ambiguous link
|
||||||
|
|
|
||||||
|
help: to link to the associated constant, prefix with `const@`
|
||||||
|
|
|
||||||
|
LL | /// [`const@Self::IDENT2`]
|
||||||
|
| ++++++
|
||||||
|
help: to link to the associated type, prefix with `type@`
|
||||||
|
|
|
||||||
|
LL | /// [`type@Self::IDENT2`]
|
||||||
|
| +++++
|
||||||
|
|
||||||
error: aborting due to 4 previous errors
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
|
|
@ -21,14 +21,14 @@ impl Foo<u32> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Bar for Foo<T> {
|
impl<T> Bar for Foo<T> {
|
||||||
// @has - '//*[@id="associatedtype.Item"]//h4[@class="code-header"]' 'type Item = T'
|
// @has - '//*[@id="associatedtype.Item-1"]//h4[@class="code-header"]' 'type Item = T'
|
||||||
type Item=T;
|
type Item=T;
|
||||||
|
|
||||||
// @has - '//*[@id="method.quux"]//h4[@class="code-header"]' 'fn quux(self)'
|
// @has - '//*[@id="method.quux"]//h4[@class="code-header"]' 'fn quux(self)'
|
||||||
fn quux(self) {}
|
fn quux(self) {}
|
||||||
}
|
}
|
||||||
impl<'a, T> Bar for &'a Foo<T> {
|
impl<'a, T> Bar for &'a Foo<T> {
|
||||||
// @has - '//*[@id="associatedtype.Item-1"]//h4[@class="code-header"]' "type Item = &'a T"
|
// @has - '//*[@id="associatedtype.Item"]//h4[@class="code-header"]' "type Item = &'a T"
|
||||||
type Item=&'a T;
|
type Item=&'a T;
|
||||||
|
|
||||||
// @has - '//*[@id="method.quux-1"]//h4[@class="code-header"]' 'fn quux(self)'
|
// @has - '//*[@id="method.quux-1"]//h4[@class="code-header"]' 'fn quux(self)'
|
||||||
|
|
|
@ -2,13 +2,13 @@ error[E0080]: could not evaluate static initializer
|
||||||
--> $DIR/tls.rs:11:25
|
--> $DIR/tls.rs:11:25
|
||||||
|
|
|
|
||||||
LL | unsafe { let _val = A; }
|
LL | unsafe { let _val = A; }
|
||||||
| ^ cannot access thread local static (DefId(0:4 ~ tls[78b0]::A))
|
| ^ cannot access thread local static (DefId(0:4 ~ tls[ca29]::A))
|
||||||
|
|
||||||
error[E0080]: could not evaluate static initializer
|
error[E0080]: could not evaluate static initializer
|
||||||
--> $DIR/tls.rs:18:26
|
--> $DIR/tls.rs:18:26
|
||||||
|
|
|
|
||||||
LL | unsafe { let _val = &A; }
|
LL | unsafe { let _val = &A; }
|
||||||
| ^ cannot access thread local static (DefId(0:4 ~ tls[78b0]::A))
|
| ^ cannot access thread local static (DefId(0:4 ~ tls[ca29]::A))
|
||||||
|
|
||||||
warning: skipping const checks
|
warning: skipping const checks
|
||||||
|
|
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ note: generator is not `Send` as this value is used across a yield
|
||||||
--> $DIR/generator-print-verbose-1.rs:38:9
|
--> $DIR/generator-print-verbose-1.rs:38:9
|
||||||
|
|
|
|
||||||
LL | let _non_send_gen = make_non_send_generator();
|
LL | let _non_send_gen = make_non_send_generator();
|
||||||
| ------------- has type `Opaque(DefId(0:34 ~ generator_print_verbose_1[749a]::make_non_send_generator::{opaque#0}), [])` which is not `Send`
|
| ------------- has type `Opaque(DefId(0:34 ~ generator_print_verbose_1[7d1d]::make_non_send_generator::{opaque#0}), [])` which is not `Send`
|
||||||
LL | yield;
|
LL | yield;
|
||||||
| ^^^^^ yield occurs here, with `_non_send_gen` maybe used later
|
| ^^^^^ yield occurs here, with `_non_send_gen` maybe used later
|
||||||
LL | };
|
LL | };
|
||||||
|
@ -37,17 +37,17 @@ note: required because it's used within this generator
|
||||||
|
|
|
|
||||||
LL | || {
|
LL | || {
|
||||||
| ^^
|
| ^^
|
||||||
note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[749a]::make_gen2::{opaque#0}), [Arc<RefCell<i32>>])`
|
note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[7d1d]::make_gen2::{opaque#0}), [Arc<RefCell<i32>>])`
|
||||||
--> $DIR/generator-print-verbose-1.rs:44:30
|
--> $DIR/generator-print-verbose-1.rs:44:30
|
||||||
|
|
|
|
||||||
LL | pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> {
|
LL | pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
note: required because it appears within the type `Opaque(DefId(0:36 ~ generator_print_verbose_1[749a]::make_non_send_generator2::{opaque#0}), [])`
|
note: required because it appears within the type `Opaque(DefId(0:36 ~ generator_print_verbose_1[7d1d]::make_non_send_generator2::{opaque#0}), [])`
|
||||||
--> $DIR/generator-print-verbose-1.rs:50:34
|
--> $DIR/generator-print-verbose-1.rs:50:34
|
||||||
|
|
|
|
||||||
LL | fn make_non_send_generator2() -> impl Generator<Return = Arc<RefCell<i32>>> {
|
LL | fn make_non_send_generator2() -> impl Generator<Return = Arc<RefCell<i32>>> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
= note: required because it captures the following types: `Opaque(DefId(0:36 ~ generator_print_verbose_1[749a]::make_non_send_generator2::{opaque#0}), [])`, `()`
|
= note: required because it captures the following types: `Opaque(DefId(0:36 ~ generator_print_verbose_1[7d1d]::make_non_send_generator2::{opaque#0}), [])`, `()`
|
||||||
note: required because it's used within this generator
|
note: required because it's used within this generator
|
||||||
--> $DIR/generator-print-verbose-1.rs:55:20
|
--> $DIR/generator-print-verbose-1.rs:55:20
|
||||||
|
|
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ note: generator is not `Send` as this value is used across a yield
|
||||||
--> $DIR/generator-print-verbose-1.rs:38:9
|
--> $DIR/generator-print-verbose-1.rs:38:9
|
||||||
|
|
|
|
||||||
LL | let _non_send_gen = make_non_send_generator();
|
LL | let _non_send_gen = make_non_send_generator();
|
||||||
| ------------- has type `Opaque(DefId(0:34 ~ generator_print_verbose_1[749a]::make_non_send_generator::{opaque#0}), [])` which is not `Send`
|
| ------------- has type `Opaque(DefId(0:34 ~ generator_print_verbose_1[7d1d]::make_non_send_generator::{opaque#0}), [])` which is not `Send`
|
||||||
LL | yield;
|
LL | yield;
|
||||||
| ^^^^^ yield occurs here, with `_non_send_gen` maybe used later
|
| ^^^^^ yield occurs here, with `_non_send_gen` maybe used later
|
||||||
note: required by a bound in `require_send`
|
note: required by a bound in `require_send`
|
||||||
|
@ -33,17 +33,17 @@ note: required because it's used within this generator
|
||||||
|
|
|
|
||||||
LL | || {
|
LL | || {
|
||||||
| ^^
|
| ^^
|
||||||
note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[749a]::make_gen2::{opaque#0}), [Arc<RefCell<i32>>])`
|
note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[7d1d]::make_gen2::{opaque#0}), [Arc<RefCell<i32>>])`
|
||||||
--> $DIR/generator-print-verbose-1.rs:44:30
|
--> $DIR/generator-print-verbose-1.rs:44:30
|
||||||
|
|
|
|
||||||
LL | pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> {
|
LL | pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
note: required because it appears within the type `Opaque(DefId(0:36 ~ generator_print_verbose_1[749a]::make_non_send_generator2::{opaque#0}), [])`
|
note: required because it appears within the type `Opaque(DefId(0:36 ~ generator_print_verbose_1[7d1d]::make_non_send_generator2::{opaque#0}), [])`
|
||||||
--> $DIR/generator-print-verbose-1.rs:50:34
|
--> $DIR/generator-print-verbose-1.rs:50:34
|
||||||
|
|
|
|
||||||
LL | fn make_non_send_generator2() -> impl Generator<Return = Arc<RefCell<i32>>> {
|
LL | fn make_non_send_generator2() -> impl Generator<Return = Arc<RefCell<i32>>> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
= note: required because it captures the following types: `Opaque(DefId(0:36 ~ generator_print_verbose_1[749a]::make_non_send_generator2::{opaque#0}), [])`
|
= note: required because it captures the following types: `Opaque(DefId(0:36 ~ generator_print_verbose_1[7d1d]::make_non_send_generator2::{opaque#0}), [])`
|
||||||
note: required because it's used within this generator
|
note: required because it's used within this generator
|
||||||
--> $DIR/generator-print-verbose-1.rs:55:20
|
--> $DIR/generator-print-verbose-1.rs:55:20
|
||||||
|
|
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ note: generator is not `Send` as this value is used across a yield
|
||||||
--> $DIR/generator-print-verbose-1.rs:38:9
|
--> $DIR/generator-print-verbose-1.rs:38:9
|
||||||
|
|
|
|
||||||
LL | let _non_send_gen = make_non_send_generator();
|
LL | let _non_send_gen = make_non_send_generator();
|
||||||
| ------------- has type `Opaque(DefId(0:34 ~ generator_print_verbose_1[749a]::make_non_send_generator::{opaque#0}), [])` which is not `Send`
|
| ------------- has type `Opaque(DefId(0:34 ~ generator_print_verbose_1[7d1d]::make_non_send_generator::{opaque#0}), [])` which is not `Send`
|
||||||
LL | yield;
|
LL | yield;
|
||||||
| ^^^^^ yield occurs here, with `_non_send_gen` maybe used later
|
| ^^^^^ yield occurs here, with `_non_send_gen` maybe used later
|
||||||
LL | };
|
LL | };
|
||||||
|
@ -37,17 +37,17 @@ note: required because it's used within this generator
|
||||||
|
|
|
|
||||||
LL | || {
|
LL | || {
|
||||||
| ^^
|
| ^^
|
||||||
note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[749a]::make_gen2::{opaque#0}), [Arc<RefCell<i32>>])`
|
note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[7d1d]::make_gen2::{opaque#0}), [Arc<RefCell<i32>>])`
|
||||||
--> $DIR/generator-print-verbose-1.rs:44:30
|
--> $DIR/generator-print-verbose-1.rs:44:30
|
||||||
|
|
|
|
||||||
LL | pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> {
|
LL | pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
note: required because it appears within the type `Opaque(DefId(0:36 ~ generator_print_verbose_1[749a]::make_non_send_generator2::{opaque#0}), [])`
|
note: required because it appears within the type `Opaque(DefId(0:36 ~ generator_print_verbose_1[7d1d]::make_non_send_generator2::{opaque#0}), [])`
|
||||||
--> $DIR/generator-print-verbose-1.rs:50:34
|
--> $DIR/generator-print-verbose-1.rs:50:34
|
||||||
|
|
|
|
||||||
LL | fn make_non_send_generator2() -> impl Generator<Return = Arc<RefCell<i32>>> {
|
LL | fn make_non_send_generator2() -> impl Generator<Return = Arc<RefCell<i32>>> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
= note: required because it captures the following types: `Opaque(DefId(0:36 ~ generator_print_verbose_1[749a]::make_non_send_generator2::{opaque#0}), [])`, `()`
|
= note: required because it captures the following types: `Opaque(DefId(0:36 ~ generator_print_verbose_1[7d1d]::make_non_send_generator2::{opaque#0}), [])`, `()`
|
||||||
note: required because it's used within this generator
|
note: required because it's used within this generator
|
||||||
--> $DIR/generator-print-verbose-1.rs:55:20
|
--> $DIR/generator-print-verbose-1.rs:55:20
|
||||||
|
|
|
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
error[E0700]: hidden type for `Opaque(DefId(0:13 ~ impl_trait_captures[1afc]::foo::{opaque#0}), [ReEarlyBound(0, 'a), T, ReEarlyBound(0, 'a)])` captures lifetime that does not appear in bounds
|
error[E0700]: hidden type for `Opaque(DefId(0:13 ~ impl_trait_captures[aeb9]::foo::{opaque#0}), [ReEarlyBound(0, 'a), T, ReEarlyBound(0, 'a)])` captures lifetime that does not appear in bounds
|
||||||
--> $DIR/impl-trait-captures.rs:11:5
|
--> $DIR/impl-trait-captures.rs:11:5
|
||||||
|
|
|
|
||||||
LL | fn foo<'a, T>(x: &T) -> impl Foo<'a> {
|
LL | fn foo<'a, T>(x: &T) -> impl Foo<'a> {
|
||||||
| -- ------------ opaque type defined here
|
| -- ------------ opaque type defined here
|
||||||
| |
|
| |
|
||||||
| hidden type `&ReFree(DefId(0:8 ~ impl_trait_captures[1afc]::foo), BrNamed(DefId(0:12 ~ impl_trait_captures[1afc]::foo::'_), '_)) T` captures the anonymous lifetime defined here
|
| hidden type `&ReFree(DefId(0:8 ~ impl_trait_captures[aeb9]::foo), BrNamed(DefId(0:12 ~ impl_trait_captures[aeb9]::foo::'_), '_)) T` captures the anonymous lifetime defined here
|
||||||
LL | x
|
LL | x
|
||||||
| ^
|
| ^
|
||||||
|
|
|
|
||||||
help: to declare that `Opaque(DefId(0:13 ~ impl_trait_captures[1afc]::foo::{opaque#0}), [ReEarlyBound(0, 'a), T, ReEarlyBound(2, 'a)])` captures `ReFree(DefId(0:8 ~ impl_trait_captures[1afc]::foo), BrNamed(DefId(0:12 ~ impl_trait_captures[1afc]::foo::'_), '_))`, you can add an explicit `ReFree(DefId(0:8 ~ impl_trait_captures[1afc]::foo), BrNamed(DefId(0:12 ~ impl_trait_captures[1afc]::foo::'_), '_))` lifetime bound
|
help: to declare that `Opaque(DefId(0:13 ~ impl_trait_captures[aeb9]::foo::{opaque#0}), [ReEarlyBound(0, 'a), T, ReEarlyBound(2, 'a)])` captures `ReFree(DefId(0:8 ~ impl_trait_captures[aeb9]::foo), BrNamed(DefId(0:12 ~ impl_trait_captures[aeb9]::foo::'_), '_))`, you can add an explicit `ReFree(DefId(0:8 ~ impl_trait_captures[aeb9]::foo), BrNamed(DefId(0:12 ~ impl_trait_captures[aeb9]::foo::'_), '_))` lifetime bound
|
||||||
|
|
|
|
||||||
LL | fn foo<'a, T>(x: &T) -> impl Foo<'a> + ReFree(DefId(0:8 ~ impl_trait_captures[1afc]::foo), BrNamed(DefId(0:12 ~ impl_trait_captures[1afc]::foo::'_), '_)) {
|
LL | fn foo<'a, T>(x: &T) -> impl Foo<'a> + ReFree(DefId(0:8 ~ impl_trait_captures[aeb9]::foo), BrNamed(DefId(0:12 ~ impl_trait_captures[aeb9]::foo::'_), '_)) {
|
||||||
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
error: symbol-name(_ZN5basic4main17he9f658e438f1cac0E)
|
error: symbol-name(_ZN5basic4main17h6fc0c8d27b1a289fE)
|
||||||
--> $DIR/basic.rs:8:1
|
--> $DIR/basic.rs:8:1
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(basic::main::he9f658e438f1cac0)
|
error: demangling(basic::main::h6fc0c8d27b1a289f)
|
||||||
--> $DIR/basic.rs:8:1
|
--> $DIR/basic.rs:8:1
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
|
|
@ -4,7 +4,7 @@ error: symbol-name(_RNvCsCRATE_HASH_5basic4main)
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(basic[b751b4a00e2291d9]::main)
|
error: demangling(basic[a90d658f4748b9d1]::main)
|
||||||
--> $DIR/basic.rs:8:1
|
--> $DIR/basic.rs:8:1
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
|
|
@ -4,7 +4,7 @@ error: symbol-name(_RMCsCRATE_HASH_13foreign_typesINtB<REF>_5CheckNvB<REF>_11For
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<foreign_types[49eeeb51f120b431]::Check<foreign_types[49eeeb51f120b431]::ForeignType>>)
|
error: demangling(<foreign_types[fcdd87e190ad88e3]::Check<foreign_types[fcdd87e190ad88e3]::ForeignType>>)
|
||||||
--> $DIR/foreign-types.rs:13:1
|
--> $DIR/foreign-types.rs:13:1
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
|
|
@ -4,7 +4,7 @@ error: symbol-name(_RNvMNtCsCRATE_HASH_5impl13fooNtB<REF>_3Foo3bar)
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<impl1[2c09c4f1c7c8e90c]::foo::Foo>::bar)
|
error: demangling(<impl1[d5591eb39db23cbb]::foo::Foo>::bar)
|
||||||
--> $DIR/impl1.rs:14:9
|
--> $DIR/impl1.rs:14:9
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
@ -28,7 +28,7 @@ error: symbol-name(_RNvMNtCsCRATE_HASH_5impl13barNtNtB<REF>_3foo3Foo3baz)
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<impl1[2c09c4f1c7c8e90c]::foo::Foo>::baz)
|
error: demangling(<impl1[d5591eb39db23cbb]::foo::Foo>::baz)
|
||||||
--> $DIR/impl1.rs:32:9
|
--> $DIR/impl1.rs:32:9
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
@ -52,7 +52,7 @@ error: symbol-name(_RNvXNCNvCsCRATE_HASH_5impl14mains_0ARDNtB<REF>_3Foop5AssocFG
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<[&dyn impl1[2c09c4f1c7c8e90c]::Foo<Assoc = for<'a> extern "C" fn(&'a u8, ...)> + impl1[2c09c4f1c7c8e90c]::AutoTrait; 3usize] as impl1[2c09c4f1c7c8e90c]::main::{closure#1}::Bar>::method)
|
error: demangling(<[&dyn impl1[d5591eb39db23cbb]::Foo<Assoc = for<'a> extern "C" fn(&'a u8, ...)> + impl1[d5591eb39db23cbb]::AutoTrait; 3usize] as impl1[d5591eb39db23cbb]::main::{closure#1}::Bar>::method)
|
||||||
--> $DIR/impl1.rs:62:13
|
--> $DIR/impl1.rs:62:13
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
error: symbol-name(_ZN11issue_609253foo37Foo$LT$issue_60925..llv$u6d$..Foo$GT$3foo17h13209029be24b923E)
|
error: symbol-name(_ZN11issue_609253foo37Foo$LT$issue_60925..llv$u6d$..Foo$GT$3foo17hab58a402db4ebf3aE)
|
||||||
--> $DIR/issue-60925.rs:21:9
|
--> $DIR/issue-60925.rs:21:9
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(issue_60925::foo::Foo<issue_60925::llvm::Foo>::foo::h13209029be24b923)
|
error: demangling(issue_60925::foo::Foo<issue_60925::llvm::Foo>::foo::hab58a402db4ebf3a)
|
||||||
--> $DIR/issue-60925.rs:21:9
|
--> $DIR/issue-60925.rs:21:9
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
|
|
@ -4,7 +4,7 @@ error: symbol-name(_RNvMNtCsCRATE_HASH_11issue_609253fooINtB<REF>_3FooNtNtB<REF>
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<issue_60925[775bc577f14ef671]::foo::Foo<issue_60925[775bc577f14ef671]::llvm::Foo>>::foo)
|
error: demangling(<issue_60925[294a1bee3c0c9a2f]::foo::Foo<issue_60925[294a1bee3c0c9a2f]::llvm::Foo>>::foo)
|
||||||
--> $DIR/issue-60925.rs:21:9
|
--> $DIR/issue-60925.rs:21:9
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
|
|
@ -4,7 +4,7 @@ error: symbol-name(_RNvXINICsCRATE_HASH_11issue_75326s_0pppEINtB<REF>_3FooppENtB
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<issue_75326[e8e253d78520f2a2]::Foo<_, _> as issue_75326[e8e253d78520f2a2]::Iterator2>::next)
|
error: demangling(<issue_75326[189ebc60e18860d7]::Foo<_, _> as issue_75326[189ebc60e18860d7]::Iterator2>::next)
|
||||||
--> $DIR/issue-75326.rs:41:5
|
--> $DIR/issue-75326.rs:41:5
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
|
|
@ -4,7 +4,7 @@ error: symbol-name(_RNvXCsCRATE_HASH_13trait_objectsRDG_INtNtNtCsCRATE_HASH_4cor
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<&dyn for<'a> core[HASH]::ops::function::FnMut<(&'a u8,), Output = ()> as trait_objects[7260a56bea9f357b]::Bar>::method)
|
error: demangling(<&dyn for<'a> core[HASH]::ops::function::FnMut<(&'a u8,), Output = ()> as trait_objects[3c073c57f94bedc2]::Bar>::method)
|
||||||
--> $DIR/trait-objects.rs:15:5
|
--> $DIR/trait-objects.rs:15:5
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
@ -22,7 +22,7 @@ error: symbol-name(_RNvXs_CsCRATE_HASH_13trait_objectsRDG_INtNtNtCsCRATE_HASH_4c
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<&dyn for<'a> core[HASH]::ops::function::FnMut<(&'a u8,), Output = ()> + core[HASH]::marker::Send as trait_objects[7260a56bea9f357b]::Foo>::method)
|
error: demangling(<&dyn for<'a> core[HASH]::ops::function::FnMut<(&'a u8,), Output = ()> + core[HASH]::marker::Send as trait_objects[3c073c57f94bedc2]::Foo>::method)
|
||||||
--> $DIR/trait-objects.rs:27:5
|
--> $DIR/trait-objects.rs:27:5
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
@ -40,7 +40,7 @@ error: symbol-name(_RNvXs0_CsCRATE_HASH_13trait_objectsRDG_INtNtNtCsCRATE_HASH_4
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: demangling(<&dyn for<'a> core[HASH]::ops::function::FnMut<(&'a u8,), Output = ()> + core[HASH]::marker::Send as trait_objects[7260a56bea9f357b]::Baz>::method)
|
error: demangling(<&dyn for<'a> core[HASH]::ops::function::FnMut<(&'a u8,), Output = ()> + core[HASH]::marker::Send as trait_objects[3c073c57f94bedc2]::Baz>::method)
|
||||||
--> $DIR/trait-objects.rs:39:5
|
--> $DIR/trait-objects.rs:39:5
|
||||||
|
|
|
|
||||||
LL | #[rustc_symbol_name]
|
LL | #[rustc_symbol_name]
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DefId(0:3 ~ thir_flat[45a6]::main):
|
DefId(0:3 ~ thir_flat[7b97]::main):
|
||||||
Thir {
|
Thir {
|
||||||
body_type: Fn(
|
body_type: Fn(
|
||||||
([]; c_variadic: false)->(),
|
([]; c_variadic: false)->(),
|
||||||
|
@ -30,7 +30,7 @@ Thir {
|
||||||
kind: Scope {
|
kind: Scope {
|
||||||
region_scope: Node(2),
|
region_scope: Node(2),
|
||||||
lint_level: Explicit(
|
lint_level: Explicit(
|
||||||
HirId(DefId(0:3 ~ thir_flat[45a6]::main).2),
|
HirId(DefId(0:3 ~ thir_flat[7b97]::main).2),
|
||||||
),
|
),
|
||||||
value: e0,
|
value: e0,
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
DefId(0:16 ~ thir_tree_match[3c9a]::has_match):
|
DefId(0:16 ~ thir_tree_match[fcf8]::has_match):
|
||||||
params: [
|
params: [
|
||||||
Param {
|
Param {
|
||||||
ty: Foo
|
ty: Foo
|
||||||
ty_span: Some($DIR/thir-tree-match.rs:15:19: 15:22 (#0))
|
ty_span: Some($DIR/thir-tree-match.rs:15:19: 15:22 (#0))
|
||||||
self_kind: None
|
self_kind: None
|
||||||
hir_id: Some(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).1))
|
hir_id: Some(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).1))
|
||||||
param: Some(
|
param: Some(
|
||||||
Pat: {
|
Pat: {
|
||||||
ty: Foo
|
ty: Foo
|
||||||
|
@ -14,7 +14,7 @@ params: [
|
||||||
mutability: Not
|
mutability: Not
|
||||||
name: "foo"
|
name: "foo"
|
||||||
mode: ByValue
|
mode: ByValue
|
||||||
var: LocalVarId(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).2))
|
var: LocalVarId(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).2))
|
||||||
ty: Foo
|
ty: Foo
|
||||||
is_primary: true
|
is_primary: true
|
||||||
subpattern: None
|
subpattern: None
|
||||||
|
@ -41,7 +41,7 @@ body:
|
||||||
kind:
|
kind:
|
||||||
Scope {
|
Scope {
|
||||||
region_scope: Node(26)
|
region_scope: Node(26)
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).26))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).26))
|
||||||
value:
|
value:
|
||||||
Expr {
|
Expr {
|
||||||
ty: bool
|
ty: bool
|
||||||
|
@ -63,7 +63,7 @@ body:
|
||||||
kind:
|
kind:
|
||||||
Scope {
|
Scope {
|
||||||
region_scope: Node(3)
|
region_scope: Node(3)
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).3))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).3))
|
||||||
value:
|
value:
|
||||||
Expr {
|
Expr {
|
||||||
ty: bool
|
ty: bool
|
||||||
|
@ -79,7 +79,7 @@ body:
|
||||||
kind:
|
kind:
|
||||||
Scope {
|
Scope {
|
||||||
region_scope: Node(4)
|
region_scope: Node(4)
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).4))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).4))
|
||||||
value:
|
value:
|
||||||
Expr {
|
Expr {
|
||||||
ty: Foo
|
ty: Foo
|
||||||
|
@ -87,7 +87,7 @@ body:
|
||||||
span: $DIR/thir-tree-match.rs:16:11: 16:14 (#0)
|
span: $DIR/thir-tree-match.rs:16:11: 16:14 (#0)
|
||||||
kind:
|
kind:
|
||||||
VarRef {
|
VarRef {
|
||||||
id: LocalVarId(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).2))
|
id: LocalVarId(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).2))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,10 +102,10 @@ body:
|
||||||
Variant {
|
Variant {
|
||||||
adt_def:
|
adt_def:
|
||||||
AdtDef {
|
AdtDef {
|
||||||
did: DefId(0:10 ~ thir_tree_match[3c9a]::Foo)
|
did: DefId(0:10 ~ thir_tree_match[fcf8]::Foo)
|
||||||
variants: [VariantDef { def_id: DefId(0:11 ~ thir_tree_match[3c9a]::Foo::FooOne), ctor: Some((Fn, DefId(0:12 ~ thir_tree_match[3c9a]::Foo::FooOne::{constructor#0}))), name: "FooOne", discr: Relative(0), fields: [FieldDef { did: DefId(0:13 ~ thir_tree_match[3c9a]::Foo::FooOne::0), name: "0", vis: Restricted(DefId(0:0 ~ thir_tree_match[3c9a])) }], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:14 ~ thir_tree_match[3c9a]::Foo::FooTwo), ctor: Some((Const, DefId(0:15 ~ thir_tree_match[3c9a]::Foo::FooTwo::{constructor#0}))), name: "FooTwo", discr: Relative(1), fields: [], flags: NO_VARIANT_FLAGS }]
|
variants: [VariantDef { def_id: DefId(0:11 ~ thir_tree_match[fcf8]::Foo::FooOne), ctor: Some((Fn, DefId(0:12 ~ thir_tree_match[fcf8]::Foo::FooOne::{constructor#0}))), name: "FooOne", discr: Relative(0), fields: [FieldDef { did: DefId(0:13 ~ thir_tree_match[fcf8]::Foo::FooOne::0), name: "0", vis: Restricted(DefId(0:0 ~ thir_tree_match[fcf8])) }], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:14 ~ thir_tree_match[fcf8]::Foo::FooTwo), ctor: Some((Const, DefId(0:15 ~ thir_tree_match[fcf8]::Foo::FooTwo::{constructor#0}))), name: "FooTwo", discr: Relative(1), fields: [], flags: NO_VARIANT_FLAGS }]
|
||||||
flags: IS_ENUM
|
flags: IS_ENUM
|
||||||
repr: ReprOptions { int: None, align: None, pack: None, flags: (empty), field_shuffle_seed: 11573694388057581 }
|
repr: ReprOptions { int: None, align: None, pack: None, flags: (empty), field_shuffle_seed: 3477539199540094892 }
|
||||||
substs: []
|
substs: []
|
||||||
variant_index: 0
|
variant_index: 0
|
||||||
subpatterns: [
|
subpatterns: [
|
||||||
|
@ -116,10 +116,10 @@ body:
|
||||||
Variant {
|
Variant {
|
||||||
adt_def:
|
adt_def:
|
||||||
AdtDef {
|
AdtDef {
|
||||||
did: DefId(0:3 ~ thir_tree_match[3c9a]::Bar)
|
did: DefId(0:3 ~ thir_tree_match[fcf8]::Bar)
|
||||||
variants: [VariantDef { def_id: DefId(0:4 ~ thir_tree_match[3c9a]::Bar::First), ctor: Some((Const, DefId(0:5 ~ thir_tree_match[3c9a]::Bar::First::{constructor#0}))), name: "First", discr: Relative(0), fields: [], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:6 ~ thir_tree_match[3c9a]::Bar::Second), ctor: Some((Const, DefId(0:7 ~ thir_tree_match[3c9a]::Bar::Second::{constructor#0}))), name: "Second", discr: Relative(1), fields: [], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:8 ~ thir_tree_match[3c9a]::Bar::Third), ctor: Some((Const, DefId(0:9 ~ thir_tree_match[3c9a]::Bar::Third::{constructor#0}))), name: "Third", discr: Relative(2), fields: [], flags: NO_VARIANT_FLAGS }]
|
variants: [VariantDef { def_id: DefId(0:4 ~ thir_tree_match[fcf8]::Bar::First), ctor: Some((Const, DefId(0:5 ~ thir_tree_match[fcf8]::Bar::First::{constructor#0}))), name: "First", discr: Relative(0), fields: [], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:6 ~ thir_tree_match[fcf8]::Bar::Second), ctor: Some((Const, DefId(0:7 ~ thir_tree_match[fcf8]::Bar::Second::{constructor#0}))), name: "Second", discr: Relative(1), fields: [], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:8 ~ thir_tree_match[fcf8]::Bar::Third), ctor: Some((Const, DefId(0:9 ~ thir_tree_match[fcf8]::Bar::Third::{constructor#0}))), name: "Third", discr: Relative(2), fields: [], flags: NO_VARIANT_FLAGS }]
|
||||||
flags: IS_ENUM
|
flags: IS_ENUM
|
||||||
repr: ReprOptions { int: None, align: None, pack: None, flags: (empty), field_shuffle_seed: 3125160937860410723 }
|
repr: ReprOptions { int: None, align: None, pack: None, flags: (empty), field_shuffle_seed: 10333377570083945360 }
|
||||||
substs: []
|
substs: []
|
||||||
variant_index: 0
|
variant_index: 0
|
||||||
subpatterns: []
|
subpatterns: []
|
||||||
|
@ -148,7 +148,7 @@ body:
|
||||||
kind:
|
kind:
|
||||||
Scope {
|
Scope {
|
||||||
region_scope: Node(13)
|
region_scope: Node(13)
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).13))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).13))
|
||||||
value:
|
value:
|
||||||
Expr {
|
Expr {
|
||||||
ty: bool
|
ty: bool
|
||||||
|
@ -162,7 +162,7 @@ body:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).12))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).12))
|
||||||
scope: Node(12)
|
scope: Node(12)
|
||||||
span: $DIR/thir-tree-match.rs:17:9: 17:40 (#0)
|
span: $DIR/thir-tree-match.rs:17:9: 17:40 (#0)
|
||||||
}
|
}
|
||||||
|
@ -175,10 +175,10 @@ body:
|
||||||
Variant {
|
Variant {
|
||||||
adt_def:
|
adt_def:
|
||||||
AdtDef {
|
AdtDef {
|
||||||
did: DefId(0:10 ~ thir_tree_match[3c9a]::Foo)
|
did: DefId(0:10 ~ thir_tree_match[fcf8]::Foo)
|
||||||
variants: [VariantDef { def_id: DefId(0:11 ~ thir_tree_match[3c9a]::Foo::FooOne), ctor: Some((Fn, DefId(0:12 ~ thir_tree_match[3c9a]::Foo::FooOne::{constructor#0}))), name: "FooOne", discr: Relative(0), fields: [FieldDef { did: DefId(0:13 ~ thir_tree_match[3c9a]::Foo::FooOne::0), name: "0", vis: Restricted(DefId(0:0 ~ thir_tree_match[3c9a])) }], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:14 ~ thir_tree_match[3c9a]::Foo::FooTwo), ctor: Some((Const, DefId(0:15 ~ thir_tree_match[3c9a]::Foo::FooTwo::{constructor#0}))), name: "FooTwo", discr: Relative(1), fields: [], flags: NO_VARIANT_FLAGS }]
|
variants: [VariantDef { def_id: DefId(0:11 ~ thir_tree_match[fcf8]::Foo::FooOne), ctor: Some((Fn, DefId(0:12 ~ thir_tree_match[fcf8]::Foo::FooOne::{constructor#0}))), name: "FooOne", discr: Relative(0), fields: [FieldDef { did: DefId(0:13 ~ thir_tree_match[fcf8]::Foo::FooOne::0), name: "0", vis: Restricted(DefId(0:0 ~ thir_tree_match[fcf8])) }], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:14 ~ thir_tree_match[fcf8]::Foo::FooTwo), ctor: Some((Const, DefId(0:15 ~ thir_tree_match[fcf8]::Foo::FooTwo::{constructor#0}))), name: "FooTwo", discr: Relative(1), fields: [], flags: NO_VARIANT_FLAGS }]
|
||||||
flags: IS_ENUM
|
flags: IS_ENUM
|
||||||
repr: ReprOptions { int: None, align: None, pack: None, flags: (empty), field_shuffle_seed: 11573694388057581 }
|
repr: ReprOptions { int: None, align: None, pack: None, flags: (empty), field_shuffle_seed: 3477539199540094892 }
|
||||||
substs: []
|
substs: []
|
||||||
variant_index: 0
|
variant_index: 0
|
||||||
subpatterns: [
|
subpatterns: [
|
||||||
|
@ -211,7 +211,7 @@ body:
|
||||||
kind:
|
kind:
|
||||||
Scope {
|
Scope {
|
||||||
region_scope: Node(19)
|
region_scope: Node(19)
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).19))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).19))
|
||||||
value:
|
value:
|
||||||
Expr {
|
Expr {
|
||||||
ty: bool
|
ty: bool
|
||||||
|
@ -225,7 +225,7 @@ body:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).18))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).18))
|
||||||
scope: Node(18)
|
scope: Node(18)
|
||||||
span: $DIR/thir-tree-match.rs:18:9: 18:32 (#0)
|
span: $DIR/thir-tree-match.rs:18:9: 18:32 (#0)
|
||||||
}
|
}
|
||||||
|
@ -238,10 +238,10 @@ body:
|
||||||
Variant {
|
Variant {
|
||||||
adt_def:
|
adt_def:
|
||||||
AdtDef {
|
AdtDef {
|
||||||
did: DefId(0:10 ~ thir_tree_match[3c9a]::Foo)
|
did: DefId(0:10 ~ thir_tree_match[fcf8]::Foo)
|
||||||
variants: [VariantDef { def_id: DefId(0:11 ~ thir_tree_match[3c9a]::Foo::FooOne), ctor: Some((Fn, DefId(0:12 ~ thir_tree_match[3c9a]::Foo::FooOne::{constructor#0}))), name: "FooOne", discr: Relative(0), fields: [FieldDef { did: DefId(0:13 ~ thir_tree_match[3c9a]::Foo::FooOne::0), name: "0", vis: Restricted(DefId(0:0 ~ thir_tree_match[3c9a])) }], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:14 ~ thir_tree_match[3c9a]::Foo::FooTwo), ctor: Some((Const, DefId(0:15 ~ thir_tree_match[3c9a]::Foo::FooTwo::{constructor#0}))), name: "FooTwo", discr: Relative(1), fields: [], flags: NO_VARIANT_FLAGS }]
|
variants: [VariantDef { def_id: DefId(0:11 ~ thir_tree_match[fcf8]::Foo::FooOne), ctor: Some((Fn, DefId(0:12 ~ thir_tree_match[fcf8]::Foo::FooOne::{constructor#0}))), name: "FooOne", discr: Relative(0), fields: [FieldDef { did: DefId(0:13 ~ thir_tree_match[fcf8]::Foo::FooOne::0), name: "0", vis: Restricted(DefId(0:0 ~ thir_tree_match[fcf8])) }], flags: NO_VARIANT_FLAGS }, VariantDef { def_id: DefId(0:14 ~ thir_tree_match[fcf8]::Foo::FooTwo), ctor: Some((Const, DefId(0:15 ~ thir_tree_match[fcf8]::Foo::FooTwo::{constructor#0}))), name: "FooTwo", discr: Relative(1), fields: [], flags: NO_VARIANT_FLAGS }]
|
||||||
flags: IS_ENUM
|
flags: IS_ENUM
|
||||||
repr: ReprOptions { int: None, align: None, pack: None, flags: (empty), field_shuffle_seed: 11573694388057581 }
|
repr: ReprOptions { int: None, align: None, pack: None, flags: (empty), field_shuffle_seed: 3477539199540094892 }
|
||||||
substs: []
|
substs: []
|
||||||
variant_index: 1
|
variant_index: 1
|
||||||
subpatterns: []
|
subpatterns: []
|
||||||
|
@ -266,7 +266,7 @@ body:
|
||||||
kind:
|
kind:
|
||||||
Scope {
|
Scope {
|
||||||
region_scope: Node(24)
|
region_scope: Node(24)
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).24))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).24))
|
||||||
value:
|
value:
|
||||||
Expr {
|
Expr {
|
||||||
ty: bool
|
ty: bool
|
||||||
|
@ -280,7 +280,7 @@ body:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[3c9a]::has_match).23))
|
lint_level: Explicit(HirId(DefId(0:16 ~ thir_tree_match[fcf8]::has_match).23))
|
||||||
scope: Node(23)
|
scope: Node(23)
|
||||||
span: $DIR/thir-tree-match.rs:19:9: 19:28 (#0)
|
span: $DIR/thir-tree-match.rs:19:9: 19:28 (#0)
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ body:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DefId(0:17 ~ thir_tree_match[3c9a]::main):
|
DefId(0:17 ~ thir_tree_match[fcf8]::main):
|
||||||
params: [
|
params: [
|
||||||
]
|
]
|
||||||
body:
|
body:
|
||||||
|
@ -317,7 +317,7 @@ body:
|
||||||
kind:
|
kind:
|
||||||
Scope {
|
Scope {
|
||||||
region_scope: Node(2)
|
region_scope: Node(2)
|
||||||
lint_level: Explicit(HirId(DefId(0:17 ~ thir_tree_match[3c9a]::main).2))
|
lint_level: Explicit(HirId(DefId(0:17 ~ thir_tree_match[fcf8]::main).2))
|
||||||
value:
|
value:
|
||||||
Expr {
|
Expr {
|
||||||
ty: ()
|
ty: ()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DefId(0:3 ~ thir_tree[8f1d]::main):
|
DefId(0:3 ~ thir_tree[7aaa]::main):
|
||||||
params: [
|
params: [
|
||||||
]
|
]
|
||||||
body:
|
body:
|
||||||
|
@ -18,7 +18,7 @@ body:
|
||||||
kind:
|
kind:
|
||||||
Scope {
|
Scope {
|
||||||
region_scope: Node(2)
|
region_scope: Node(2)
|
||||||
lint_level: Explicit(HirId(DefId(0:3 ~ thir_tree[8f1d]::main).2))
|
lint_level: Explicit(HirId(DefId(0:3 ~ thir_tree[7aaa]::main).2))
|
||||||
value:
|
value:
|
||||||
Expr {
|
Expr {
|
||||||
ty: ()
|
ty: ()
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
error[E0277]: the trait bound `for<Region(BrNamed(DefId(0:6 ~ higher_ranked_fn_type[1209]::called::'b), 'b))> fn(&ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrNamed(DefId(0:6 ~ higher_ranked_fn_type[1209]::called::'b), 'b) }) ()): Foo` is not satisfied
|
error[E0277]: the trait bound `for<Region(BrNamed(DefId(0:6 ~ higher_ranked_fn_type[9e51]::called::'b), 'b))> fn(&ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrNamed(DefId(0:6 ~ higher_ranked_fn_type[9e51]::called::'b), 'b) }) ()): Foo` is not satisfied
|
||||||
--> $DIR/higher-ranked-fn-type.rs:20:5
|
--> $DIR/higher-ranked-fn-type.rs:20:5
|
||||||
|
|
|
|
||||||
LL | called()
|
LL | called()
|
||||||
| ^^^^^^ the trait `for<Region(BrNamed(DefId(0:6 ~ higher_ranked_fn_type[1209]::called::'b), 'b))> Foo` is not implemented for `fn(&ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrNamed(DefId(0:6 ~ higher_ranked_fn_type[1209]::called::'b), 'b) }) ())`
|
| ^^^^^^ the trait `for<Region(BrNamed(DefId(0:6 ~ higher_ranked_fn_type[9e51]::called::'b), 'b))> Foo` is not implemented for `fn(&ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrNamed(DefId(0:6 ~ higher_ranked_fn_type[9e51]::called::'b), 'b) }) ())`
|
||||||
|
|
|
|
||||||
note: required by a bound in `called`
|
note: required by a bound in `called`
|
||||||
--> $DIR/higher-ranked-fn-type.rs:12:25
|
--> $DIR/higher-ranked-fn-type.rs:12:25
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue