From 37e7b461778fab0c9dbe287e4eb3b7096ad6356f Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 6 Feb 2020 17:53:03 +0100 Subject: [PATCH] clean up E0275 explanation --- src/librustc_error_codes/error_codes/E0275.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/librustc_error_codes/error_codes/E0275.md b/src/librustc_error_codes/error_codes/E0275.md index 836a9a95fa1..2d12fcea4ca 100644 --- a/src/librustc_error_codes/error_codes/E0275.md +++ b/src/librustc_error_codes/error_codes/E0275.md @@ -1,8 +1,6 @@ -This error occurs when there was a recursive trait requirement that overflowed -before it could be evaluated. Often this means that there is unbounded -recursion in resolving some type bounds. +An evaluation of a trait requirement overflowed. -For example, in the following code: +Erroneous code example: ```compile_fail,E0275 trait Foo {} @@ -12,6 +10,10 @@ struct Bar(T); impl Foo for T where Bar: Foo {} ``` +This error occurs when there was a recursive trait requirement that overflowed +before it could be evaluated. This often means that there is an unbounded +recursion in resolving some type bounds. + To determine if a `T` is `Foo`, we need to check if `Bar` is `Foo`. However, to do this check, we need to determine that `Bar>` is `Foo`. To determine this, we check if `Bar>>` is `Foo`, and so on. This is