Skip to content

Add Steep type checking#281

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

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

Conversation

@sferik
Copy link
Contributor

@sferik sferik commented Mar 6, 2026

See #278 for context.

@sferik sferik mentioned this pull request Mar 6, 2026
@sferik sferik force-pushed the add-steep-type-checking branch 3 times, most recently from 2a6b7ee to a22dfcc Compare March 12, 2026 02:02
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.
@sferik sferik force-pushed the add-steep-type-checking branch from a22dfcc to d6ad4ba Compare March 17, 2026 19:44
sferik added 2 commits March 17, 2026 12:59
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.
@sferik sferik force-pushed the add-steep-type-checking branch 4 times, most recently from eb1ef57 to 9e3c59c Compare March 17, 2026 20:18
Add `steep` to Gemfile, add `steep` rake task, and add `typecheck`
GitHub workflow.
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