fix(typeshed): resolve set6 and dictionar6 imports - #441
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (7)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change bundles export inventories for ChangesBundled package inventories
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Severity of issue fixed: Medium Sequence Diagram(s)sequenceDiagram
participant Fixture as Fixture package
participant CLI as ry check
participant Inventories as Bundled inventories
participant Diagnostics as RY010 diagnostics
Fixture->>CLI: Analyze NAMESPACE and use.R
CLI->>Inventories: Resolve set6 and dictionar6 exports
Inventories-->>CLI: Return bundled names
CLI->>Diagnostics: Report unresolved names
Diagnostics-->>Fixture: Preserve Reaals as unbound
Merge Risk: ⚪ Minimal · up to The bundled inventories, registration, and import-diagnostic coverage introduce no established merge-blocking risk. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. A rabbit checks the bundled names, Comment |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
- Vendored
set6anddictionar6export inventories from r-typeshed @cadfe7a— both JSONs verified byte-identical to upstream, and thevendor/SOURCEstubs-sha256: 0a59363…reproduces exactly from the upstream tarball via thescripts/sync_typeshed.shrecipe;ry typeshed validatereports 38 stub files, 0 errors. - Registered both packages in
crates/ry-typeshed/packages.txt— the build script's registration ↔ vendor assertions hold and the embedded table builds cleanly. - New CLI e2e regression
bundled_set6_imports_bind_exports_without_hiding_misspellingscovering wholesale imports, selectiveimportFrom, absent imports, and theReaalsmisspelling control, all underRY_NO_INSTALLED_LIBRARIES=1. Exact assertions, and falsifiable: revertingcrates/ry-typeshedto base92c822amakes it fail with all seven names unbound. - Corpus record
docs/corpus/set6-inventory.md— every number reproduced end-to-end on the checksum-verified CRAN sources with the built binary: param6 133→0, distr6 191→10 (8 RY010 + 2 RY100); the diagnostic diff against baseline is 181 removed, all RY010, every removed name present in the new inventories, zero added, and the remaining 10 are an exact subset of the baseline (133 + 181 = 314, as claimed). - CHANGELOG
### Fixedbullet citing closing issue #366, matching the section's sibling style.
Inventory completeness was also checked against the packages themselves: set6.json contains exactly the 106 export() names from set6 0.2.4's NAMESPACE (no extras, none missing), and dictionar6.json is exactly Dictionary + dct. This meets the #366 screening bar — static inventories only, misspelling diagnostics preserved. cargo fmt, cargo clippy -p ry-cli --all-targets, and the sync-harness unittest suite (13 tests) all pass.
openai-compatible/glm-5.3 | 𝕏

Packages with
import(set6)orimport(dictionar6)report valid exports as unbound when those dependencies are not installed. Vendor the complete export inventories from r-typeshed #41, register both packages, and test the CLI with installed-library lookup disabled.The stubs keep R6 generators opaque and function formals inference-only. The upstream runtime tests compare all exports and formals against set6 0.2.4 and dictionar6 0.1.3. This PR records the clean upstream commit in
vendor/SOURCE; merge the typeshed PR first.On the pinned sources from #366, param6 0.2.4 goes from 133 diagnostics to zero and distr6 1.6.9 from 191 to 10. All 314 removed findings are RY010s for verified exports. No diagnostic is added, and all remaining findings match the baseline. Source hashes, reproduction commands, and limits are in
docs/corpus/set6-inventory.md. Other missing dependency inventories remain outside this change.A wider comparison used the same baseline binary with only the two new stub directories as overrides across 472 local package checkouts. Diagnostics fell from 3,106 to 2,784: 322 RY010s removed, none added. Only param6 and distr6 changed; that panel uses distr6 1.8.4, which accounts for the larger reduction. Every removed name is a verified export. The bundled binary produces identical results for both reported packages and for the changed corpus packages.
Validation:
92c822aand passes with the vendored stubs. It covers wholesale imports, selective imports, absent imports, and a misspelling.cargo test --locked --workspace, Clippy with warnings denied, formatting, and the full R oracle (--include-ignored) pass.