Only allow renames to valid identifiers

This commit is contained in:
Wilco Kusee 2019-11-29 15:14:42 +01:00
parent 8b278b1ab6
commit 9c764cb966
No known key found for this signature in database
GPG Key ID: D5B2BB5CDC3334BC

View File

@ -13,7 +13,7 @@ use ra_ide::{
AssistId, FileId, FilePosition, FileRange, Query, Runnable, RunnableKind, SearchScope,
};
use ra_prof::profile;
use ra_syntax::{AstNode, SyntaxKind, TextRange, TextUnit};
use ra_syntax::{tokenize, AstNode, SyntaxKind, TextRange, TextUnit};
use rustc_hash::FxHashMap;
use serde::{Deserialize, Serialize};
use serde_json::to_value;
@ -506,6 +506,12 @@ pub fn handle_rename(world: WorldSnapshot, params: RenameParams) -> Result<Optio
.into());
}
// Only rename to valid identifiers
let tokens = tokenize(&params.new_name);
if tokens.len() != 1 || tokens[0].kind != SyntaxKind::IDENT {
return Ok(None);
}
let optional_change = world.analysis().rename(position, &*params.new_name)?;
let change = match optional_change {
None => return Ok(None),