rust-lang / rust-lang/rust-analyzer

error messages in the output of `rust-analyzer scip`

Open
#21,281 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-lsif/scip C-bug
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

First, thanks again to the rust-analyzer team for the incredible work, it is immensely helpful to our project!

rust-analyzer version:

$ rust-analyzer --version
rust-analyzer 0.3.2719-standalone

rustc version: (eg. output of rustc -V)

$ rustc -V
rustc 1.92.0 (ded5c06cf 2025-12-08)

repository link (if public, optional): curve25519-dalek with verus

code snippet to reproduce:
When running curve25519-dalek$rust-analyzer scip . from a local copy of "curve25519-dalek with verus" we see some errors and duplicate scip symbols, the output is output.txt or in plain, below.

2025-12-16T06:31:30.299275537+01:00 ERROR Encountered enclosing definition with no name def=ToolModule(ToolModule { krate: Crate(Id(4c71)), idx: 1 })
2025-12-16T06:31:31.100372713+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.100441667+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.100486945+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.10052704+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.100565557+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.100603983+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.100641987+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.100742861+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.100975634+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.101171384+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.101330024+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.10137863+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.101443686+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.101525362+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.101592801+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.101656892+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.101873589+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.102220761+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.10238514+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.102549406+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.102723329+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.102893727+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(59acf) } })
2025-12-16T06:31:31.418989634+01:00 ERROR Bug: definition at curve25519-dalek/src/edwards.rs:687:0-687:6 should have been in an SCIP document but was not.
2025-12-16T06:31:31.419020763+01:00 ERROR Bug: definition at curve25519-dalek/src/edwards.rs:687:0-687:6 should have been in an SCIP document but was not.
2025-12-16T06:31:31.419032087+01:00 ERROR Bug: definition at curve25519-dalek/src/edwards.rs:1759:0-1759:26 should have been in an SCIP document but was not.
2025-12-16T06:31:31.419060471+01:00 ERROR Bug: definition at curve25519-dalek/src/edwards.rs:687:0-687:6 should have been in an SCIP document but was not.
2025-12-16T06:31:31.419068433+01:00 ERROR Bug: definition at curve25519-dalek/src/edwards.rs:1757:0-1757:26 should have been in an SCIP document but was not.

Encountered duplicate scip symbols, indicating an internal rust-analyzer bug. These duplicates are
included in the output, but this causes information lookup to be ambiguous and so information about
these symbols presented by downstream tools may be incorrect.

Known rust-analyzer bugs that can cause this:

  * Definitions in crate example binaries which have the same symbol as definitions in the library
    or some other example.

  * Struct/enum/const/static/impl definitions nested in a function do not mention the function name.
    See #18771.

Duplicate symbols encountered:

curve25519-dalek/src/lib.rs:0:0-120:0
  Duplicate symbol: rust-analyzer cargo curve25519-dalek 4.1.3 crate/

Generating SCIP finished 8.359506047s

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the report with rust-analyzer scip . in the linked curve25519-dalek repository and compare the diagnostics with output.txt. Start by examining the SCIP output involving curve25519-dalek/src/edwards.rs and src/lib.rs, then trace the rust-analyzer SCIP entry point. Done means the reported missing definitions, errors, and duplicate symbols no longer occur for this reproduction.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.