Skip to content

Add Steep type checking#281

Open
sferik wants to merge 6 commits intoruby:masterfrom
sferik:add-steep-type-checking
Open

Add Steep type checking#281
sferik wants to merge 6 commits intoruby:masterfrom
sferik:add-steep-type-checking

Conversation

@sferik
Copy link

@sferik sferik commented Mar 6, 2026

See #278 for context.

sferik added 6 commits March 6, 2026 11:59
Adjust library code to make dynamic behavior explicit for the type
checker with small, behavior-preserving changes: add local narrowing,
nil guards, key coercions, read_body call shaping, and a few
compatibility-focused internal fixes.
Update the public RBS to better match actual net/http behavior around
URI handling, nilable headers and response bodies, exception classes,
and request/response entry points.

Keep shipped signatures in sig/ focused on net/http’s public API, and
add a separate *-impl.rbs files for implementation-only declarations
used only by Steep when typechecking lib/.

The *-impl.rbs files cover internal protocol classes, helper methods,
constants, and stdlib gaps needed by the implementation, without
shipping those internal details as part of the gem’s public RBS.
Add `steep` to Gemfile, add `steep` rake task, and add `typecheck`
GitHub workflow.
@sferik sferik mentioned this pull request Mar 6, 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