diff options
author | Aleksey Kladov <[email protected]> | 2020-07-17 14:44:37 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2020-07-17 14:44:37 +0100 |
commit | 798f43da502e4b8d52e9b907420708d956faa054 (patch) | |
tree | 8dd4ccf08afb5b1f0576242ba13d1d165c6bb3c3 /crates/ra_ide/src/call_info.rs | |
parent | 23df3834333a4db1449b2ba52e878ade47d1dfb2 (diff) |
Fix out of bounds panic in active parameter
Diffstat (limited to 'crates/ra_ide/src/call_info.rs')
-rw-r--r-- | crates/ra_ide/src/call_info.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/ra_ide/src/call_info.rs b/crates/ra_ide/src/call_info.rs index 14980afdd..ff602202f 100644 --- a/crates/ra_ide/src/call_info.rs +++ b/crates/ra_ide/src/call_info.rs | |||
@@ -161,6 +161,10 @@ impl ActiveParameter { | |||
161 | 161 | ||
162 | let idx = active_parameter?; | 162 | let idx = active_parameter?; |
163 | let mut params = signature.params(sema.db); | 163 | let mut params = signature.params(sema.db); |
164 | if !(idx < params.len()) { | ||
165 | mark::hit!(too_many_arguments); | ||
166 | return None; | ||
167 | } | ||
164 | let (pat, ty) = params.swap_remove(idx); | 168 | let (pat, ty) = params.swap_remove(idx); |
165 | let name = pat?.to_string(); | 169 | let name = pat?.to_string(); |
166 | Some(ActiveParameter { ty, name }) | 170 | Some(ActiveParameter { ty, name }) |