Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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