Skip to content

Add return type very slow #20924

@A4-Tacks

Description

@A4-Tacks

rust-analyzer version: rust-analyzer 0.4.2655-standalone

rustc version: rustc 1.91.0-nightly (040a98a 2025-08-20)

editor or extension: Vim9.1 coc-rust-analyzer

code snippet to reproduce:

file rust-analyzer/crates/ide-assists/src/handlers/foo.rs:

use syntax::{
    AstToken
};

use crate::assist_context::{AssistContext, Assists};

pub(crate) fn foo(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<()> {
    let x = split_curly("", 2)?;
    Some(())
}

fn split_curly(text: &str, offset: usize) -> $0 {
    Some("")
}

and add mod foo; to mod handlers rust-analyzer/crates/ide-assists/src/lib.rs
and add foo::foo to fn all() from rust-analyzer/crates/ide-assists/src/lib.rs

file coc-settings.json:

{
    "rust-analyzer.updates.checkOnStartup": false,
    "rust-analyzer.check.workspace": false,
    "rust-analyzer.cachePriming.enable": false
}

Change work dir to rust-analyzer/crates/ide-assists

Run vim src/handlers/foo.rs

Click code-action at $0 very slow (used 100% CPU and experiencing memory growth)

And the memory used during startup is more than twice as much as before

It seems that there is no such issue on version 2025-08-25

@rustbot label +A-perf

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions