Skip to content

Infer function return types & CI failure details#240

Merged
adrai merged 2 commits into
i18next:mainfrom
LudvigHz:infer-function-return-types
Apr 20, 2026
Merged

Infer function return types & CI failure details#240
adrai merged 2 commits into
i18next:mainfrom
LudvigHz:infer-function-return-types

Conversation

@LudvigHz
Copy link
Copy Markdown
Contributor

This PR does two things (can split if that's better):

  • Infer function return types from body for finite dynamic key resolution
    Should extract keys and dynamic keys content that results from function calls with an easily
    inferable output type.

  • Print details of changes for extract --ci
    I've had issues with the extraction being flaky with difficulty of reproducing locally. I suspect
    there is a race-condition in the extractor. This should help to see where the problem lies, as
    well as being generally useful to see what keys are missing when the failure is expected.

Checklist

  • only relevant code is changed (make a diff before you submit the PR)
  • run tests npm run test
  • tests are included
  • commit message and code follows the Developer's Certification of Origin

LudvigHz and others added 2 commits April 15, 2026 18:47
When a function has no explicit return-type annotation, walk its body's
return statements and union the statically-resolvable string values so
t(fn()) and t(`...${x}...`) with `const x = fn()` expand correctly. Also
persist captured return sets in a shared cross-file table (populated in
the pre-scan pass, alongside enums) so imported functions resolve just
like in-file ones.

Explicit annotations remain authoritative: `: string` still returns no
keys rather than falling back to body inference.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Prints a summary of what changes would have been applied when running
with --ci. This makes it alot easier to see why the command fails in CI
environments.
@adrai adrai merged commit f598394 into i18next:main Apr 20, 2026
8 checks passed
adrai added a commit that referenced this pull request Apr 20, 2026
@adrai
Copy link
Copy Markdown
Member

adrai commented Apr 20, 2026

thx, included in v1.55.0

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