Skip to content

feat(ide): replace hir-ty TypeSystem with resident slang elaboration - #345

Closed
hongjr03 wants to merge 1 commit into
masterfrom
feat/slang-elaboration
Closed

feat(ide): replace hir-ty TypeSystem with resident slang elaboration#345
hongjr03 wants to merge 1 commit into
masterfrom
feat/slang-elaboration

Conversation

@hongjr03

Copy link
Copy Markdown
Member

Split out of #344. This PR is only the type/elaboration slice: types, class members, and :: navigation come from a resident slang Compilation worker instead of hir-ty::TypeSystem.

What this is

  • Additive slang-sys FFI: lookup_symbol, lookup_scoped, list_members, list_scope_members, lookup_type, list_instances
  • ElaborationService worker thread (not salsa)
  • Hover type line / member completion / extract-variable / Class::member goto ask that worker
  • HIR pretty-print moves from hir-ty into ide::render::hir_display
  • hir-ty crate deleted

What this is not

  • Not DesignGraph / FileFacts / ProductStore
  • Not preprocessor parse/trace split
  • Not the diagnostics compiler subprocess
  • ModuleIndex and semantic_index stay

#344 (perf) remains the spec branch until the other slices land.

Tests

  • cargo test -p slang-sys
  • cargo test -p ide --lib

Slang's Compilation is not incremental, so types, class members, and
`::` navigation come from a resident worker rather than salsa inference.
Hover, member completion, and extract-variable ask that worker; HIR
display stays as pretty-printing of lowered syntax and moves into ide.

The hir-ty crate is removed. ModuleIndex and the preprocessor are
unchanged.
@github-actions

Copy link
Copy Markdown

Docs preview: https://vide.pascal-lab.net/preview/pr-345/

@hongjr03 hongjr03 closed this Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant