aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorMuhammad Mahad <mahadtxt@gmail.com>2023-08-15 21:29:03 +0500
committerCohenArthur <arthur.cohen@embecosm.com>2023-08-18 10:49:02 +0000
commit879a62f50dd693dba84e0e983e38d1480efaa69a (patch)
treecf380f02bae13e29fde4c8a41ceacf6ec5d042bf /gcc/rust
parent8ac2e43fb27170442d26e03271ba8b8775f1eb84 (diff)
downloadgcc-879a62f50dd693dba84e0e983e38d1480efaa69a.zip
gcc-879a62f50dd693dba84e0e983e38d1480efaa69a.tar.gz
gcc-879a62f50dd693dba84e0e983e38d1480efaa69a.tar.bz2
gccrs: [E0391] Detected type dependency cycle
This errorcode & message emits when cycle detected when computing the super predicates of `x` which requires computing the super predicates of `y`, which again requires computing the super predicates of `x`, completing the cycle. gcc/rust/ChangeLog: * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): Updated errorcode & more userfriendly message. gcc/testsuite/ChangeLog: * rust/compile/issue-1589.rs: Updated comment for dejagnu. * rust/compile/trait-cycle.rs: New relevant test. Signed-off-by: Muhammad Mahad <mahadtxt@gmail.com>
Diffstat (limited to 'gcc/rust')
-rw-r--r--gcc/rust/typecheck/rust-hir-trait-resolve.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/rust/typecheck/rust-hir-trait-resolve.cc b/gcc/rust/typecheck/rust-hir-trait-resolve.cc
index 8b96a81..116e697 100644
--- a/gcc/rust/typecheck/rust-hir-trait-resolve.cc
+++ b/gcc/rust/typecheck/rust-hir-trait-resolve.cc
@@ -156,7 +156,10 @@ TraitResolver::resolve_trait (HIR::Trait *trait_reference)
DefId trait_id = trait_reference->get_mappings ().get_defid ();
if (context->trait_query_in_progress (trait_id))
{
- rust_error_at (trait_reference->get_locus (), "trait cycle detected");
+ rust_error_at (
+ trait_reference->get_locus (), ErrorCode::E0391,
+ "cycle detected when computing the super predicates of %qs",
+ trait_reference->get_name ().as_string ().c_str ());
return &TraitReference::error_node ();
}