angular-cn/packages/compiler-cli
Alex Rickabaugh 965a688c97 fix(compiler-cli): use ModuleWithProviders type if static eval fails (#37126)
When the compiler encounters a function call within an NgModule imports
section, it attempts to resolve it to an NgModule-annotated class by
looking at the function body and evaluating the statements there. This
evaluation can only understand simple functions which have a single
return statement as their body. If the function the user writes is more
complex than that, the compiler won't be able to understand it and
previously the PartialEvaluator would return a "DynamicValue" for
that import.

With this change, in the event the function body resolution fails the
PartialEvaluator will now attempt to use its foreign function resolvers to
determine the correct result from the function's type signtaure instead. If
the function is annotated with a correct ModuleWithProviders type, the
compiler will be able to understand the import without static analysis of
the function body.

PR Close #37126
2020-06-03 13:23:16 -07:00
..
integrationtest build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
ngcc perf(ngcc): allow immediately reporting a stale lock file (#37250) 2020-06-02 17:30:03 -04:00
src fix(compiler-cli): use ModuleWithProviders type if static eval fails (#37126) 2020-06-03 13:23:16 -07:00
test fix(compiler-cli): use ModuleWithProviders type if static eval fails (#37126) 2020-06-03 13:23:16 -07:00
BUILD.bazel perf(compiler-cli): split Ivy template type-checking into multiple files (#36211) 2020-05-05 18:40:42 -07:00
index.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
package.json build: remove wombot proxy registry from package.jsons for release (#37378) 2020-06-01 12:41:19 -04:00
tsconfig-build.json build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
tsconfig.json perf(ivy): ngcc - only find dependencies when targeting a single entry-point (#30525) 2019-07-09 09:40:46 -07:00