Description
The test src/test/ui/reify-intrinsic.stderr
appears to be intermittently changing its output. Usually, it prints:
unsafe extern "rust-intrinsic" fn(_) -> _ {std::intrinsics::transmute::<_, _>}
but sometimes it prints:
unsafe extern "rust-intrinsic" fn(_) -> _ {std::mem::transmute::<_, _>}
See a4cad41 for an example of this happening.
Here's a log snippet from a compiler build which prints std::intrinsics::transmute
(the current expected output):
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(2:965 ~ core[5cf2]::intrinsics[0]::[1]::transmute[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: cur_def_key=DefKey { parent: Some(DefIndex(924)), disambiguated_data: DisambiguatedDefPathData { data: ValueNs("transmute"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(2:750 ~ core[5cf2]::intrinsics[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: cur_def_key=DefKey { parent: Some(DefIndex(0)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs("intrinsics"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(1:0 ~ std[5758])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(0:11 ~ reify_intrinsic[317d]::std[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: visible_parent=DefId(1:0 ~ std[5758]) actual_parent=Some(DefId(2:0 ~ core[5cf2]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("intrinsics") visible_parent=DefId(1:0 ~ std[5758]) actual_parent=Some(DefId(2:0 ~ core[5cf2]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("intrinsics")
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: visible_parent=DefId(2:750 ~ core[5cf2]::intrinsics[0]) actual_parent=Some(DefId(2:924 ~ core[5cf2]::intrinsics[0]::[1]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=ValueNs("transmute") visible_parent=DefId(2:750 ~ core[5cf2]::intrinsics[0]) actual_parent=Some(DefId(2:924 ~ core[5cf2]::intrinsics[0]::[1]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=ValueNs("transmute")
Note [DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=ValueNs("transmute") visible_parent=DefId(2:750 ~ core[5cf2]::intrinsics[0]) actual_parent=Some(DefId(2:924 ~ core[5cf2]::intrinsics[0]::[1]))
- this indicates that the chosen visible_parent
(which is what actually gets printed) is core::intrinsics
Output from a compiler which prints std::mem::transmute
:
[DEBUG rustc::ty::print] default_print_def_path: key=DefKey { parent: Some(DefIndex(924)), disambiguated_data: DisambiguatedDefPathData { data: ValueNs("transmute"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(2:965 ~ core[5cf2]::intrinsics[0]::[1]::transmute[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: cur_def_key=DefKey { parent: Some(DefIndex(924)), disambiguated_data: DisambiguatedDefPathData { data: ValueNs("transmute"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(2:1114 ~ core[5cf2]::mem[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: cur_def_key=DefKey { parent: Some(DefIndex(0)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs("mem"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(1:0 ~ std[5758])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(0:11 ~ bad_intrinsic[317d]::std[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: visible_parent=DefId(1:0 ~ std[5758]) actual_parent=Some(DefId(2:0 ~ core[5cf2]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("mem") visible_parent=DefId(1:0 ~ std[5758]) actual_parent=Some(DefId(2:0 ~ core[5cf2]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("mem")
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: visible_parent=DefId(2:1114 ~ core[5cf2]::mem[0]) actual_parent=Some(DefId(2:924 ~ core[5cf2]::intrinsics[0]::[1]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=ValueNs("transmute") visible_parent=DefId(2:1114 ~ core[5cf2]::mem[0]) actual_parent=Some(DefId(2:924 ~ core[5cf2]::intrinsics[0]::[1]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=ValueNs("transmute")
[DEBUG rustc::ty::print::pretty] def_path_str: def_id=DefId(2:1542 ~ core[5cf2]::marker[0]::Copy[0]), ns=TypeNS
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(2:1542 ~ core[5cf2]::marker[0]::Copy[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: cur_def_key=DefKey { parent: Some(DefIndex(1529)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs("Copy"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(2:1529 ~ core[5cf2]::marker[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: cur_def_key=DefKey { parent: Some(DefIndex(0)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs("marker"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(1:0 ~ std[5758])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(0:11 ~ bad_intrinsic[317d]::std[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: visible_parent=DefId(1:0 ~ std[5758]) actual_parent=Some(DefId(2:0 ~ core[5cf2]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("marker") visible_parent=DefId(1:0 ~ std[5758]) actual_parent=Some(DefId(2:0 ~ core[5cf2]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("marker")
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: visible_parent=DefId(2:1529 ~ core[5cf2]::marker[0]) actual_parent=Some(DefId(2:1529 ~ core[5cf2]::marker[0]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("Copy") visible_parent=DefId(2:1529 ~ core[5cf2]::marker[0]) actual_parent=Some(DefId(2:1529 ~ core[5cf2]::marker[0]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("Copy")
[DEBUG rustc::ty::print::pretty] def_path_str: def_id=DefId(2:1542 ~ core[5cf2]::marker[0]::Copy[0]), ns=TypeNS
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(2:1542 ~ core[5cf2]::marker[0]::Copy[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: cur_def_key=DefKey { parent: Some(DefIndex(1529)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs("Copy"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(2:1529 ~ core[5cf2]::marker[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: cur_def_key=DefKey { parent: Some(DefIndex(0)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs("marker"), disambiguator: 0 } }
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(1:0 ~ std[5758])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: def_id=DefId(0:11 ~ bad_intrinsic[317d]::std[0])
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: visible_parent=DefId(1:0 ~ std[5758]) actual_parent=Some(DefId(2:0 ~ core[5cf2]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("marker") visible_parent=DefId(1:0 ~ std[5758]) actual_parent=Some(DefId(2:0 ~ core[5cf2]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("marker")
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: visible_parent=DefId(2:1529 ~ core[5cf2]::marker[0]) actual_parent=Some(DefId(2:1529 ~ core[5cf2]::marker[0]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("Copy") visible_parent=DefId(2:1529 ~ core[5cf2]::marker[0]) actual_parent=Some(DefId(2:1529 ~ core[5cf2]::marker[0]))
[DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=TypeNs("Copy")
Note [DEBUG rustc::ty::print::pretty] try_print_visible_def_path: data=ValueNs("transmute") visible_parent=DefId(2:1114 ~ core[5cf2]::mem[0]) actual_parent=Some(DefId(2:924 ~ core[5cf2]::intrinsics[0]::[1]))
- here, the visible_parent
is core::mem
.
There appears to be some non-determinism occuring, but I'm not sure where.