| //@ run-rustfix | |
| #![allow(unused)] | |
| fn as_ref() -> Option<Vec<u8>> { | |
| None | |
| } | |
| struct Type { | |
| option: Option<Vec<u8>> | |
| } | |
| trait Trait { | |
| fn foo(&self) -> &Vec<u8>; | |
| } | |
| impl Trait for Option<Vec<u8>> { | |
| fn foo(&self) -> &Vec<u8> { | |
| self.as_ref().unwrap() | |
| } | |
| } | |
| impl Type { | |
| fn method(&self) -> Option<&Vec<u8>> { | |
| self.option..as_ref().map(|x| x) | |
| //~^ ERROR E0308 | |
| } | |
| fn method2(&self) -> Option<&u8> { | |
| self.option..foo().get(0) | |
| //~^ ERROR E0425 | |
| //~| ERROR E0308 | |
| } | |
| } | |
| fn main() { | |
| let _ = Type { option: None }.method(); | |
| } |