Go to file
Alex Rickabaugh 5b2fa3cfd3 fix(ivy): correctly emit component when it's removed from its module (#34912)
This commit fixes a bug in the incremental rebuild engine of ngtsc, where if
a component was removed from its NgModule, it would not be properly
re-emitted.

The bug stemmed from the fact that whether to emit a file was a decision
based purely on the updated dependency graph, which captures the dependency
structure of the rebuild program. This graph has no edge from the component
to its former module (as it was removed, of course), so the compiler
erroneously decides not to emit the component.

The bug here is that the compiler does know, from the previous dependency
graph, that the component file has logically changed, since its previous
dependency (the module file) has changed. This information was not carried
forward into the set of files which need to be emitted, because it was
assumed that the updated dependency graph was a more accurate source of that
information.

With this commit, the set of files which need emit is pre-populated with the
set of logically changed files, to cover edge cases like this.

Fixes #34813

PR Close #34912
2020-01-23 13:30:10 -08:00
.circleci ci: rename `material-unit-tests` job to `components-repo-unit-tests` (#34898) 2020-01-23 13:29:02 -08:00
.devcontainer build: update the recommended `Dockerfile` for VSCode remote development (#34697) 2020-01-09 13:31:14 -08:00
.github ci: rename `material-unit-tests` job to `components-repo-unit-tests` (#34898) 2020-01-23 13:29:02 -08:00
.vscode build: migrate references and scripts that set to build with ivy via compile=aot to use config=ivy (#33983) 2019-11-26 16:38:40 -05:00
.yarn build: vendor yarn using the .yarnrc yarn-path value (#34902) 2020-01-23 11:41:23 -08:00
aio fix(ivy): use any for generic context checks when !strictTemplates (#34649) 2020-01-23 10:31:48 -08:00
docs ci: rename `material-unit-tests` job to `components-repo-unit-tests` (#34898) 2020-01-23 13:29:02 -08:00
integration build: upgrade to bazel 2.0.0 (#34877) 2020-01-23 10:05:05 -08:00
modules build: remove @angular/http from modules (#34892) 2020-01-22 13:39:16 -08:00
packages fix(ivy): correctly emit component when it's removed from its module (#34912) 2020-01-23 13:30:10 -08:00
scripts ci: rename `material-unit-tests` job to `components-repo-unit-tests` (#34898) 2020-01-23 13:29:02 -08:00
third_party build: update to yarn@1.21.1 (#34384) 2019-12-16 07:39:58 -08:00
tools ci: rename `material-unit-tests` job to `components-repo-unit-tests` (#34898) 2020-01-23 13:29:02 -08:00
.bazelignore build: add integration/platform-server/node_modules to .bazelignore (#33765) 2019-11-22 16:52:08 -05:00
.bazelrc build: add --stamp flag to the release config (#34890) 2020-01-22 12:34:12 -05:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes test: fix ts api guardian and public guard tests on windows (#30105) 2019-04-26 16:32:22 -07:00
.gitignore feat: add direction property to locale files (#33556) 2019-12-03 15:58:09 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc to correct node version (#33636) 2019-11-06 21:23:07 +00:00
.yarnrc build: vendor yarn using the .yarnrc yarn-path value (#34902) 2020-01-23 11:41:23 -08:00
BUILD.bazel ci: fix saucelabs bazel tests terminating after 5min (#34707) 2020-01-09 13:30:39 -08:00
CHANGELOG.md release: cut the v9.0.0-rc.10 release 2020-01-22 11:23:21 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs: document golden file requirement (#33900) 2020-01-07 10:58:53 -08:00
LICENSE build: bump year (#34651) 2020-01-13 07:21:43 -08:00
README.md docs: fix typo of Typescript to TypeScript (#32153) 2019-08-15 12:44:41 -07:00
WORKSPACE build: update to rules_nodejs 1.1.0 (#34736) 2020-01-15 14:58:07 -05:00
browser-providers.conf.js ci: re-enable chrome mobile tests on android (#32447) 2019-09-03 11:58:30 -07:00
gulpfile.js build: create bazel marco to test for circular dependencies (#34774) 2020-01-23 11:36:40 -08:00
karma-js.conf.js build: remove modules/angular1_router (#34551) 2020-01-07 10:42:30 -08:00
package.json build: create bazel marco to test for circular dependencies (#34774) 2020-01-23 11:36:40 -08:00
protractor-perf.conf.js fixup! test(ivy): make the test run with benchpress (#30449) 2019-05-16 20:04:04 -07:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js refactor: rename unpatched event flag in Zone from `BLACK_LISTED_EVENTS` to `UNPATCHED_EVENTS` (#29617) 2019-10-04 08:44:58 -07:00
test-main.js feat(ivy): i18n - implement compile-time inlining (#32881) 2019-10-09 13:19:38 -07:00
tslint.json style: enforce disallowance of object constructor (#33211) 2019-12-03 10:08:25 -08:00
yarn.lock build: create bazel marco to test for circular dependencies (#34774) 2020-01-23 11:36:40 -08:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00

README.md

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.