Skip to content

feat(luau): convert 41 trivial files to --!strict typing - #671

Merged
Quenty merged 3 commits into
mainfrom
claude/luau-strict-typing-9CjQp
May 20, 2026
Merged

feat(luau): convert 41 trivial files to --!strict typing#671
Quenty merged 3 commits into
mainfrom
claude/luau-strict-typing-9CjQp

Conversation

@Quenty

@Quenty Quenty commented Feb 28, 2026

Copy link
Copy Markdown
Owner

Converts 32 simple Luau files (constants, TieDefinition interfaces, BinderProvider registrations, factory returns, and small utilities) from --!nonstrict to --!strict, with explicit type annotations added to KinematicUtils, IKRigUtils, TeamKillTrackerUtils, PlayerKillTrackerUtils, and RoguePropertyBaseValueTypeUtils where needed. A follow-up revert keeps six files at --!nonstrict: three test/modules files where script.Parent.loader cannot be resolved from the root sourcemap, and three (BodyColorsDataConstants and the two gameproductservice interface modules) whose strict types broke already-strict downstream consumers.

@github-actions

github-actions Bot commented Feb 28, 2026

Copy link
Copy Markdown

Deploy Results

Package Status Try it
@quenty/integration ✅ Deployed (v60) (37.6s) Open in Roblox

1 deployed, 1 passed, 0 failed in 37.6s · View logs

Test Results

Package Status Try it
@quenty/chatproviderservice ✅ Passed (3/3) (1.4s) Open in Roblox
@quenty/clipcharacters ✅ Passed (1/1) (1.1s) Open in Roblox
@quenty/cmdrservice ✅ Passed (880ms) Open in Roblox
@quenty/gameconfig ✅ Passed (1.4s) Open in Roblox
@quenty/gameproductservice ✅ Passed (1.3s) Open in Roblox
@quenty/secrets ✅ Passed (2/2) (1.2s) Open in Roblox
@quenty/settings ✅ Passed (5/5) (1.4s) Open in Roblox
@quenty/settings-inputkeymap ✅ Passed (1/1) (1.4s) Open in Roblox
@quenty/deathreport ✅ Passed (4/4) (1.1s) Open in Roblox
@quenty/ik ✅ Passed (3/3) (1.2s) Open in Roblox
@quenty/rogue-humanoid ✅ Passed (1.5s) Open in Roblox
@quenty/rogue-properties ✅ Passed (2/2) (1.6s) Open in Roblox
@quenty/soundgroup ✅ Passed (4/4) (1.2s) Open in Roblox
@quenty/snackbar ✅ Passed (3/3) (1.1s) Open in Roblox

14 tested, 14 passed, 0 failed in 27.0s · View logs

Convert small, simple Luau files from --!nonstrict to --!strict. These
are files with straightforward patterns (constants, TieDefinition
interfaces, BinderProvider registrations, factory returns, and simple
utility functions) where strict mode requires no structural changes.

Files needing type annotations (KinematicUtils, IKRigUtils,
TeamKillTrackerUtils, PlayerKillTrackerUtils,
RoguePropertyBaseValueTypeUtils) received explicit parameter and return
type annotations.

https://claude.ai/code/session_01BXcv4dUAUw7hWPE5F5nRPL
@Quenty
Quenty force-pushed the claude/luau-strict-typing-9CjQp branch from d516d27 to 0edcac1 Compare February 28, 2026 04:03
The test/modules files (TestInputKeyMap, OpenableInterface,
ActionInterface) cannot resolve script.Parent.loader from the root
sourcemap, so strict mode produces "Unknown require" errors. All
existing test/modules files use --!nonstrict.

BodyColorsDataConstants and the two gameproductservice interfaces leak
strict types to downstream consumers (BodyColorsDataUtils,
GameProductDataService, GameProductService), which fail with iteration
and TieDefinition type-inference errors.
@Quenty
Quenty merged commit 506c280 into main May 20, 2026
9 checks passed
@Quenty
Quenty deleted the claude/luau-strict-typing-9CjQp branch May 20, 2026 00:32
@Quenty Quenty added the released This issue/pull request has been released. label May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released This issue/pull request has been released.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants