mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Previously the template type-checking engine processed templates in a linear
manner, and could not handle '#' references within a template. One reason
for this is that '#' references are non-linear - a reference can be used
before its declaration. Consider the template:
```html
{{ref.value}}
<input #ref>
```
Accommodating this required refactoring the type-checking code generator to
be able to produce Type Check Block (TCB) code non-linearly. Now, each
template is processed and a list of TCB operations (`TcbOp`s) are created.
Non-linearity is modeled via dependencies between operations, with the
appropriate protection in place for circular dependencies.
Testing strategy: TCB tests included.
PR Close #29698
|
||
|---|---|---|
| .. | ||
| diagnostics | ||
| metadata | ||
| ngtsc | ||
| transformers | ||
| extract_i18n.ts | ||
| language_services.ts | ||
| main.ts | ||
| ngtools_api.ts | ||
| ngtools_api2.ts | ||
| perform_compile.ts | ||
| perform_watch.ts | ||
| tooling.ts | ||
| version.ts | ||