Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
716 commits
Select commit Hold shift + click to select a range
2e601e9
Merge branch '2026-08-04' into merge-42
apiology Aug 26, 2026
81abbae
Drop a comment that only points elsewhere
apiology Aug 26, 2026
9afc266
Add a higher-level spec matching the PR description example
apiology Aug 26, 2026
6099456
Merge branch '2026-08-04' into merge-42
apiology Aug 26, 2026
a369079
Narrow instance_variable_defined? guards
apiology Aug 26, 2026
47bdd28
Drop 2 .rubocop_todo.yml exclusions the #42 merge fixed
apiology Aug 26, 2026
c084df6
Merge apiology/solargraph#65: Fix Hash#fetch generic leak from unmatc…
apiology Aug 26, 2026
533f2aa
Extract enclosing-rebind-cache warm-up in Block#rebind
apiology Aug 26, 2026
d7ab7c9
Merge apiology/fix-typechecker-rules-level: Fix Rules#level nil bug
apiology Aug 26, 2026
431d2c4
Use Hash#fetch for non-nilable qualified type lookup
apiology Aug 26, 2026
5716a02
Fix stale @return tag on Range#to_hash
apiology Aug 26, 2026
0a11ad6
Use Hash#fetch for non-nilable qualified type lookup
apiology Aug 26, 2026
8920c4b
Merge remote-tracking branch 'origin/master' into gh-fix-1249
apiology Aug 26, 2026
0baf061
Merge remote-tracking branch 'origin/master' into fix-1229-intersecti…
apiology Aug 26, 2026
f13e653
Annotate Initialize#process result capabilities hash
apiology Aug 26, 2026
666a6aa
Merge castwide/solargraph:master into 2026-08-04
apiology Aug 26, 2026
cdb5e56
Fix rerere-reintroduced stale pending markers in clip_spec
apiology Aug 26, 2026
803bc02
Suppress base.rb record-type false positives
apiology Aug 26, 2026
179e308
Merge remote-tracking branch 'origin/master' into speed_up_specs_master
apiology Aug 26, 2026
b2e527a
Merge remote-tracking branch 'apiology/speed_up_specs_master' into sp…
apiology Aug 26, 2026
313e35b
Annotate restkwarg details hash post-master-merge shift
apiology Aug 26, 2026
dd495ec
Annotate Initialize#process result capabilities hash
apiology Aug 26, 2026
0fcd8ec
Add per-key Hash-literal record inference for intersections
apiology Aug 26, 2026
ba0d89b
Merge apiology/2026-08-04: reconcile with base.rb suppression commit
apiology Aug 26, 2026
7af2bf8
Remove redundant @sg-ignore superseded by @type fix
apiology Aug 26, 2026
79de19b
Cover splat of a non-collection type in masgn probe
apiology Aug 26, 2026
1450ced
Add coverage for ComplexType#qualify skipping a bot type
apiology Aug 26, 2026
53b8d25
Add spec coverage for Call#literal_node_tag
apiology Aug 26, 2026
fb01a52
Add coverage for literal_type_name and parse_literal_comparison
apiology Aug 26, 2026
7a18011
Add coverage for class-variable Forwardable delegation
apiology Aug 26, 2026
582e2d7
Cover homogeneous and mixed array literal inference
apiology Aug 26, 2026
f48f816
Add coverage for namespace-qualified Class.new assignment
apiology Aug 26, 2026
85f3600
Point plugins.yml at solargraph-rspec's tolerant-assertion branch
apiology Aug 26, 2026
bbcf808
Cover PR 1312 unsilenced CLI error paths
apiology Aug 26, 2026
2d8a07f
Add coverage for masgn target with no matching variable pin
apiology Aug 26, 2026
128404a
Add coverage for nested destructured block parameter groups
apiology Aug 26, 2026
ffd97ff
Cover ToClassDefinition.make rescue and descends_from? walk
apiology Aug 26, 2026
5f7d7e7
Add coverage for UniqueType#exclude conformance-based matching
apiology Aug 26, 2026
a2ad635
Cover detect_encoding's unknown-encoding-name fallback
apiology Aug 26, 2026
046db57
Fix build_docs test to actually stub the checked method
apiology Aug 26, 2026
df96759
Directly exercise Or#resolve rhs_never_returns branch
apiology Aug 26, 2026
c89290e
Add specs for Workspace#gemfile? and cache core CLI path
apiology Aug 26, 2026
3414ec1
Add coverage for Intersection delegating/structural methods
apiology Aug 26, 2026
a78d478
Merge castwide/solargraph#1237: Spec performance fixes (latest)
apiology Aug 26, 2026
f03d221
Merge remote-tracking branch 'apiology/2026-08-04' into 2026-08-04
apiology Aug 26, 2026
1111810
Fix block param binding for a splat-typed yield signature
apiology Aug 26, 2026
3adeada
Reword warm_enclosing_rebind_cache docstring
apiology Aug 26, 2026
0b97e98
Add coverage for Intersection#erase_parameters/conforms_to? and BaseV…
apiology Aug 26, 2026
f4b7796
Merge latest castwide/solargraph#1297: narrow via instance_of?/kind_of?/
apiology Aug 27, 2026
94117b5
Deduplicate flow_sensitive_typing narrowing specs, fix raise-clause h…
apiology Aug 27, 2026
42695a9
Regenerate .rubocop_todo.yml
apiology Aug 27, 2026
d8fe991
Merge castwide/solargraph#1329: leave unbound namespace generic
apiology Aug 27, 2026
e77de02
Merge latest castwide/solargraph#1231: intersection types
apiology Aug 27, 2026
015a239
Merge apiology/solargraph#63: check keyword arguments passed
apiology Aug 27, 2026
d0ce191
Fix UniqueType#qualify flattening key/subtype positions
apiology Aug 27, 2026
80439c1
Fix UniqueType#qualify flattening key/subtype positions
apiology Aug 27, 2026
b456a31
Remove Bench#source_map_hash sg-ignore made unneeded
apiology Aug 27, 2026
7810b6b
Remove spec asserting literal-widening qualify kept
apiology Aug 27, 2026
5465939
Merge latest apiology/solargraph#63: remove stale spec and sg-ignore
apiology Aug 27, 2026
62eb9b6
Merge castwide/solargraph#1282: update a parameter's flow-sensitive t…
apiology Aug 27, 2026
2ed2c8f
Rename warm_enclosing_rebind_cache to maybe_rebind_closure
apiology Aug 27, 2026
c14cee5
Cover instance_variable_defined? narrowing branches
apiology Aug 27, 2026
4d244de
Restore UniqueType#narrow_with and helpers
apiology Aug 27, 2026
ee5cd34
Add spec coverage for UniqueType#narrow_with and helpers
apiology Aug 27, 2026
5be11da
Merge apiology/solargraph#68: Kernel#send doesn't work with splat blocks
apiology Aug 27, 2026
8afa152
Fix Ruby-4.0-vs-3.2.6 sg-ignore split from the #68 merge
apiology Aug 27, 2026
c532d83
Merge latest castwide/solargraph#1310: 7 new commits
apiology Aug 27, 2026
dd2bc51
Suppress ComplexType#narrow_with union-select finding
apiology Aug 27, 2026
2aaffe0
Fix intersect_with crash on a bare UniqueType
apiology Aug 27, 2026
2d34cfe
Destructure process_node tuple instead of calling .first
apiology Aug 27, 2026
1c987d5
Merge castwide/master to resolve staleness before CI
apiology Aug 28, 2026
00987df
Merge castwide/master to resolve PR #1223 conflicts
apiology Aug 28, 2026
d77e367
Narrow is_a?/nil? guards at file and class-body scope
apiology Aug 28, 2026
f82b9d7
Merge branch 'apiology-1196-literal-inference' into fix/issue-1242-fi…
apiology Aug 29, 2026
052dbd6
Merge latest castwide/solargraph#1310: 8 new commits
apiology Aug 29, 2026
5bbac56
Merge pull request #39 from apiology/fix/issue-1242-fixed-arity-gener…
apiology Aug 29, 2026
df8d83b
Read message.result instead of process's return value
apiology Aug 29, 2026
3362591
Add rules.rb entries for restarg's sg-ignore comments
apiology Aug 29, 2026
4e63933
Add regression specs for PR 1245 undercover coverage gaps
apiology Aug 29, 2026
4fbc451
Drop require_literal's permissive fallback pass
apiology Aug 29, 2026
1ccefd0
Drop redundant respond_to? guard in self-exclusion
apiology Aug 28, 2026
a41de8b
Derive identity_discriminator from hash, not inspect
apiology Aug 29, 2026
af17dcd
Cover the definition-profile Vernier.profile block
apiology Aug 29, 2026
69bf496
Note str literal gap; add pending spec for PR 1223
apiology Aug 29, 2026
37f28c1
Restore dropped union-conformance specs for Intersection#conforms_to?
apiology Aug 29, 2026
49979f1
Merge castwide/solargraph#1245: nil-safety and dead-code fixes
apiology Aug 29, 2026
3520e3c
Merge apiology/2026-08-04: pick up pushed intersection.rb spec restor…
apiology Aug 29, 2026
3beb71e
Merge latest castwide/solargraph#1245: 2 new commits (undercover cove…
apiology Aug 29, 2026
b7b2dca
Fix Ruby-3.4-fragile assertion in Vernier profile spec
apiology Aug 29, 2026
2b077f7
Match UniqueType#narrow_with's conjunct check order
apiology Aug 29, 2026
46f14f5
Merge remote-tracking branch 'origin/master' into gh-fix-1249
apiology Aug 31, 2026
678c64e
Merge remote-tracking branch 'origin/master' into worktree-fix-1254-n…
apiology Aug 31, 2026
419f0c9
Merge remote-tracking branch 'origin/master' into worktree-backfill-r…
apiology Aug 31, 2026
98c0404
Merge remote-tracking branch 'origin/master' into structural-rbs-inte…
apiology Aug 31, 2026
9a7e61e
Merge remote-tracking branch 'origin/master' into fix-raise-abort-bot…
apiology Aug 31, 2026
8799cb2
Merge remote-tracking branch 'origin/master' into fix-1257-duck-type-…
apiology Aug 31, 2026
15f7331
Merge remote-tracking branch 'origin/master' into fix-1296-literal-eq…
apiology Aug 31, 2026
75c423b
Merge remote-tracking branch 'origin/master' into fix-1303-class-new-…
apiology Aug 31, 2026
83c4870
Merge remote-tracking branch 'origin/master' into fix-gempin-classnew
apiology Aug 31, 2026
01f2fdb
Merge remote-tracking branch 'origin/master' into fix-narrowing-shapes
apiology Aug 31, 2026
956c963
Merge remote-tracking branch 'origin/master' into pin-cli-ux
apiology Aug 31, 2026
d45ceb3
Merge remote-tracking branch 'origin/master' into block-reassign-infer
apiology Aug 31, 2026
65286f8
Merge branch 'master' into 2026-08-04
apiology Sep 1, 2026
8775cc0
Merge branch 'master' into fix-exclude-conformance
apiology Sep 1, 2026
bef9cb9
Merge branch 'apiology-1196-literal-inference' into destructuring-on-…
apiology Sep 1, 2026
fa917d2
Fix merge
apiology Sep 1, 2026
ff472bb
Fix merge
apiology Sep 1, 2026
efd6959
Merge remote-tracking branch 'apiology/fix-raise-abort-bot-type' into…
apiology Sep 1, 2026
5e6f721
Trim comments per review feedback on #1223
apiology Sep 1, 2026
1549994
Merge remote-tracking branch 'origin/master' into pr1223-comment-styl…
apiology Sep 1, 2026
0fcce31
Re-pin solargraph-rspec to the prereleases-testing fork
apiology Sep 1, 2026
13200ab
Merge remote-tracking branch 'castwide-gh/master' into cmtstyle-1231
apiology Sep 1, 2026
3e5c596
Trim review comments and fix sg-ignore slugs
apiology Sep 1, 2026
f1d8e6c
Name the actual gap in namespace_kind's sg-ignore
apiology Sep 1, 2026
45e9aeb
Port CI matrix bump and regression spec from #1228
apiology Sep 1, 2026
5078d15
Trim comment style in structural interface conformance
apiology Sep 1, 2026
a2780ea
Trim oversized comments in FlowSensitiveTyping and BaseVariable
apiology Sep 1, 2026
124d9aa
Trim PR 1259 comments and fix a wrong sg-ignore label
apiology Sep 1, 2026
4ef603d
Drop changelog comment from gemspec_spec.rb
apiology Sep 1, 2026
04ffe61
Trim more comment-style violations found on #1223
apiology Sep 1, 2026
881657c
Fix nil incorrectly simplifying to NilClass
apiology Sep 1, 2026
4bc1b41
Re-pin solargraph-rspec back to plain lekemula/main
apiology Sep 1, 2026
bdc2506
Finish trimming comment style in interface conformance
apiology Sep 1, 2026
8da5ae2
Trim intersect_with duck-type comment to 2 lines
apiology Sep 1, 2026
e9962ce
Generate Intersection/Union/Optional/Tuple as tag strings
apiology Sep 1, 2026
6b12401
Fix flow-sensitive-typing markers per review
apiology Sep 1, 2026
c7f8334
Merge remote-tracking branch 'castwide-gh/master' into cmtstyle-1311
apiology Sep 1, 2026
92a30e2
Address review comments on PR 1311
apiology Sep 1, 2026
66da978
Trim assignment_closure docstring to 2 lines
apiology Sep 1, 2026
f8a34a7
Add @sg-ignore for stub duck-narrowing gap
apiology Sep 1, 2026
388ab11
Merge remote-tracking branch 'castwide-gh/master' into cmtstyle-1325
apiology Sep 1, 2026
5d1ab44
Tighten comments per review, drop unneeded @sg-ignore
apiology Sep 1, 2026
c024573
Merge remote-tracking branch 'castwide-gh/master' into cmtstyle-1328
apiology Sep 1, 2026
b3f58d8
Apply review comment-style fixes to PR 1328
apiology Sep 1, 2026
baaa4b3
Narrow intersection conjuncts by argument fit, not hash keys
apiology Sep 1, 2026
6657068
Add spec coverage for UniqueType#narrow_with and helpers
apiology Aug 27, 2026
abfcf73
Cover BaseVariable splat inference and downcast equality branches
apiology Sep 1, 2026
5d4b5cc
Merge branch 'master' of https://github.com/castwide/solargraph into …
apiology Sep 1, 2026
40c0f65
Fix downcast keyword name in the new equality spec
apiology Sep 1, 2026
ccd00f4
Infer Hash{K=>V} from literal key/value pairs in Chain::Hash
apiology Aug 25, 2026
17c6e1c
Cover Intersection#erase_parameters/#conforms_to?
apiology Sep 1, 2026
a42b900
Revert "Merge castwide/solargraph#1278: fix ENV[] typechecking"
apiology Sep 1, 2026
22cd364
Cover presence in BaseVariable#eql?/#hash
apiology Sep 1, 2026
232e239
Merge remote-tracking branch 'castwide-gh/master' into split-1282-com…
apiology Sep 1, 2026
12d993c
Cover the nil-location tiebreak in CompoundStatement#combine_with
apiology Sep 1, 2026
790c2ba
Merge remote-tracking branch 'castwide-gh/master' into split-60-destr…
apiology Sep 1, 2026
d506aea
Cover the partial-result keep when a sibling position is generic
apiology Sep 1, 2026
6a2b5f5
Trim comments to house style
apiology Sep 1, 2026
78ad231
Cover scan's per-pin typify/probe and verbose branches
apiology Sep 1, 2026
c8586e1
Merge remote-tracking branch 'apiology/fix-1250-parameter-reassignmen…
apiology Sep 2, 2026
480418d
Revert "Fix flow-sensitive narrowing not propagating into a fresh loc…
apiology Sep 2, 2026
0e97647
Revert "Stop Intersection#transform renaming every conjunct"
apiology Sep 2, 2026
84b940d
Revert "Degrade an unparseable tag to no-methods instead of aborting …
apiology Sep 2, 2026
77dc333
Revert "Narrow receivers through respond_to? guards as duck types"
apiology Sep 2, 2026
ba99c61
Stop Intersection#transform renaming every conjunct
apiology Aug 17, 2026
589d703
Port 2824fc2e identity-comparison fix onto this branch
apiology Sep 2, 2026
85daef4
Annotate atypes array for strong typecheck
apiology Sep 2, 2026
8876e95
Cover choose's rescue branch and Shell#do_cache
apiology Sep 2, 2026
b3b2be3
Cover new resolve param and equality_fields on PR 1249
apiology Sep 2, 2026
3c3d60b
Merge master into pin-caching-3-pincache-core
apiology Sep 2, 2026
720e53c
Add UniqueType#select instead of a .to_a workaround
apiology Sep 2, 2026
75f1375
Point run_solargraph_rspec_specs CI at the precision fix branch
apiology Sep 2, 2026
d4fd429
Merge branch 'apiology-1196-literal-inference' into destructuring-on-…
apiology Sep 2, 2026
3c706de
Rename block-local result vars in Call#inferred_pins
apiology Sep 2, 2026
c2a4246
Cover PinCache.uncache_by_prefix and .exist?
apiology Sep 1, 2026
f17c153
Cover UniqueType.parse bad-delimiter raise
apiology Sep 1, 2026
cffbc22
Cover UniqueType#exclude
apiology Sep 1, 2026
027e8dd
Cover YardMap::Cache#get_path_pins and DomainDirective.closure_at
apiology Aug 26, 2026
1dddc0a
Cover Chain::Call directive fallthrough branch
apiology Sep 1, 2026
891e4d6
Revert "Cover UniqueType#exclude"
apiology Sep 3, 2026
15223d2
Add spec for Chain::Or's nil-lhs-type branch
apiology Sep 3, 2026
6898dda
Cover UniqueType#exclude nil short-circuit
apiology Sep 3, 2026
f8a1fa3
Drop unneeded @sg-ignore in Workspace::Gemspecs
apiology Sep 3, 2026
d35adb1
Merge castwide/solargraph#1297 at 720e53c5e
apiology Sep 3, 2026
45394ed
Restore process_respond_to from upstream #1297
apiology Sep 3, 2026
24c691e
Dispatch Bundler::StubSpecification#stub via send
apiology Sep 4, 2026
f3e5fba
Merge castwide/solargraph#1297 at 720e53c5e
apiology Sep 4, 2026
467b41d
Merge drop-sg-ignore-gemspecs-177
apiology Sep 4, 2026
79d1c31
Add coverage for namespace-qualified Class.new assignment
apiology Aug 26, 2026
dcc707b
Cover the nil-location tiebreak in CompoundStatement#combine_with
apiology Sep 1, 2026
d2cb6eb
Cover the directive path in Call#inferred_pins
apiology Sep 4, 2026
99bbb41
Cover Logging#logger custom-level branch
apiology Sep 4, 2026
c469abc
Cover the masgn unmatched-target debug message
apiology Sep 4, 2026
f2fc159
Merge remote-tracking branch 'refs/remotes/pr1252/head' into 2026-08-04
apiology Sep 4, 2026
c427312
Merge remote-tracking branch 'refs/remotes/pr1259/head' into 2026-08-04
apiology Sep 4, 2026
88c638a
Merge remote-tracking branch 'refs/remotes/pr1262/head' into 2026-08-04
apiology Sep 4, 2026
128e4b6
Merge remote-tracking branch 'refs/remotes/pr1277/head' into 2026-08-04
apiology Sep 4, 2026
6b6b997
Delete dead empty-array arm in Array#resolve
apiology Sep 4, 2026
743b69e
Delete unreachable rbs_pin nil branch in combine
apiology Sep 4, 2026
acf2cd4
Point the rspec plugin job at solargraph-rspec PR 36
apiology Sep 4, 2026
8563849
Correct the #1259 merge resolution
apiology Sep 4, 2026
f9fbaa5
Merge remote-tracking branch 'refs/remotes/pr1306/head' into 2026-08-04
apiology Sep 4, 2026
e4405fa
Merge remote-tracking branch 'refs/remotes/pr1311/head' into 2026-08-04
apiology Sep 4, 2026
bf925e0
Merge remote-tracking branch 'refs/remotes/pr1328/head' into 2026-08-04
apiology Sep 4, 2026
7575be2
Point rspec plugin CI at solargraph-rspec pull/36
apiology Sep 4, 2026
920aa8a
Merge remote-tracking branch 'castwide-gh/master' into sync-1281-master
apiology Sep 4, 2026
0088d26
Merge commit '743b69e60c38934f139487923a8b3cbdf5bd847a' into 2026-08-04
apiology Sep 4, 2026
08390a9
Merge commit '79d1c31706acc352eeb57b3925744a81d4a1be2b' into 2026-08-04
apiology Sep 4, 2026
81c9f3d
Merge commit 'd2cb6ebcc568c48c666397706ebceca46d364cfd' into 2026-08-04
apiology Sep 4, 2026
66adce5
Remove dead TypeMethods#qualify
apiology Sep 4, 2026
a5b1f1b
Merge remote-tracking branch 'pr/1223' into 2026-08-04
apiology Sep 4, 2026
5eda9fe
Revert "Demo only: point plugin CI at the solargraph-rails Array#sum …
apiology Sep 4, 2026
3f6d023
Cover UniqueType#literal_keyed? false branch
apiology Sep 2, 2026
99fc26b
Extract SOLARGRAPH_LOG parsing into resolve_level
apiology Sep 4, 2026
87ffcf6
Cover RBS prepend member conversion
apiology Sep 4, 2026
0aa9e65
Remove uncalled RbsTranslator.build_unique_type
apiology Sep 4, 2026
045a0be
Merge castwide/solargraph#1231 into 2026-08-04
apiology Sep 4, 2026
cc8cfb5
Drop the inferred-is-an-interface conformance escape
apiology Sep 4, 2026
71b0990
Override Hash key lookups back to the K parameter
apiology Sep 4, 2026
b692a4f
Exclude only same-named pins on self-reference
apiology Sep 4, 2026
556ccab
Treat a quoted string literal as opaque while parsing
apiology Sep 4, 2026
dca4f1e
Infer a literal type for string literals
apiology Sep 4, 2026
2ee077b
Regenerate .rubocop_todo.yml
apiology Sep 4, 2026
c74d9bf
Revert "Exclude only same-named pins on self-reference"
apiology Sep 5, 2026
699b303
Merge apiology-1196-literal-inference
apiology Sep 5, 2026
edfc8cc
Merge the revert of the self-reference name guard
apiology Sep 5, 2026
a435edb
Merge fix-1229-intersection-types
apiology Sep 5, 2026
37e6134
Take PR 1231's version of the intersection round-trip spec
apiology Sep 5, 2026
4ecbc4a
Merge structural-rbs-interface-conformance
apiology Sep 5, 2026
fe57bf2
Merge fix-1255-rbs-type-alias-expansion
apiology Sep 5, 2026
6f299ac
Drop sg-ignore markers the merged branches made unneeded
apiology Sep 5, 2026
dc4c4c1
Merge destructuring-on-1223
apiology Sep 5, 2026
37e7e87
Restore two sg-ignore markers CI still needs
apiology Sep 5, 2026
91dcde9
Merge pin-cli-ux
apiology Sep 5, 2026
7c8211b
Merge fix-exclude-conformance
apiology Sep 5, 2026
8feb6f7
Suppress the nilable Hash#fetch key in Logging.resolve_level
apiology Sep 5, 2026
5eacc88
Merge fix-1257-duck-type-own-method
apiology Sep 5, 2026
d2e1113
Merge gh-fix-1249
apiology Sep 5, 2026
269c9f8
Delete the duplicated NodeChainer#hash_pairs
apiology Sep 5, 2026
94e4c1f
Merge fix-narrowing-shapes
apiology Sep 5, 2026
6877ea1
Merge fix-masgn-splat
apiology Sep 5, 2026
8a2a2ee
Cover a non-splat masgn target of a non-collection type
apiology Sep 5, 2026
8b8cef3
Merge fix-masgn-splat
apiology Sep 5, 2026
05594a7
Address review comments on or-chain narrowing
apiology Sep 5, 2026
ebd845f
Drop duck-type narrowing from respond_to? guards
apiology Sep 5, 2026
fac0656
Make FlowSensitiveTyping's closure a required argument
apiology Sep 5, 2026
f3f2694
Remove stray blank line from respond_to? removal
apiology Sep 5, 2026
dbf48b4
Compress oversized comment blocks to policy length
apiology Sep 5, 2026
21ab81a
Drop three @sg-ignore markers now unneeded
apiology Sep 5, 2026
bfb10e7
Add the deferred nil checks and drop dead markers
apiology Sep 5, 2026
c1e692b
Drop the unused closure fallback
apiology Sep 6, 2026
32110ad
Restore two dropped facts and fix a duplicate tag
apiology Sep 6, 2026
086e875
Drop process_condition pass-through
apiology Sep 6, 2026
8e130a2
Push every CompoundStatement pin onto pins
apiology Sep 6, 2026
fb6d722
Combine 1282 and 1308 flow-sensitive typing work
apiology Sep 6, 2026
5c7889b
Move dominance decision into var_at_location
apiology Sep 6, 2026
243ba21
Merge castwide/solargraph#1259: flow-sensitive typing narrowing fixes
apiology Sep 9, 2026
fd3e7f7
Merge castwide/solargraph#1338: narrow after reassignment
apiology Sep 9, 2026
8c29884
Merge castwide/solargraph#1297: kind_of?/is_a? narrowing
apiology Sep 9, 2026
daea67c
Suppress 3 more gaps exposed by the #1297 respond_to? fix
apiology Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 37 additions & 6 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,14 @@ jobs:

