Skip to content

Intermittent failure in src/test/ui/reify-intrinsic.stderr #65036

Closed
@Aaron1011

Description

@Aaron1011

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-prettyArea: Pretty printing (including `-Z unpretty`)A-reproducibilityArea: Reproducible / deterministic buildsA-resolveArea: Name/path resolution done by `rustc_resolve` specificallyC-bugCategory: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions