angular/packages/compiler-cli
Alex Rickabaugh 073d258deb feat(ivy): template type-checking for '#' references in templates (#29698)
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
2019-04-19 11:15:25 -07:00
..
integrationtest fix(bazel): use //:tsconfig.json as the default for ng_module (#29670) 2019-04-02 15:57:11 -07:00
ngcc refactor(ivy): use ɵɵ instead of Δ for now (#29850) 2019-04-11 16:27:56 -07:00
src feat(ivy): template type-checking for '#' references in templates (#29698) 2019-04-19 11:15:25 -07:00
test feat(ivy): register NgModules with ids when compiled with AOT (#29980) 2019-04-19 11:12:21 -07:00
BUILD.bazel perf(ivy): basic incremental compilation for ngtsc (#29380) 2019-04-01 15:13:56 -07:00
index.ts feat(compiler-cli): export tooling definitions (#29929) 2019-04-17 17:23:01 -07:00
ngtools2.ts refactor(compiler-cli): expose ngtools api separately (#18978) 2017-08-31 14:37:13 -07:00
package.json build: update to TypeScript 3.4 (#29372) 2019-04-10 12:12:16 -07:00
tsconfig-build.json build(compiler-cli): enable full TypeScript strictness (#29436) 2019-03-21 12:14:39 -04:00
tsconfig.json build(compiler-cli): enable full TypeScript strictness (#29436) 2019-03-21 12:14:39 -04:00