Skip to content

error messages in the output of rust-analyzer scip #21281

@astefano

Description

@astefano

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-lsif/scipLSIF/SCIP conformance and featuresC-bugCategory: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions