Skip to content

Commit aed14a6

Browse files
committed
add range checks for new code actions
1 parent 1bbf8ed commit aed14a6

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

compiler-core/src/language_server/code_action.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8280,6 +8280,11 @@ impl<'a> WrapInAnonymousFunction<'a> {
82808280

82818281
impl<'ast> ast::visit::Visit<'ast> for WrapInAnonymousFunction<'ast> {
82828282
fn visit_typed_call_arg(&mut self, arg: &'ast TypedCallArg) {
8283+
let function_range = src_span_to_lsp_range(arg.location, self.line_numbers);
8284+
if !overlaps(self.params.range, function_range) {
8285+
return;
8286+
}
8287+
82838288
if let Type::Fn { ref arguments, .. } = *arg.value.type_() {
82848289
let variables_names = VariablesNames::from_expression(&arg.value);
82858290

@@ -8292,6 +8297,11 @@ impl<'ast> ast::visit::Visit<'ast> for WrapInAnonymousFunction<'ast> {
82928297
}
82938298

82948299
fn visit_typed_assignment(&mut self, assignment: &'ast TypedAssignment) {
8300+
let function_range = src_span_to_lsp_range(assignment.location, self.line_numbers);
8301+
if !overlaps(self.params.range, function_range) {
8302+
return;
8303+
}
8304+
82958305
if assignment.kind != AssignmentKind::Let {
82968306
return;
82978307
}
@@ -8387,6 +8397,11 @@ impl<'ast> ast::visit::Visit<'ast> for UnwrapAnonymousFunction<'ast> {
83878397
body: &'ast Vec1<TypedStatement>,
83888398
_return_annotation: &'ast Option<ast::TypeAst>,
83898399
) {
8400+
let function_range = src_span_to_lsp_range(*location, self.line_numbers);
8401+
if !overlaps(self.params.range, function_range) {
8402+
return;
8403+
}
8404+
83908405
match kind {
83918406
FunctionLiteralKind::Anonymous { .. } => (),
83928407
_ => return,

0 commit comments

Comments
 (0)