Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
1269b23
fix(safe-nav): version-aware optional chaining for Angular v22+ (#317)
brandonroberts Jun 1, 2026
b5b0eb0
chore(conformance): bump angular submodule to v22.0.0-rc.2
brandonroberts Jun 1, 2026
904d913
fix(expr): report errors for keyword/EOF in primary position (v22 `in`)
brandonroberts Jun 1, 2026
9bf50f9
feat(defer): support optional timeout on the `idle` trigger (v22)
brandonroberts Jun 1, 2026
63f6911
fix(template): stop normalizing the `data-` attribute prefix (v22)
brandonroberts Jun 1, 2026
d47f293
fix(let): include trailing semicolon in @let source span (v22)
brandonroberts Jun 1, 2026
999f0f6
fix(shadow-css): align :host / :host-context / comments with v22
brandonroberts Jun 1, 2026
b248415
fix(template): don't strip namespaced SVG <style>/<script> (v22)
brandonroberts Jun 1, 2026
a03bfbb
feat(switch): support @default never exhaustive check (v22)
brandonroberts Jun 1, 2026
86003a3
docs(conformance): restore 100% pass-rate note for v22.0.0-rc.2
brandonroberts Jun 1, 2026
d44dfec
chore(deps): bump @angular/* to v22.0.0-rc.2 in core packages
brandonroberts Jun 1, 2026
b4c2d82
feat(forms): emit control instructions for v22 control properties
brandonroberts Jun 1, 2026
f80a073
test(compare): target the installed Angular version in OXC options
brandonroberts Jun 1, 2026
32839b2
feat(forms): gate v22 control-property instructions on angular_version
brandonroberts Jun 1, 2026
a36d14c
style: apply oxfmt to regenerated fixtures and compare harness
brandonroberts Jun 1, 2026
acc3ce4
chore(deps): keep e2e/app and playground on Angular v21
brandonroberts Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/angular_conformance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A conformance testing framework that validates the oxc Angular compiler implemen

## Overview

This crate extracts test cases from Angular's TypeScript spec files and runs them against the Rust implementation to ensure compatibility. Currently maintains **100% pass rate** across 1,252 extracted test assertions.
This crate extracts test cases from Angular's TypeScript spec files and runs them against the Rust implementation to ensure compatibility. It currently maintains a **100% pass rate** across **1,264** extracted test assertions against Angular **v22.0.0-rc.2**.

## Architecture

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "compiler_facade_interface_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/compiler_facade_interface_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/compiler_facade_interface_spec.ts",
"test_groups": []
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ast_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/ast_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/ast_spec.ts",
"test_groups": [
{
"name": "RecursiveAstVisitor",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "lexer_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/lexer_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/lexer_spec.ts",
"test_groups": [
{
"name": "lexer",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "parser_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/parser_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/parser_spec.ts",
"test_groups": [
{
"name": "parser",
Expand Down Expand Up @@ -1474,6 +1474,32 @@
"type": "CheckAction",
"input": "('key' in obj) && true",
"expected": "(\"key\" in obj) && true"
},
{
"type": "CheckAction",
"input": "'in' in {in: foo}",
"expected": "\"in\" in {in: foo}"
}
]
},
{
"name": "should throw on invalid in expressions",
"path": "parser/parseAction/should throw on invalid in expressions",
"assertions": [
{
"type": "ExpectActionError",
"input": "in",
"error_contains": "Unexpected token in"
},
{
"type": "ExpectActionError",
"input": "in foo",
"error_contains": "Unexpected token in"
},
{
"type": "ExpectActionError",
"input": "'foo' in",
"error_contains": "Unexpected end of expression: 'foo' in at the end of the expression ['foo' in]"
}
]
},
Expand Down Expand Up @@ -2074,17 +2100,6 @@
}
]
},
{
"name": "should report missing comma between arrow function parameters",
"path": "parser/parseBinding/arrow functions/arrow function validations/should report missing comma between arrow function parameters",
"assertions": [
{
"type": "ExpectBindingError",
"input": "(a b) => a + b",
"error_contains": "Missing expected ,"
}
]
},
{
"name": "should report an error inside the arrow function expression",
"path": "parser/parseBinding/arrow functions/arrow function validations/should report an error inside the arrow function expression",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "serializer_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/serializer_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/serializer_spec.ts",
"test_groups": [
{
"name": "serializer",
Expand Down
2 changes: 1 addition & 1 deletion crates/angular_conformance/fixtures/i18n_digest_spec.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "digest_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/digest_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/digest_spec.ts",
"test_groups": [
{
"name": "digest",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "extractor_merger_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/extractor_merger_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/extractor_merger_spec.ts",
"test_groups": [
{
"name": "Extractor",
Expand Down Expand Up @@ -153,8 +153,8 @@
"assertions": []
},
{
"name": "should ignore implicit elements in non translatable ICU messages",
"path": "Extractor/ICU messages/should ignore implicit elements in non translatable ICU messages",
"name": "should ignore implicit elements in non translatable ICU messages 2",
"path": "Extractor/ICU messages/should ignore implicit elements in non translatable ICU messages 2",
"assertions": []
}
]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "i18n_ast_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_ast_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_ast_spec.ts",
"test_groups": [
{
"name": "Message",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "i18n_html_parser_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_html_parser_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_html_parser_spec.ts",
"test_groups": [
{
"name": "I18N html parser",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "i18n_parser_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_parser_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_parser_spec.ts",
"test_groups": [
{
"name": "I18nParser",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "integration_xliff2_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xliff2_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xliff2_spec.ts",
"test_groups": []
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "integration_xliff_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xliff_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xliff_spec.ts",
"test_groups": []
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "integration_xmb_xtb_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xmb_xtb_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xmb_xtb_spec.ts",
"test_groups": []
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "message_bundle_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/message_bundle_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/message_bundle_spec.ts",
"test_groups": [
{
"name": "MessageBundle",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "i18n_ast_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/i18n_ast_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/i18n_ast_spec.ts",
"test_groups": [
{
"name": "i18n AST",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "placeholder_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/placeholder_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/placeholder_spec.ts",
"test_groups": [
{
"name": "PlaceholderRegistry",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xliff2_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xliff2_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xliff2_spec.ts",
"test_groups": [
{
"name": "XLIFF 2.0 serializer",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xliff_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xliff_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xliff_spec.ts",
"test_groups": [
{
"name": "XLIFF serializer",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xmb_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xmb_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xmb_spec.ts",
"test_groups": [
{
"name": "XMB serializer",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xml_helper_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xml_helper_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xml_helper_spec.ts",
"test_groups": [
{
"name": "XML helper",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xtb_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xtb_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xtb_spec.ts",
"test_groups": [
{
"name": "XTB serializer",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "translation_bundle_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/translation_bundle_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/translation_bundle_spec.ts",
"test_groups": [
{
"name": "TranslationBundle",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "whitespace_sensitivity_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts",
"test_groups": [
{
"name": "i18nPreserveWhitespaceForLegacyExtraction",
Expand Down
2 changes: 1 addition & 1 deletion crates/angular_conformance/fixtures/integration_spec.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "integration_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/integration_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/integration_spec.ts",
"test_groups": [
{
"name": "integration tests",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ast_serializer_spec.ts",
"file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/ast_serializer_spec.ts",
"file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/ast_serializer_spec.ts",
"test_groups": [
{
"name": "Node serializer",
Expand Down
Loading
Loading