rust-lang / rust-lang/rust-analyzer
error messages in the output of `rust-analyzer scip`
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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