002a97d852
ngcc may need to insert public exports into the bundle's source as well as to the entry-point's declaration file, as the Ivy compiler may need to create import statements to internal library types. The way ngcc knows which exports to add is through the references registry, to which references to things that require a public export are added by the various analysis steps that are executed. One of these analysis steps is the augmentation of declaration files where functions that return `ModuleWithProviders` are updated so that a generic type argument is added that corresponds with the `NgModule` that is actually imported. This type has to be publicly exported, so the analyzer step has to add the module type to the references registry. A problem occurs when `ModuleWithProviders` already has a generic type argument, in which case no update of the declaration file is necessary. This may happen when 1) ngcc is processing additional bundle formats, so that the declaration file has already been updated while processing the first bundle format, or 2) when a package is processed which already contains the generic type in its source. In both scenarios it may occur that the referenced `NgModule` type does not yet have a public export, so it is crucial that a reference to the type is added to the references registry, which ngcc failed to do. This commit fixes the issue by always adding the referenced `NgModule` type to the references registry, so that a public export will always be created if necessary. Resolves FW-1575 PR Close #32902 |
||
---|---|---|
.circleci | ||
.devcontainer | ||
.github | ||
.vscode | ||
aio | ||
docs | ||
integration | ||
modules | ||
packages | ||
scripts | ||
third_party | ||
tools | ||
.bazelignore | ||
.bazelrc | ||
.clang-format | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.nvmrc | ||
BUILD.bazel | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
WORKSPACE | ||
browser-providers.conf.js | ||
gulpfile.js | ||
karma-js.conf.js | ||
package.json | ||
protractor-perf.conf.js | ||
renovate.json | ||
shims_for_IE.js | ||
test-events.js | ||
test-main.js | ||
tslint.json | ||
yarn.lock | ||
yarn.lock.readme.md |
README.md
Angular
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.
Quickstart
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.