mProjectsCode / mProjectsCode/glass-lint

Handle incomplete semantic analysis gracefully

Open
#4 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

The source-size limit has a structured diagnostic, but other semantic limits can invalidate or truncate internal state without a caller-visible reason. For example, exhausting MAX_FACTS produces an empty semantic match set that is indistinguishable from a clean file.

Work:

  • Define a provider-neutral semantic diagnostic with a stable code, optional range, component/limit name, and observed and capped values. Keep syntax diagnostics distinct from incomplete semantic analysis in Rust reports, JSON output, and profiler totals.
  • Thread one internal analysis-budget/status object through fact construction, resolution, constants, indexes, summaries, and object flow. Centralize defaults and expose smaller budgets only through test support.
  • Retain sound facts already proven where possible, mark affected components incomplete, and prevent downstream absence from being treated as proof. Strict provenance chains crossing incomplete data must fail closed.
  • Make fact exhaustion record one diagnostic without attempting a duplicate or out-of-range FactId emission.
  • Add below/at/above tests for every limit, simultaneous exhaustions, ID conversion boundaries, deterministic diagnostics, and stable partial results.
  • Classify the two diagnostics in the production sample. Preserve a minimal synthetic regression for any semantic exhaustion found there.

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

No files or tests are named. Start by tracing fact construction, resolution, constants, indexes, summaries, and object flow to identify the current limits and semantic status paths. Done means provider-neutral diagnostics, sound partial results, fail-closed provenance, centralized budgets, and the requested boundary, interaction, determinism, and regression tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.