diff options
| author | roife <roifewu@gmail.com> | 2024-03-06 15:32:49 +0800 |
|---|---|---|
| committer | roife <roifewu@gmail.com> | 2024-03-06 15:32:49 +0800 |
| commit | 5c9ce7b11f941a951f35b24563ff9c9ff24fa786 (patch) | |
| tree | e7ac05861210904efec1f78dc7e6800fc4f8b070 | |
| parent | faea7fca0145019a0f17a5b0bb0f4a84d7225cb7 (diff) | |
| download | rust-5c9ce7b11f941a951f35b24563ff9c9ff24fa786.tar.gz rust-5c9ce7b11f941a951f35b24563ff9c9ff24fa786.zip | |
test: add tests for keeping attrs in assist 'generate_delegate_trait'
| -rw-r--r-- | crates/ide-assists/src/handlers/generate_delegate_trait.rs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/crates/ide-assists/src/handlers/generate_delegate_trait.rs b/crates/ide-assists/src/handlers/generate_delegate_trait.rs index 92c10ec818a..748acb46efb 100644 --- a/crates/ide-assists/src/handlers/generate_delegate_trait.rs +++ b/crates/ide-assists/src/handlers/generate_delegate_trait.rs @@ -1716,4 +1716,65 @@ impl some_module::SomeTrait for B { }"#, ) } + + #[test] + fn test_fn_with_attrs() { + check_assist( + generate_delegate_trait, + r#" +struct A; + +trait T { + #[cfg(test)] + fn f(&self, a: u32); + #[cfg(not(test))] + fn f(&self, a: bool); +} + +impl T for A { + #[cfg(test)] + fn f(&self, a: u32) {} + #[cfg(not(test))] + fn f(&self, a: bool) {} +} + +struct B { + a$0: A, +} +"#, + r#" +struct A; + +trait T { + #[cfg(test)] + fn f(&self, a: u32); + #[cfg(not(test))] + fn f(&self, a: bool); +} + +impl T for A { + #[cfg(test)] + fn f(&self, a: u32) {} + #[cfg(not(test))] + fn f(&self, a: bool) {} +} + +struct B { + a: A, +} + +impl T for B { + #[cfg(test)] + fn f(&self, a: u32) { + <A as T>::f(&self.a, a) + } + + #[cfg(not(test))] + fn f(&self, a: bool) { + <A as T>::f(&self.a, a) + } +} +"#, + ); + } } |
