Goto Definition issue with gRPC

Problem Description
Since today, the “Go To Definition” feature (Ctrl+Click or F12) in VSCode doesn’t work for some index connections in my Rust project. Specifically, if I try to navigate from a handler function to the corresponding rpc_client, I receive the following message:
no implementation found for 'function name'.
This issue occurs across all gRPC-related modules in the project, on both my machine and my coworker’s machine. Despite this, the project compiles successfully and is currently running in production, so the code itself is not broken. However, the Rust Analyzer fails to resolve some types, and hover previews don’t work for certain data structures.

Environment
vscode version: 1.96.4 cd4ee3b1c348a13bafd8f9ad8060705f6d4b9cba arm64
rust-analyzer version: 0.3.2282-standalone (2df4ecfc74 2025-01-26) (vscode extension)
MacOs version: macOS sequoia v15.2
Cargo version: cargo 1.81.0 (2dbb1af80 2024-08-20)
rustup version: rustup 1.27.1 (54dd3d00f 2024-04-24)
rustc version: rustc 1.81.0 (eeb90cda1 2024-09-04)

Example:
let proto_products: ! = client.list_market_products(rpc_req).await??;
let products: Vec = proto_products !
.items
.into_iter()
.map(|e| ProductssListItem {
x: e.x,
y: e.y,
})
.collect();

• Symptoms:
• proto_products.items, e.x, and e.y are not resolved.
• Hover preview does not work for these fields.
• Rust Analyzer cannot infer the type of proto_products.

Interestingly, if I explicitly annotate the return type of the handler function (e.g., specifying the exact datatype instead of using !), Rust Analyzer begins to work correctly:
• “Go To Definition” works again for the function name.
• Hover previews return information about proto_products.items and fields like e.x and e.y.

I have tried the following steps, but none have resolved the issue:

  1. Restart and reinstall Rust Analyzer.
  2. Disable and re-enable all VSCode extensions.
  3. Restart VSCode and the system.
  4. Run cargo clean followed by cargo build --release.
  5. Update macOS to the latest version.

Additional Notes
• The project compiles without errors and works as expected in production.
• The issue is not isolated to my machine, as the same problem occurs on my coworker’s setup.
• The problem appears to be isolated to handler functions interacting with rpc_client. Other parts of the codebase (e.g., rpc_server connections) work fine.
Request for Help
Does anyone know what might cause this behavior? Is there a known issue with Rust Analyzer or VSCode related to this? If you’ve encountered and resolved this issue, your guidance would be greatly appreciated!

It might be related to grpc related macros. See this issue for some discussion:

IT FINALLY WORKS!!

An update for the VSCode Rust-Analyzer Extension was released.

2025-01-28 21:15:39.517 [info] /Users/username/.vscode/extensions/rust-lang.rust-analyzer-0.3.2282-darwin-arm64/server/rust-analyzer --version: {
stdout: 'rust-analyzer 0.3.2282-standalone (2df4ecfc74 2025-01-26)\n',
stderr: '',
status: 0
}
2025-01-28 22:23:25.590 [info] /Users/username/.vscode/extensions/rust-lang.rust-analyzer-0.3.2284-darwin-arm64/server/rust-analyzer --version: {
stdout: 'rust-analyzer 0.3.2284-standalone (1f86729f29 2025-01-28)\n',
stderr: '',
status: 0
}

I restarted the rust-analyzer vscode extension and then BOOM!! it magically started to work!

Update:

rust-lang.rust-analyzer-0.3.2284-darwin-arm64

Thanks for your help and for keeping the extension updated!