angular/packages/compiler/src
Alex Rickabaugh 73da2792c9 fix(ivy): properly compile NgModules with forward referenced types (#29198)
Previously, ngtsc would resolve forward references while evaluating the
bootstrap, declaration, imports, and exports fields of NgModule types.
However, when generating the resulting ngModuleDef, the forward nature of
these references was not taken into consideration, and so the generated JS
code would incorrectly reference types not yet declared.

This commit fixes this issue by introducing function closures in the
NgModuleDef type, similarly to how NgComponentDef uses them for forward
declarations of its directives and pipes arrays. ngtsc will then generate
closures when required, and the runtime will unwrap them if present.

PR Close #29198
2019-03-12 18:26:42 -07:00
..
aot refactor: Consistently use index access on index signature types. (#28937) 2019-02-28 02:49:14 -08:00
compiler_util refactor(compiler): capture sourceSpan when converting action bindings to output AST (#28055) 2019-02-12 20:58:28 -08:00
css_parser build(bazel): Turning on strictPropertyInitialization for Angular. (#24572) 2018-06-25 07:57:13 -07:00
expression_parser fix(compiler): fix two existing expression transformer issues (#28523) 2019-02-13 19:13:10 -08:00
i18n refactor(compiler): use options argument for parsers (#28055) 2019-02-12 20:58:27 -08:00
jit refactor(compiler): wrap the jit evaluation in an injectable class (#28055) 2019-02-12 20:58:27 -08:00
ml_parser docs(compiler): correct lexer argument descriptions (#28978) 2019-02-28 02:44:19 -08:00
output refactor(compiler): wrap the jit evaluation in an injectable class (#28055) 2019-02-12 20:58:27 -08:00
render3 fix(ivy): properly compile NgModules with forward referenced types (#29198) 2019-03-12 18:26:42 -07:00
schema fix(core): size regression with closure compiler (#25531) 2018-08-30 21:22:40 -07:00
template_parser fix(ivy): incorrectly remapping certain properties that refer inputs (#28765) 2019-02-21 17:59:50 -08:00
view_compiler feat(core): allow users to define timing of ViewChild/ContentChild queries (#28810) 2019-02-19 12:56:25 -08:00
assertions.ts refactor(compiler): split compiler and core (#18683) 2017-08-16 17:58:53 -05:00
ast_path.ts style: typos fixed - https://github.com/vlajos/misspell-fixer (#22975) 2018-03-27 14:51:53 -04:00
chars.ts feat(compiler): support tokenizing escaped strings (#28055) 2019-02-12 20:58:27 -08:00
compile_metadata.ts feat(core): allow users to define timing of ViewChild/ContentChild queries (#28810) 2019-02-19 12:56:25 -08:00
compile_reflector.ts feat(ivy): @NgModule -> ngInjectorDef compilation (#22458) 2018-03-16 12:57:11 -07:00
compiler.ts fix(ivy): never use imported type references as values (#29111) 2019-03-05 16:47:41 -08:00
compiler_facade_interface.ts fix(ivy): platform module bootstrap does not resolve resources (#29083) 2019-03-12 11:50:06 -07:00
config.ts feat: add TypeScript 3 support (#25275) 2018-08-27 21:07:53 -04:00
constant_pool.ts feat(ivy): ICU support for Ivy (#26794) 2018-11-16 16:09:30 -08:00
core.ts refactor(ivy): define new AttributeMarker.Template marker (#29041) 2019-03-07 11:27:36 -08:00
directive_normalizer.ts refactor(compiler): use options argument for parsers (#28055) 2019-02-12 20:58:27 -08:00
directive_resolver.ts feat(compiler): narrow types of expressions used in *ngIf (#20702) 2017-12-08 10:24:26 -08:00
identifiers.ts feat(ivy): setClassMetadata() for assigning decorator metadata (#26860) 2018-10-31 19:52:36 -04:00
injectable_compiler.ts feat(ivy): support injection even if no injector present (#23345) 2018-04-13 14:29:52 -07:00
injectable_compiler_2.ts feat(ivy): compile @Injectable on classes not meant for DI (#28523) 2019-02-13 19:13:10 -08:00
jit_compiler_facade.ts fix(ivy): properly compile NgModules with forward referenced types (#29198) 2019-03-12 18:26:42 -07:00
lifecycle_reflector.ts feat(ivy): implement TestBed (#25369) 2018-08-14 11:58:47 -07:00
metadata_resolver.ts feat(core): allow users to define timing of ViewChild/ContentChild queries (#28810) 2019-02-19 12:56:25 -08:00
ng_module_compiler.ts feat(compiler): lower @NgModule ids if needed (#23031) 2018-03-28 09:15:16 -07:00
ng_module_resolver.ts refactor(compiler): split compiler and core (#18683) 2017-08-16 17:58:53 -05:00
parse_util.ts fix(ivy): verify Host Bindings and Host Listeners before compiling them (#28356) 2019-01-29 16:36:22 -08:00
pipe_resolver.ts refactor(compiler): split compiler and core (#18683) 2017-08-16 17:58:53 -05:00
provider_analyzer.ts feat: change @Injectable() to support tree-shakeable tokens (#22005) 2018-02-12 14:34:59 -08:00
resource_loader.ts refactor(compiler): allow sync AOT compilation (#16832). 2017-05-23 10:41:23 -06:00
selector.ts feat(ivy): add generics to the SelectorMatcher API (#26203) 2018-10-04 10:11:17 -07:00
shadow_css.ts fix(compiler): Don't strip /*# sourceURL ... */ (#16088) 2018-01-24 12:35:30 -08:00
style_compiler.ts feat(ivy): bridge component styles into the component renderer (#25255) 2018-08-23 16:51:15 -04:00
style_url_resolver.ts fix(compiler): Don't strip CSS source maps 2017-08-15 16:30:09 -07:00
summary_resolver.ts fix(compiler): allow to use flat modules and summaries 2017-09-28 14:20:20 -07:00
url_resolver.ts refactor(compiler): split compiler and core (#18683) 2017-08-16 17:58:53 -05:00
util.ts fix(core): Remove static dependency from @angular/core to @angular/compiler (#26734) 2018-10-31 14:15:06 -04:00
version.ts style: remove empty comments (#23404) 2018-05-10 15:48:13 -07:00