Skip to content

[js_interop_gen] Require code_builder: ^4.12.0 and update golden headers - #576

Merged
kevmoo merged 1 commit into
mainfrom
code-builder-4-12
Sep 28, 2026
Merged

kevmoo merged 1 commit into
mainfrom
code-builder-4-12

Conversation

@kevmoo

@kevmoo kevmoo commented Sep 19, 2026

Copy link
Copy Markdown
Member

package:code_builder 4.12.0 fixed dart-lang/tools#2404
by emitting scoped lint ignores (no_leading_underscores_for_library_prefixes)
directly in the sorted top-of-file // ignore_for_file: block before library
annotations and directives.

  • Bump code_builder dependency constraint to ^4.12.0 (compatible with
    sdk: ^3.10.0, preserving js_interop_gen's sdk: ^3.12.0 constraint).
  • Remove the now-obsolete replaceFirstMapped regex workaround for
    dart-lang/tools#2404 in lib/src/interop_gen/transform.dart.
  • Regenerate the expected test golden headers across test/.

…aders

`package:code_builder` `4.12.0` fixed dart-lang/tools#2404
by emitting scoped lint ignores (`no_leading_underscores_for_library_prefixes`)
directly in the sorted top-of-file `// ignore_for_file:` block before library
annotations and directives.

- Bump `code_builder` dependency constraint to `^4.12.0` (compatible with
  `sdk: ^3.10.0`, preserving `js_interop_gen`'s `sdk: ^3.12.0` constraint).
- Remove the now-obsolete `replaceFirstMapped` regex workaround for
  `dart-lang/tools#2404` in `lib/src/interop_gen/transform.dart`.
- Regenerate the expected test golden headers across `test/`.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request upgrades the code_builder dependency to ^4.12.0 and removes a manual string replacement workaround in transform.dart that was previously used to insert the no_leading_underscores_for_library_prefixes ignore comment. As a result, the generated test files have been updated to reflect the new, natively handled comment sorting and formatting. There are no review comments to assess, and I have no additional feedback to provide.

kevmoo added a commit to kevmoo/web.dart that referenced this pull request Sep 20, 2026
Stacked on dart-lang#576.

Remove 13 unreferenced declarations identified by `pkg:undead`
(`--extra-roots=lib/src/dart_main.dart`):
- `createSourceFile` in `lib/src/js/typescript.dart`
- `InterfacelikeExtension` in `lib/src/js/webidl_api.dart`
- 11 unused TypeScript AST extension types in
  `lib/src/js/typescript.types.dart` (`TSTypePredicateNode`,
  `TSNamedTupleMember`, `TSFunctionTypeNode`, `TSConstructorTypeNode`,
  `TSPropertyAccessExpression`, `TSNamespaceExport`, `TSExportAssignment`,
  `TSClassDeclaration`, `TSInterfaceDeclaration`, `TSPropertyDeclaration`,
  `TSMethodDeclaration`)
@kevmoo
kevmoo added this pull request to stack #581 September 20, 2026 16:40
@kevmoo
kevmoo removed this pull request from stack #581 September 20, 2026 17:34
@kevmoo
kevmoo added this pull request to stack #583 September 20, 2026 17:35
@kevmoo
kevmoo merged commit ec71a4c into main Sep 28, 2026
31 checks passed
@kevmoo
kevmoo deleted the code-builder-4-12 branch September 28, 2026 17:07
kevmoo added a commit that referenced this pull request Sep 30, 2026
…ransformer (#580)

* [js_interop_gen] Require `code_builder: ^4.12.0` and update golden headers

`package:code_builder` `4.12.0` fixed dart-lang/tools#2404
by emitting scoped lint ignores (`no_leading_underscores_for_library_prefixes`)
directly in the sorted top-of-file `// ignore_for_file:` block before library
annotations and directives.

- Bump `code_builder` dependency constraint to `^4.12.0` (compatible with
  `sdk: ^3.10.0`, preserving `js_interop_gen`'s `sdk: ^3.12.0` constraint).
- Remove the now-obsolete `replaceFirstMapped` regex workaround for
  `dart-lang/tools#2404` in `lib/src/interop_gen/transform.dart`.
- Regenerate the expected test golden headers across `test/`.

* [js_interop_gen] Remove unused JS interop extension types and bindings

Stacked on #576.

Remove 13 unreferenced declarations identified by `pkg:undead`
(`--extra-roots=lib/src/dart_main.dart`):
- `createSourceFile` in `lib/src/js/typescript.dart`
- `InterfacelikeExtension` in `lib/src/js/webidl_api.dart`
- 11 unused TypeScript AST extension types in
  `lib/src/js/typescript.types.dart` (`TSTypePredicateNode`,
  `TSNamedTupleMember`, `TSFunctionTypeNode`, `TSConstructorTypeNode`,
  `TSPropertyAccessExpression`, `TSNamespaceExport`, `TSExportAssignment`,
  `TSClassDeclaration`, `TSInterfaceDeclaration`, `TSPropertyDeclaration`,
  `TSMethodDeclaration`)

* [js_interop_gen] Deduplicate `UnionType` and `IntersectionType` via `UnionOrIntersectionType`

Stacked on #577.

- Extract `sealed class UnionOrIntersectionType extends DeclarationType` in
  `lib/src/ast/types.dart` (mirroring `_UnionOrIntersectionDeclaration`) to
  share `types`, `isNullable`, `declarationName`, `id`, `emit()`, `hashCode`,
  and `operator ==` across `UnionType` and `IntersectionType` (`pkg:dedupe`
  `cluster-47`).
- Fix `UnionType.==` and `IntersectionType.==`, which previously checked
  `other is TupleType` due to copy-paste.
- Consolidate `UnionType` / `IntersectionType` pattern cases in
  `lib/src/ast/helpers.dart` and
  `lib/src/interop_gen/transform/dependency_walker.dart`.
- Write `dart_main.js` via an atomic temporary file rename in
  `compileDartMain()` (`lib/src/cli.dart`) so parallel `dart test` isolates in
  the same VM process cannot truncate `dart_main.js` while `node main.mjs` is
  loading it.

* [js_interop_gen] Decompose `Transformer._transformType` and deduplicate type caching

Stacked on #578.

- Extract `_transformConditionalType`, `_transformTypeLiteral`,
  `_transformClosureType`, `_transformUnionType`,
  `_transformIntersectionType`, and `_transformIndexedAccessType` from
  `Transformer._transformType` in
  `lib/src/interop_gen/transform/transformer.dart`, reducing
  `Transformer._transformType` cognitive complexity from `190` to `59` (-68.9%).
- Extract `_filterNonNullableTypeNodes` and `_getOrCreateCachedType` helpers on
  `Transformer`, eliminating duplicate union/intersection filtering and
  `typeMap` caching blocks (`pkg:dedupe` `cluster-45`, `cluster-51`, and
  `cluster-52`).

* Enforce symmetric equality and length check in UnionOrIntersectionType.==

* [js_interop_gen] Split union/intersection AST types and extract TypeTransformer

* chore(js_interop_gen): restore original inline comments in extracted type helpers

* chore(js_interop_gen): revert unrelated formatting change in translator.dart

* fix(js_interop_gen): update js_type_supertypes for Dart 3.12 and prefer JSObject over JSIterable

* fix(js_interop_gen): write compileDartMain output atomically

* refactor(js_interop_gen): use firstWhere in computeJsTypeSupertypes
copybara-service Bot pushed a commit to dart-lang/sdk that referenced this pull request Oct 6, 2026
Revisions updated by `dart tools/rev_sdk_deps.dart`.

native (https://github.com/dart-lang/native/compare/f628b26..27f7678):
  27f767827  Mon Sep 28 14:51:28 2026 +0200  Daco Harkes  [hooks_runner] Remove `KernelAssets` and `Target` (dart-lang/native#3703)
  ddc7d6deb  Mon Sep 28 05:40:03 2026 +0200  Jakob Kordež  [ffigen] Skip typedefs to function pointers with unsupported parameter types (dart-lang/native#3694)
  177d283d9  Mon Sep 28 04:30:28 2026 +0200  Jakob Kordež  [ffigen] Generate bindings for C++ enums, structs and unions nested in namespaces and records (dart-lang/native#3644)
  5ee8f67d8  Mon Sep 28 11:39:14 2026 +1000  Liam Appelbe  [objective_c] Clarify block isolate scoping (dart-lang/native#3692)
  25f090116  Fri Sep 25 12:09:12 2026 +1000  Liam Appelbe  [ffigen][jnigen] Deprecate YAML config (dart-lang/native#3654)
  8364413eb  Fri Sep 25 10:09:50 2026 +1000  Liam Appelbe  [jnigen] Document nullability (dart-lang/native#3690)
  e8d518574  Thu Sep 24 18:02:46 2026 +1000  Liam Appelbe  [ffigen] Code snippet-ify ffigen and objective_c (dart-lang/native#3685)
  663385955  Thu Sep 24 03:21:53 2026 +0300  Manar Elhabbal  [ffigen] prevent setting both cpp and objectiveC in ffigenerator (dart-lang/native#3687)
  1cf40952a  Thu Sep 24 09:27:09 2026 +1000  Liam Appelbe  [objective_c] Remove arm64e build hack (dart-lang/native#3680)
  c44550b6e  Wed Sep 23 13:01:33 2026 +0200  Simon Binder  [web_assets] Scaffold package (dart-lang/native#3610)
  57b4bad69  Wed Sep 23 16:21:27 2026 +1000  Liam Appelbe  [swift2objc] Code snippet-ify swift2objc (dart-lang/native#3684)
  5cee1d0be  Wed Sep 23 10:16:29 2026 +0530  Rachit Vikram Singh  [ffigen] Add Input.appendCompilerOptions to append clang args to defaults (`#3630`) (dart-lang/native#3676)
  225a648df  Wed Sep 23 14:37:13 2026 +1000  Liam Appelbe  [jnigen] Code snippet-ify jnigen and co (dart-lang/native#3641)
  2030decf9  Wed Sep 23 13:51:24 2026 +1000  Liam Appelbe  [infra] Move snippets_tool to its own package (dart-lang/native#3683)
  6fa2beea2  Wed Sep 23 12:14:28 2026 +1000  Liam Appelbe  [objective_c] Revert `#3664` (dart-lang/native#3681)
  ed7605f8a  Tue Sep 22 12:03:22 2026 +0530  Sivapriya  [jni] Add deep conversion utils (dart-lang/native#3635)
  8574b7422  Tue Sep 22 08:31:11 2026 +0200  Lukas Klingsbo  [ffigen] Allow package:cli_util 0.5.x and 0.6.x (dart-lang/native#3673)

test (https://github.com/dart-lang/test/compare/9946c95..4f92d53):
  4f92d530  Fri Sep 25 16:46:22 2026 -0700  Nate Bosch  Unskip a test on windows (dart-lang/test#2772)
  7fb84866  Fri Sep 25 14:52:39 2026 -0700  Nate Bosch  Bundle skips at the end of the GitHub reporter (dart-lang/test#2768)
  603e5ec5  Thu Sep 24 14:00:41 2026 -0700  Nate Bosch  Clean up the runner's temporary directories (dart-lang/test#2763)
  4bf04d90  Thu Sep 24 12:41:15 2026 -0700  Nate Bosch  Refactor signal handling in executable.dart (dart-lang/test#2765)
  2c660a84  Tue Sep 22 15:33:34 2026 -0700  Nate Bosch  Regenerate mono_repo output (dart-lang/test#2767)

tools (https://github.com/dart-lang/tools/compare/3614ce0..d87eaf7):
  d87eaf79  Thu Sep 24 08:31:33 2026 -0700  Kevin Moore  fix(benchmark_harness): migrate subprocess spawning to package:cli_util (dart-lang/tools#2585)
  8ccf8ccf  Wed Sep 23 05:09:10 2026 +0530  Aman Maurya  [string_scanner] Extract a mixin for LineScanner and deduplicate eager scanning logic (dart-lang/tools#2569)
  afcdd6d9  Tue Sep 22 15:38:07 2026 +0200  Morgan :)  Document that watch events converge on filesystem state. (dart-lang/tools#2607)
  f2157cbc  Tue Sep 22 04:52:58 2026 +0300  Hasan Armoush  [code_builder] Add null-aware cascades, cascade index, and fluent cascade helpers (dart-lang/tools#2540)

web (https://github.com/dart-lang/web/compare/e5c6c02..ec71a4c):
  ec71a4c  Mon Sep 28 10:07:01 2026 -0700  Kevin Moore  [js_interop_gen] Require `code_builder: ^4.12.0` and update golden headers (dart-lang/web#576)

[email protected]

Change-Id: I766bc5b2b1297e3251990821bb73387ba685e39b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/556320
Commit-Queue: Nate Bosch <[email protected]>
Reviewed-by: Brian Quinlan <[email protected]>
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.

[code_builder] Scoped DartEmitter emits lint ignore after library annotations/directives

2 participants