Skip to content

Evaluate TypeScript expression wrappers in NodePath#evaluate - #18151

Merged
nicolo-ribaudo merged 2 commits into
babel:mainfrom
CINC0S:fix-11712-typescript-evaluate
Sep 30, 2026
Merged

nicolo-ribaudo merged 2 commits into
babel:mainfrom
CINC0S:fix-11712-typescript-evaluate

Conversation

@CINC0S

@CINC0S CINC0S commented Jul 22, 2026

Copy link
Copy Markdown
Q A
Fixed Issues? Fixes #11712
Patch: Bug Fix? Yes
Major: Breaking Change? No
Minor: New Feature? No
Tests Added + Pass? Yes
Documentation PR Link N/A
Any Dependency Changes? No
License MIT

Teach NodePath#evaluate() to unwrap runtime-transparent TypeScript assertion expressions, matching Babel's existing treatment of Flow casts and parenthesized expressions.

The regression coverage verifies as, satisfies, angle-bracket type assertions, and non-null assertions through a referenced binding.

Validation:

  • yarn node Makefile.js build-no-bundle
  • yarn jest packages/babel-traverse/test/evaluation.js --runInBand — 42 tests passed
  • yarn jest babel-traverse --runInBand — 18 suites, 656 tests, and 57 snapshots passed; 1 test skipped
  • yarn eslint packages/babel-traverse/src/path/evaluation.ts packages/babel-traverse/test/evaluation.js
  • git diff --check
  • Independent review: Approve, with no actionable findings

@babel-bot

babel-bot commented Jul 22, 2026 •

Copy link
Copy Markdown
Collaborator

Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/61961

@pkg-pr-new

pkg-pr-new Bot commented Jul 22, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

commit: 71c9167

@CINC0S

CINC0S commented Jul 22, 2026

Copy link
Copy Markdown
Author

@codex

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 62ea3f6f22

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/babel-traverse/src/path/evaluation.ts Outdated
@nicolo-ribaudo

Copy link
Copy Markdown
Member

Please see these paragraphs from our AI policy:

  • Any prose that is LLM-generated (issue comments, commit descriptions) must be explicitly marked as such, with a disclaimer before the text itself.
  • You are not allowed to post LLM-generated PR descriptions: they must be your own writing, showing that you understand the code you are contributing.

I'm pretty confident that at least the "Validation" section in your PR description is fully LLM-generated. Please avoid doing so in the future.

@nicolo-ribaudo

Copy link
Copy Markdown
Member

Oh well, this is older than the AI policy. I'll review.

@github-actions

Copy link
Copy Markdown

Thanks for opening this pull request! 🎉

We really appreciate you taking the time to contribute, @CINC0S.

A maintainer will take a look as soon as they can. In the meantime, please make sure that:

  • the description explains what changed and why
  • any related issues are linked
  • existing tests still pass

If anything needs adjusting we'll leave comments here. Thanks again!

@github-actions

Copy link
Copy Markdown

Insufficient data

Not enough activity yet to make a reliable assessment.

View full analysis →

This is an automated analysis by AgentScan

@nicolo-ribaudo nicolo-ribaudo added the PR: Bug Fix 🐛 A type of pull request used for our changelog categories label Sep 30, 2026
@nicolo-ribaudo nicolo-ribaudo changed the title Evaluate TypeScript expression wrappers in NodePath#evaluate Evaluate TypeScript expression wrappers in NodePath#evaluate Sep 30, 2026
@nicolo-ribaudo
nicolo-ribaudo merged commit c5b07a5 into babel:main Sep 30, 2026
69 checks passed
brandhaug added a commit to brandhaug/b2b-saas-starter that referenced this pull request Oct 10, 2026
## pnpm-workspace.yaml (default)

## Dependency Updates

| Package | From | To | Type |
| --- | --- | --- | --- |
| `@babel/core` | 8.0.6 | 8.0.7 | patch |
| `@react-email/ui` | 6.11.0 | 6.11.1 | patch |
| `ai` | 7.0.128 | 7.0.130 | patch |
| `react-email` | 6.11.0 | 6.11.1 | patch |
| `shadcn` | 4.21.3 | 4.21.4 | patch |

## Release Notes

<details>
<summary><b>@<!---->babel/core</b> (8.0.6 → 8.0.7)</summary>

## v8.0.7 (2026-10-07)

Thanks @<!---->brunoborta, @<!---->CINC0S, @<!---->hoobnn, and
@<!---->jpradelle for your first PRs!

