diff options
| author | Michael Goulet <michael@errs.io> | 2025-01-24 04:06:47 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2025-01-24 04:07:10 +0000 |
| commit | ea9a253ff1e0a24e6439c122960f9a17a6e8d58d (patch) | |
| tree | d5fca2329756b8734cb200f3e3ac068ffca30c2c /compiler/rustc_error_codes | |
| parent | 99768c80a1c094a5cfc3b25a04e7a99de7210eae (diff) | |
| download | rust-ea9a253ff1e0a24e6439c122960f9a17a6e8d58d.tar.gz rust-ea9a253ff1e0a24e6439c122960f9a17a6e8d58d.zip | |
Properly report error when object type param default references self
Diffstat (limited to 'compiler/rustc_error_codes')
| -rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0393.md | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0393.md b/compiler/rustc_error_codes/src/error_codes/E0393.md index 50225b25163..c7260815905 100644 --- a/compiler/rustc_error_codes/src/error_codes/E0393.md +++ b/compiler/rustc_error_codes/src/error_codes/E0393.md @@ -3,12 +3,10 @@ A type parameter which references `Self` in its default value was not specified. Erroneous code example: ```compile_fail,E0393 -trait A<T=Self> {} +trait A<T = Self> {} -fn together_we_will_rule_the_galaxy(son: &A) {} -// error: the type parameter `T` must be explicitly specified in an -// object type because its default value `Self` references the -// type `Self` +fn together_we_will_rule_the_galaxy(son: &dyn A) {} +// error: the type parameter `T` must be explicitly specified ``` A trait object is defined over a single, fully-defined trait. With a regular @@ -23,7 +21,7 @@ disallowed. Making the trait concrete by explicitly specifying the value of the defaulted parameter will fix this issue. Fixed example: ``` -trait A<T=Self> {} +trait A<T = Self> {} -fn together_we_will_rule_the_galaxy(son: &A<i32>) {} // Ok! +fn together_we_will_rule_the_galaxy(son: &dyn A<i32>) {} // Ok! ``` |
