Skip to content

Add singleton(X)[Y] type support#570

Merged
Morriar merged 3 commits into
mainfrom
singleton-type-args
Mar 25, 2026
Merged

Add singleton(X)[Y] type support#570
Morriar merged 3 commits into
mainfrom
singleton-type-args

Conversation

@Morriar

@Morriar Morriar commented Mar 24, 2026

Copy link
Copy Markdown
Contributor

Implements bidirectional support for singleton(X)[Y]T.class_of(X)[Y].

Now that RBS 4.0.1 ships singleton(X)[Y] syntax (ruby/rbs#2502), we can properly round-trip this type instead of dropping the type parameter.

Changes

  • Bump rbs dependency to >= 4.0.1
  • TypeTranslator: translate singleton(X)[Y]T.class_of(X)[Y]
  • RBSPrinter: print T.class_of(X)[Y]singleton(X)[Y]

Step towards https://github.com/Shopify/team-ruby-dx/issues/1460
Supersedes #558

@Morriar Morriar requested a review from a team as a code owner March 24, 2026 22:34
Translates RBS singleton(X)[Y] to T.class_of(X)[Y] and vice versa.

RBS 4.0.1 added type argument support to ClassSingleton (ruby/rbs#2502),
enabling parity with Sorbet's T.class_of(X)[Y] syntax.
@Morriar Morriar force-pushed the singleton-type-args branch from 5b2e47e to 513e7b8 Compare March 24, 2026 22:38
@Morriar Morriar merged commit 0689796 into main Mar 25, 2026
8 checks passed
@Morriar Morriar deleted the singleton-type-args branch March 25, 2026 14:26
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.

2 participants