- name: Run rbs validate
run: bundle exec rbs validate
# @todo Temporary, expect to revert in 0.60
continue-on-error: true
rubocop_todo:
name: .rubocop_todo.yml
continue-on-error: true
runs-on: ubuntu-latest
# Needed only so the auto-update step (push-to-master only, below) can
# push a commit back to the branch it checked out.
permissions:
contents: write

steps:
- uses: actions/checkout@v3
Expand All @@ -116,14 +119,19 @@ jobs:

- name: Run RuboCop
run: bundle exec rubocop -c .rubocop.yml
# @todo Temporary, expect to revert in 0.60
continue-on-error: true

# PRs and other non-master events: contributors are expected to have
# regenerated .rubocop_todo.yml locally and committed it; fail with the
# diff if they didn't. We can't auto-push here because GITHUB_TOKEN
# can't write to a fork's branch, which is where most PRs come from.
- name: Run RuboCop against todo file
continue-on-error: true
if: github.event_name != 'push' || github.ref != 'refs/heads/master'
run: |
cmd="bundle exec rubocop --auto-gen-config --exclude-limit=5 --no-offense-counts --no-auto-gen-timestamp"
${cmd:?}
# --auto-gen-config's exit code reflects the underlying offense count,
# not whether new offenses were introduced; the git diff check below
# is the actual pass/fail signal.
${cmd:?} || true
set +e
if [ -n "$(git status --porcelain)" ]
then
Expand All @@ -132,3 +140,26 @@ jobs:
>&2 echo "Please address any new issues, then run '${cmd:?}' and push up any improvements"
exit 1
fi