#### 🐛 Bug Fix
* `babel-helper-create-regexp-features-plugin`,
`babel-plugin-transform-dotall-regex`,
`babel-plugin-transform-unicode-sets-regex`, `babel-preset-env`
* [#18295](babel/babel#18295) Bump regexpu-core
to 6.5.3 ([@<!---->JLHwung](https://github.com/JLHwung))
* `babel-plugin-transform-for-of`
* [#18292](babel/babel#18292) Skip `for await`
in `transform-for-of`
([@<!---->brunoborta](https://github.com/brunoborta))
* `babel-helpers`, `babel-plugin-transform-async-generator-functions`,
`babel-runtime-corejs3`
* [#18283](babel/babel#18283) Fix
`asyncIterator` helper forwarding `.throw()` to `.return()`
([@<!---->brunoborta](https://github.com/brunoborta))
* `babel-parser`
* [#18288](babel/babel#18288) fix(parser): allow
await as a function expression name inside async arrow
([@<!---->JLHwung](https://github.com/JLHwung))
* `babel-helpers`, `babel-plugin-transform-class-properties`,
`babel-plugin-transform-modules-systemjs`, `babel-runtime-corejs3`
* [#18284](babel/babel#18284) Guard
`@@toPrimitive` usage in toPrimitive helper
([@<!---->nicolo-ribaudo](https://github.com/nicolo-ribaudo))
* `babel-plugin-transform-block-scoping`
* [#18195](babel/babel#18195) fix: closures in
for-loop init capture wrong binding
([@<!---->joelle-a-dev](https://github.com/joelle-a-dev))
* `babel-helper-create-class-features-plugin`,
`babel-plugin-transform-private-property-in-object`
* [#18265](babel/babel#18265) Return false for
`#x in` on static private fields before initialization
([@<!---->hoobnn](https://github.com/hoobnn))
* `babel-traverse`
* [#18151](babel/babel#18151) Evaluate
TypeScript expression wrappers in `NodePath#evaluate`
([@<!---->CINC0S](https://github.com/CINC0S))
  * [#18250](https://github

…[full notes](https://github.com/babel/babel/releases/tag/v8.0.7)

</details>

<details>
<summary><b>react-email</b> (6.11.0 → 6.11.1)</summary>

### Patch Changes

* 54769fc: Prevent `email export` from deleting the project, the home
directory, the email templates or the static assets when `--outDir`
points at them.
* 6926bac: `<Markdown>` now applies `markdownCustomStyles.th` to table
header cells. Header cells were previously styled with `td`, so any `th`
styles were ignored.

</details>

<details>
<summary><b>shadcn</b> (4.21.3 → 4.21.4)</summary>

### Patch Changes

- [#12189](shadcn-ui/ui#12189)
[`76fd499595ba7cc01f49d159bd7ac82d7aca8e63`](shadcn-ui/ui@76fd499)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Drop the ts-morph
dependency from @<!---->shadcn/registry.

- [#12184](shadcn-ui/ui#12184)
[`995c2cfff44c373bd210d451089726ec097ab917`](shadcn-ui/ui@995c2cf)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Run the icons and
asChild transformers without ts-morph.

- [#12160](shadcn-ui/ui#12160)
[`6efecd8fe9aa167886fe2cc0c05c5623a5bb5670`](shadcn-ui/ui@6efecd8)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Edit the Next.js
layout for font items without ts-morph, and skip it with a warning
instead of writing a broken layout.

- [#12188](shadcn-ui/ui#12188)
[`efa11781f756c86debb0392fbea4fe468250b41b`](shadcn-ui/ui@efa1178)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Rewrite imports
and crawl file imports without ts-morph.

- [#12177](shadcn-ui/ui#12177)
[`e8c3143b1cd191280befcd6c9538284bb43399a8`](shadcn-ui/ui@e8c3143)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Edit
tailwind.config without ts-morph, and skip it with a warning instead of
writing a broken config.

- [#12183](shadcn-ui/ui#12183)
[`f56bbd7282f0116a925a601cb6d7e0c3fede448b`](shadcn-ui/ui@f56bbd7)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Run the rsc,
import, CSS variable, cleanup, font and menu transformers without
ts-morph.

- [#12185](shadcn-ui/ui#12185)
[`4a90344c42dc9ae47494179065219377ff5f2a8f`](https://github.com/shadcn-ui/u

…[full
notes](https://github.com/shadcn-ui/ui/releases/tag/shadcn%404.21.4)

</details>

---
*This PR was auto-generated by
[catalog-update-action](https://github.com/brandhaug/catalog-update-action).*

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Bug Fix 🐛 A type of pull request used for our changelog categories

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Babel metainterpeter should ignore as const when evaluating code at compile time

3 participants