diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2019-10-01 04:55:29 +0900 |
|---|---|---|
| committer | Yuki Okushi <huyuumi.dev@gmail.com> | 2019-10-01 04:55:29 +0900 |
| commit | bc25746d488dd49ab2fd49b6b4b51f2fe464c56b (patch) | |
| tree | 31807d2fdb4c70d6973c49a61197bfe0d8dc5298 | |
| parent | 576c215ab9184108422d30b311064b0efaf445d4 (diff) | |
| download | rust-bc25746d488dd49ab2fd49b6b4b51f2fe464c56b.tar.gz rust-bc25746d488dd49ab2fd49b6b4b51f2fe464c56b.zip | |
Add test for #58022
| -rw-r--r-- | src/test/ui/issues/issue-58022.rs | 18 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-58022.stderr | 19 |
2 files changed, 37 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-58022.rs b/src/test/ui/issues/issue-58022.rs new file mode 100644 index 00000000000..c6dd45e6cf3 --- /dev/null +++ b/src/test/ui/issues/issue-58022.rs @@ -0,0 +1,18 @@ +pub trait Foo: Sized { + const SIZE: usize; + + fn new(slice: &[u8; Foo::SIZE]) -> Self; + //~^ ERROR: type annotations needed: cannot resolve `_: Foo` +} + +pub struct Bar<T: ?Sized>(T); + +impl Bar<[u8]> { + const SIZE: usize = 32; + + fn new(slice: &[u8; Self::SIZE]) -> Self { + Foo(Box::new(*slice)) //~ ERROR: expected function, found trait `Foo` + } +} + +fn main() {} diff --git a/src/test/ui/issues/issue-58022.stderr b/src/test/ui/issues/issue-58022.stderr new file mode 100644 index 00000000000..71bad7b81fa --- /dev/null +++ b/src/test/ui/issues/issue-58022.stderr @@ -0,0 +1,19 @@ +error[E0423]: expected function, found trait `Foo` + --> $DIR/issue-58022.rs:14:9 + | +LL | Foo(Box::new(*slice)) + | ^^^ not a function + +error[E0283]: type annotations needed: cannot resolve `_: Foo` + --> $DIR/issue-58022.rs:4:25 + | +LL | const SIZE: usize; + | ------------------ required by `Foo::SIZE` +LL | +LL | fn new(slice: &[u8; Foo::SIZE]) -> Self; + | ^^^^^^^^^ + +error: aborting due to 2 previous errors + +Some errors have detailed explanations: E0283, E0423. +For more information about an error, try `rustc --explain E0283`. |
