diff options
| author | Michael Goulet <michael@errs.io> | 2022-10-09 21:02:12 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-10-19 02:06:19 +0000 |
| commit | 63be7a24242b262ba9924eec89a5cc6512d8b504 (patch) | |
| tree | daa1a6aedaae64868b20de04354650066a685957 /src/test | |
| parent | a24a020e6d926dffe6b472fc647978f92269504e (diff) | |
| download | rust-63be7a24242b262ba9924eec89a5cc6512d8b504.tar.gz rust-63be7a24242b262ba9924eec89a5cc6512d8b504.zip | |
Suggest calling ctor when trait is unimplemented
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/suggestions/call-on-unimplemented-ctor.rs | 17 | ||||
| -rw-r--r-- | src/test/ui/suggestions/call-on-unimplemented-ctor.stderr | 24 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/test/ui/suggestions/call-on-unimplemented-ctor.rs b/src/test/ui/suggestions/call-on-unimplemented-ctor.rs new file mode 100644 index 00000000000..28a319382e6 --- /dev/null +++ b/src/test/ui/suggestions/call-on-unimplemented-ctor.rs @@ -0,0 +1,17 @@ +fn main() { + insert_resource(Marker); + insert_resource(Time); + //~^ ERROR the trait bound `fn(u32) -> Time {Time}: Resource` is not satisfied + //~| HELP use parentheses to call the constructor +} + +trait Resource {} + +fn insert_resource<R: Resource>(resource: R) {} + +struct Marker; +impl Resource for Marker {} + +struct Time(u32); + +impl Resource for Time {} diff --git a/src/test/ui/suggestions/call-on-unimplemented-ctor.stderr b/src/test/ui/suggestions/call-on-unimplemented-ctor.stderr new file mode 100644 index 00000000000..ea8aec3098d --- /dev/null +++ b/src/test/ui/suggestions/call-on-unimplemented-ctor.stderr @@ -0,0 +1,24 @@ +error[E0277]: the trait bound `fn(u32) -> Time {Time}: Resource` is not satisfied + --> $DIR/call-on-unimplemented-ctor.rs:3:21 + | +LL | insert_resource(Time); + | --------------- ^^^^ the trait `Resource` is not implemented for fn item `fn(u32) -> Time {Time}` + | | + | required by a bound introduced by this call +... +LL | struct Time(u32); + | ----------- consider calling the constructor for `Time` + | +note: required by a bound in `insert_resource` + --> $DIR/call-on-unimplemented-ctor.rs:10:23 + | +LL | fn insert_resource<R: Resource>(resource: R) {} + | ^^^^^^^^ required by this bound in `insert_resource` +help: use parentheses to call the constructor + | +LL | insert_resource(Time(_)); + | +++ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0277`. |
