-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Open
Labels
A-type-systemArea: Type systemArea: Type systemC-bugCategory: This is a bug.Category: This is a bug.I-hangIssue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.P-lowLow priorityLow priorityS-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueStatus: A Minimal Complete and Verifiable Example has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-typesRelevant to the types team, which will review and decide on the PR/issue.Relevant to the types team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.
Description
I tried this code alone:
trait HasParent {
type Parent: HasParent;
}
struct Visitor<'a, Type>
where Type: HasParent
{
parent: &'a Visitor<'a, Type::Parent>,
current: &'a Type
}
I expected to see this happen: Being able to compile
OR error message
.
I also expect the following evaluation to be possible, breaking the recursion, because no further monomorphization is necessary:
struct Library;
struct Module;
impl HasParent for Module {
type Parent = Library;
}
impl HasParent for Library {
type Parent = ();
}
impl HasParent for () {
type Parent = ();
}
which would produce
struct Visitor<'a, ()> {
parent: &'a Visitor<'a, ()>,
current: &'a ()
}
struct Visitor<'a, Library> {
parent: &'a Visitor<'a, ()>,
current: &'a Library
}
struct Visitor<'a, Module> {
parent: &'a Visitor<'a, Library>,
current: &'a Module
}
Instead, this happened: The compiler freezes.
Meta
rustc --version --verbose
:
rustc 1.74.0 (79e9716c9 2023-11-13)
binary: rustc
commit-hash: 79e9716c980570bfd1f666e3b16ac583f0168962
commit-date: 2023-11-13
host: x86_64-pc-windows-msvc
release: 1.74.0
LLVM version: 17.0.4
Backtrace
No backtrace available
Metadata
Metadata
Assignees
Labels
A-type-systemArea: Type systemArea: Type systemC-bugCategory: This is a bug.Category: This is a bug.I-hangIssue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.P-lowLow priorityLow priorityS-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueStatus: A Minimal Complete and Verifiable Example has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-typesRelevant to the types team, which will review and decide on the PR/issue.Relevant to the types team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
DaniPopes commentedon Nov 29, 2023
searched toolchains nightly-2017-07-17 through nightly-2023-11-29
Regression in nightly-2018-09-13
found 7 bors merge commits in the specified range
commit[0] 2018-09-11: Auto merge of #53873 - nikomatsakis:nll-universe-subtyping-and-pattern-ascription, r=pnkfelix
commit[1] 2018-09-11: Auto merge of #53913 - petrochenkov:biattr4, r=alexcrichton
commit[2] 2018-09-12: Auto merge of #51159 - pacman82:master, r=oli-obk
commit[3] 2018-09-12: Auto merge of #54146 - kennytm:rollup, r=kennytm
commit[4] 2018-09-12: Auto merge of #53793 - toidiu:ak-stabalize, r=nikomatsakis
commit[5] 2018-09-12: Auto merge of #54152 - michaelwoerister:cgu-name-fix, r=alexcrichton
commit[6] 2018-09-12: Auto merge of #53409 - GuillaumeGomez:associated-const-value, r=QuietMisdreavus
Script:
arHSM commentedon Mar 19, 2024
Albeit a workaround but modifying the
Visitor
struct to be as so fixes this issuecheck_inferred_predicates()
#123866lolbinarycat commentedon Sep 8, 2024
triage: still hangs in the latest stable and nightly