angular/packages/compiler-cli/test/compliance/test_cases
Alex Rickabaugh a67e00741c refactor(forms): move control logic into FormField directive
Refactors the `ɵɵcontrolCreate` and `ɵɵcontrol` instructions to delegate control logic to the forms package via new `ɵngControlCreate` and `ɵngControlUpdate` lifecycle hooks. Previously, the logic for binding form state to native elements and custom controls was hardcoded within `@angular/core`.

**Compiler Changes:**
- Introduces a new compilation phase `specializeControlProperties` (in `control_directives.ts`).
- This phase detects properties named `formField` and specializes them into `ControlCreate` and `Control` IR opcodes.
- These opcodes emit `ɵɵcontrolCreate` and `ɵɵcontrol` instructions, respectively.

**Runtime Changes:**
- `ɵɵcontrolCreate` acts as the creation phase. It locates the control directive and invokes its `ɵngControlCreate` method.
- `ɵɵcontrol` acts as the update phase, and invokes the control directive's `ɵngControlUpdate` method (if present).
- Introduces a `passThroughInput` configuration in `ControlFeature`. This specifies the input name (e.g., `formField`) that triggers the control. If the runtime detects that this input is bound to multiple targets (e.g., the `FormField` directive *and* the host component), the control is flagged as "pass-through". In this state, `ɵngControlCreate` returns a no-op update function, deferring responsibility to the other consumer (e.g., the component managing the field itself).

**Forms Changes:**
- `FormField` directive implements `ɵngControlCreate` and `ɵngControlUpdate`.
- Inside this hook, `FormField` determines the type of control it is attached to (Native, CVA, or Custom Signal Control) and delegates to the appropriate handler (`nativeControlCreate`, `cvaControlCreate`, or `customControlCreate`).
- Consolidates all form binding logic within `@angular/forms/signals`, enabling support for new `FormValueControl` and `FormCheckboxControl` interfaces.
- Reorganizes the codebase by moving `FormField` from `api/` to `directive/` and splitting the binding logic into semantic pieces:
    - `control_native.ts`, `control_cva.ts`, and `control_custom.ts` contain the specific handlers for each control type.
    - `native.ts` and `select.ts` provide helpers for native element discovery and select-specific synchronization.
    - `bindings.ts` manages the tracking and application of property/attribute bindings.
2026-01-29 13:17:40 -08:00
..
model_inputs test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
output_function test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_compiler_compliance build: initial test of TypeScript 6 2026-01-15 13:41:01 -08:00
r3_view_compiler feat(compiler): Add support for the instanceof binary operator 2026-01-13 08:33:12 -08:00
r3_view_compiler_arrow_functions fix(compiler): optimize away unnecessary restore/reset view calls 2026-01-20 10:22:55 -08:00
r3_view_compiler_bindings refactor(forms): move control logic into FormField directive 2026-01-29 13:17:40 -08:00
r3_view_compiler_control_flow fix(compiler): Support empty cases 2026-01-07 15:47:59 -08:00
r3_view_compiler_deferred test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_view_compiler_di/di test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_view_compiler_directives test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_view_compiler_i18n test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_view_compiler_input_outputs test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_view_compiler_let test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_view_compiler_listener fix(compiler): optimize away unnecessary restore/reset view calls 2026-01-20 10:22:55 -08:00
r3_view_compiler_providers test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_view_compiler_styling test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
r3_view_compiler_template test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
signal_inputs test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
signal_queries test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
source_mapping test(compiler): switch compliance tests to es2022 2026-01-02 08:29:12 +01:00
BUILD.bazel build: rename defaults2.bzl to defaults.bzl (#63383) 2025-08-25 15:45:01 -07:00
list_golden_update_rules.ts test(core): remove shelljs from core schematics tests (#64042) 2025-09-26 13:14:09 -04:00
test_case_schema.json feat(compiler-cli): add experimental support for fast type declaration emission (#61334) 2025-05-14 14:07:37 -07:00