# master only: the "Run RuboCop" step above already proved the tree is
# clean against the current .rubocop_todo.yml, so any diff here can only
# be a shrink (offenses that got fixed without their todo entry being
# removed) -- never a new offense. Commit and push that cleanup instead
# of asking someone to do it by hand.
- name: Auto-update .rubocop_todo.yml
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
continue-on-error: true
run: |
cmd="bundle exec rubocop --auto-gen-config --exclude-limit=5 --no-offense-counts --no-auto-gen-timestamp"
${cmd:?} || true
if [ -n "$(git status --porcelain -- .rubocop_todo.yml)" ]
then
git diff -u -- .rubocop_todo.yml
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .rubocop_todo.yml
git commit -m "Auto-update .rubocop_todo.yml [skip ci]"
git push origin HEAD:master
else
echo "No .rubocop_todo.yml cleanup needed."
fi
17 changes: 6 additions & 11 deletions .github/workflows/plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ jobs:
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level strong
# @todo Temporary, expect to revert in 0.60
continue-on-error: true
- name: Ensure specs still run
run: bundle exec rake spec
rails:
Expand Down Expand Up @@ -80,8 +78,6 @@ jobs:
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level strong
# @todo Temporary, expect to revert in 0.60
continue-on-error: true
- name: Ensure specs still run
run: bundle exec rake spec
rspec:
Expand Down Expand Up @@ -113,8 +109,6 @@ jobs:
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level strong
# @todo Temporary, expect to revert in 0.60
continue-on-error: true
- name: Ensure specs still run
run: bundle exec rake spec

