From fab238adf632f05993af992dca2f411e5ac02dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E6=96=B9=E6=B7=9E?= Date: Wed, 6 Oct 2021 10:06:46 +0800 Subject: [PATCH] Update crates/ide_assists/src/handlers/generate_constant.rs Co-authored-by: Lukas Wirth --- crates/ide_assists/src/handlers/generate_constant.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/crates/ide_assists/src/handlers/generate_constant.rs b/crates/ide_assists/src/handlers/generate_constant.rs index 2e3e3be48d1..a296f1cefcb 100644 --- a/crates/ide_assists/src/handlers/generate_constant.rs +++ b/crates/ide_assists/src/handlers/generate_constant.rs @@ -31,10 +31,9 @@ use syntax::{ // ``` pub(crate) fn generate_constant(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { - let statement = ctx.find_node_at_offset::()?; - let arg_list = ctx.find_node_at_offset::()?; - let expr = ctx.find_node_at_offset::()?; let constant_token = ctx.find_node_at_offset::()?; + let expr = constant_token.syntax().ancestors().find_map(ast::Expr::cast)?; + let statement = expr.syntax().ancestors().find_map(ast::Stmt::cast)?; let ty = ctx.sema.type_of_expr(&expr)?; let scope = ctx.sema.scope(statement.syntax()); let module = scope.module()?;