aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/call_info.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-07-17 14:44:37 +0100
committerAleksey Kladov <[email protected]>2020-07-17 14:44:37 +0100
commit798f43da502e4b8d52e9b907420708d956faa054 (patch)
tree8dd4ccf08afb5b1f0576242ba13d1d165c6bb3c3 /crates/ra_ide/src/call_info.rs
parent23df3834333a4db1449b2ba52e878ade47d1dfb2 (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.rs4
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 })