Expand All @@ -126,10 +120,13 @@ jobs:
BUNDLE_PATH: ${{ github.workspace }}/../solargraph-rspec/vendor/bundle
steps:
- uses: actions/checkout@v3
- name: clone https://github.com/lekemula/solargraph-rspec/
# lekemula/solargraph-rspec#36 raises the expectations this branch's
# more precise Array literal inference now satisfies.
- name: clone https://github.com/lekemula/solargraph-rspec/ pull/36
run: |
cd ..
git clone https://github.com/lekemula/solargraph-rspec.git
# git clone https://github.com/lekemula/solargraph-rspec.git
git clone --branch fix-hash-literal-type-precision https://github.com/apiology/solargraph-rspec.git
cd solargraph-rspec
- name: Set up Ruby
uses: ruby/setup-ruby@v1
Expand Down Expand Up @@ -192,7 +189,7 @@ jobs:
# solargraph-rails supports Ruby 3.0+
# This job uses 3.2 due to a problem compiling sqlite3 in earlier versions
ruby-version: '3.2'
bundler-cache: false
bundler-cache: true
# https://github.com/apiology/solargraph/actions/runs/19400815835/job/55508092473?pr=17
rubygems: latest
bundler: latest
Expand Down Expand Up @@ -231,5 +228,3 @@ jobs:
ALLOW_IMPROVEMENTS=true bundle exec rake spec
env:
MATRIX_RAILS_VERSION: "7.0"
# @todo Temporary, expect to revert in 0.60
continue-on-error: true
27 changes: 21 additions & 6 deletions .github/workflows/rspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,28 @@ jobs:
# It currently 404s ("Unavailable version head for ruby"), failing CI:
# https://github.com/castwide/solargraph/actions/runs/25863741955/job/76000137015?pr=1187
ruby-version: ['3.1', '3.2', '3.3', '3.4', '4.0']
rbs-version: ['3.10.0', '4.0.0', '4.0.1', '4.0.2']
rbs-version: ['3.10.0', '4.0.3', '4.1.1']
exclude:
- ruby-version: '3.1'
rbs-version: '4.0.0'
rbs-version: '4.0.3'
- ruby-version: '3.1'
rbs-version: '4.0.1'
- ruby-version: '3.1'
rbs-version: '4.0.2'
rbs-version: '4.1.1'
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
# Without this pin, ruby/setup-ruby uses whatever bundler ships
# with each matrix Ruby version individually, rather than one
# consistent version across the matrix. Confirmed by removing
# it: stdlib/default-gem resolution changed enough that
# Workspace::Gemspecs#resolve_require('yaml') started returning
# nil, failing spec/api_map_method_spec.rb's YAML test across
# most of the matrix. Keep this in sync with Gemfile.lock's
# BUNDLED WITH version, and with the same pin below.
bundler: 2.5.23
- name: Set rbs version
run: echo "gem 'rbs', '${{ matrix.rbs-version }}'" >> .Gemfile
# /home/runner/.rubies/ruby-head/lib/ruby/gems/3.5.0+2/gems/rbs-3.9.4/lib/rbs.rb:11:
Expand All @@ -57,6 +64,7 @@ jobs:
run: bundle exec rake spec
undercover:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -67,11 +75,18 @@ jobs:
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
# See the matching pin in the rspec matrix job above for why
# this is needed - keep both in sync with Gemfile.lock's
# BUNDLED WITH version.
bundler: 2.5.23
bundler-cache: true
- name: Install gems
run: |
bundle _2.5.23_ install
bundle update rbs # use latest available for this Ruby version
- name: Update types
run: bundle exec rbs collection update
- name: Run tests
run: bundle exec rake spec
- name: Check PR coverage
run: bundle exec rake undercover
continue-on-error: true
2 changes: 0 additions & 2 deletions .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,3 @@ jobs:
run: bundle exec rbs collection install
- name: Typecheck self
run: SOLARGRAPH_ASSERTS=on bundle exec solargraph typecheck --level strong
# @todo Temporary, expect to revert in 0.60
continue-on-error: true
10 changes: 7 additions & 3 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ inherit_from: .rubocop_todo.yml
AllCops:
NewCops: enable
Exclude:
- "spec/fixtures/invalid_byte.rb"
- "spec/fixtures/invalid_node_comment.rb"
- "spec/fixtures/invalid_utf8.rb"
- "spec/fixtures/invalid_*.rb"
- "spec/fixtures/gem-with-yard-macros/**/*"
- "vendor/**/*"
- "vendor/**/.*"
Expand Down Expand Up @@ -92,6 +90,12 @@ Metrics/PerceivedComplexity:
Max: 40
RSpec/ExampleLength:
Max: 310
# Autocorrect mangles short-style Hash tags with nested generics/parens
# (e.g. Hash{Array(String, Array<String>) => String}) into invalid syntax.
# Confirmed broken through rubocop-yard 1.3.0 (latest as of this writing),
# against yard 0.9.45 (also latest as of this writing).
YARD/CollectionStyle:
Enabled: false

plugins:
- rubocop-rspec
Expand Down
Loading
Loading