angular-cn/packages
JoostK 70c3461be3 fix(compiler-cli): use correct module import for types behind a `forwardRef` (#42887)
The static interpreter assumed that a foreign function expression would
have to be imported from the absolute module specifier that was used for
the foreign function itself. This assumption does not hold for the
`forwardRef` foreign function resolver, as that extracts the resolved
expression from the function's argument, which is not behind the
absolute module import of the `forwardRef` function.

The prior behavior has worked for the typical usage of `forwardRef`,
when it is contained within the same source file as where the static
evaluation started. In that case, the resulting reference would
incorrectly have an absolute module guess of `@angular/core`, but the
local identifier emit strategy was capable of emitting the reference
without generating an import using the absolute module guess.

In the scenario where the static interpreter would first have to follow
a reference to a different source that contained the `forwardRef` would
the compilation fail. In that case, there is no local identifier
available such that the absolute module emitter would try to locate the
imported symbol from `@angular/core`. which fails as the symbol is not
exported from there.

This commit fixes the issue by checking whether a foreign expression
occurs in the same source file as the call expression. If it does, then
the absolute module specifier that was used to resolve the call
expression is ignored.

Fixes #42865

PR Close #42887
2021-07-20 11:56:05 -07:00
..
animations refactor(animations): remove unused animation trigger imports (#42763) 2021-07-19 17:13:45 -07:00
bazel build: update dependency @microsoft/api-extractor to v7.18.4 (#42864) 2021-07-15 13:34:24 -07:00
benchpress refactor(benchpress): ensure compatibility with noImplicitOverride (#42512) 2021-07-12 13:11:15 -07:00
common build: generate closure locale files using hard-coded list of locales (#42230) 2021-07-16 12:44:59 -07:00
compiler docs: remove reference to an obsolete design doc (#42842) 2021-07-15 13:24:58 -07:00
compiler-cli fix(compiler-cli): use correct module import for types behind a `forwardRef` (#42887) 2021-07-20 11:56:05 -07:00
core fix(core): use correct injector when resolving DI tokens from within a directive provider factory (#42886) 2021-07-19 17:36:29 -07:00
docs docs: remove/update broken links in resources appearing on aio (#42232) 2021-05-26 14:21:12 -07:00
elements refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
examples refactor: ensure compatibility with noImplicitOverride for examples (#42512) 2021-07-12 13:11:16 -07:00
forms refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
language-service refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
localize refactor(localize): ensure compatibility with noImplicitOverride (#42512) 2021-07-12 13:11:16 -07:00
misc/angular-in-memory-web-api refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
platform-browser refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
platform-browser-dynamic refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
platform-server refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
private/testing docs: convert the last `my-app` components to `app-root` (#42256) 2021-05-25 22:13:36 +00:00
router refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
service-worker refactor: add override keyword to members implementing abstract declarations (#42512) 2021-07-12 13:11:17 -07:00
upgrade refactor(upgrade): ensure compatibility with noImplicitOverride (#42512) 2021-07-12 13:11:15 -07:00
zone.js build: lock file maintenance (#42824) 2021-07-15 13:22:37 -07:00
BUILD.bazel build: remove unused no-strict tsconfig file (#42506) 2021-06-07 10:47:47 -07:00
README.md docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
circular-deps-test.conf.js fix(platform-webworker): remove platform-webworker and platform-webworker-dynamic (#38846) 2020-09-30 09:13:59 -04:00
empty.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
goog.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
license-banner.txt docs: update year (#40925) 2021-02-22 12:37:40 -08:00
system.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
tsconfig-build.json build: enable noImplicitOverride in project (#42512) 2021-07-12 13:11:14 -07:00
tsconfig-legacy-saucelabs.json build: enable noImplicitOverride in project (#42512) 2021-07-12 13:11:14 -07:00
tsconfig-test.json refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
tsconfig.json build: enable noImplicitOverride in project (#42512) 2021-07-12 13:11:14 -07:00
types.d.ts build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00

README.md

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT