diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-03-08 11:51:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-08 11:51:04 +0100 |
| commit | f459d2ed99f446a95dff044b980582895bd8782a (patch) | |
| tree | 3f2ad7be617da853a0cdb7393c92896ec10510a4 /src/test/ui/methods | |
| parent | f943349eafaa75a60c05b0c84dcdb771d0eae8c9 (diff) | |
| parent | 5307edce6faa5c675dc57a1dd3b4fdcbf1ebdc7d (diff) | |
| download | rust-f459d2ed99f446a95dff044b980582895bd8782a.tar.gz rust-f459d2ed99f446a95dff044b980582895bd8782a.zip | |
Rollup merge of #69422 - JohnTitor:remove-unwrap, r=Xanewok
Remove use of `unwrap()` from save-analysis Fix #69409, fix #69416
Diffstat (limited to 'src/test/ui/methods')
| -rw-r--r-- | src/test/ui/methods/assign-to-method.rs | 24 | ||||
| -rw-r--r-- | src/test/ui/methods/assign-to-method.stderr | 19 |
2 files changed, 43 insertions, 0 deletions
diff --git a/src/test/ui/methods/assign-to-method.rs b/src/test/ui/methods/assign-to-method.rs new file mode 100644 index 00000000000..85beaee8df0 --- /dev/null +++ b/src/test/ui/methods/assign-to-method.rs @@ -0,0 +1,24 @@ +// compile-flags: -Zsave-analysis +// Also regression test for #69409 + +struct Cat { + meows : usize, + how_hungry : isize, +} + +impl Cat { + pub fn speak(&self) { self.meows += 1; } +} + +fn cat(in_x : usize, in_y : isize) -> Cat { + Cat { + meows: in_x, + how_hungry: in_y + } +} + +fn main() { + let nyan : Cat = cat(52, 99); + nyan.speak = || println!("meow"); //~ ERROR attempted to take value of method + nyan.speak += || println!("meow"); //~ ERROR attempted to take value of method +} diff --git a/src/test/ui/methods/assign-to-method.stderr b/src/test/ui/methods/assign-to-method.stderr new file mode 100644 index 00000000000..c0dd529b681 --- /dev/null +++ b/src/test/ui/methods/assign-to-method.stderr @@ -0,0 +1,19 @@ +error[E0615]: attempted to take value of method `speak` on type `Cat` + --> $DIR/assign-to-method.rs:22:10 + | +LL | nyan.speak = || println!("meow"); + | ^^^^^ + | + = help: methods are immutable and cannot be assigned to + +error[E0615]: attempted to take value of method `speak` on type `Cat` + --> $DIR/assign-to-method.rs:23:10 + | +LL | nyan.speak += || println!("meow"); + | ^^^^^ + | + = help: methods are immutable and cannot be assigned to + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0615`. |
