angular/packages/compiler/src
Alex Rickabaugh 79466baef8 fix(ivy): remove metadata from *Def and introduce *DefWithMeta types (#26203)
Previously in Ivy, metadata for directives/components/modules/etc was
carried in .d.ts files inside type information encoded on the
DirectiveDef, ComponentDef, NgModuleDef, etc types of Ivy definition
fields. This works well, but has the side effect of complicating Ivy's
runtime code as these extra generic type parameters had to be specified
as <any> throughout the codebase. *DefInternal types were introduced
previously to mitigate this issue, but that's the wrong way to solve
the problem.

This commit returns *Def types to their original form, with no metadata
attached. Instead, new *DefWithMeta types are introduced that alias the
plain definition types and add extra generic parameters. This way the
only code that needs to deal with the extra metadata parameters is the
compiler code that reads and writes them - the existence of this metadata
is transparent to the runtime, as it should be.

PR Close #26203
2018-10-04 10:11:17 -07:00
..
aot fix(docs-infra): fix closure warning issue for improper internal flag (#25628) 2018-08-22 21:59:22 -04:00
compiler_util fix(ivy): fix bug with banana-in-a-box expressions in nested templates (#25321) 2018-08-07 11:45:32 -07:00
css_parser build(bazel): Turning on strictPropertyInitialization for Angular. (#24572) 2018-06-25 07:57:13 -07:00
expression_parser test(ivy): add html to ivy ast transformer tests (#23546) 2018-05-09 11:49:18 -07:00
i18n feat(compiler): add "original" placeholder value on extracted XMB (#25079) 2018-07-30 16:49:00 -07:00
jit fix(compiler): Fix look up of entryComponents in AOT Summaries (#24892) 2018-09-11 16:23:17 -07:00
ml_parser fix(core): size regression with closure compiler (#25531) 2018-08-30 21:22:40 -07:00
output fix(ivy): convert context code into a tree-shakable instruction (#24943) 2018-07-30 15:54:11 -07:00
render3 fix(ivy): remove metadata from *Def and introduce *DefWithMeta types (#26203) 2018-10-04 10:11:17 -07:00
schema fix(core): size regression with closure compiler (#25531) 2018-08-30 21:22:40 -07:00
template_parser fix(core): size regression with closure compiler (#25531) 2018-08-30 21:22:40 -07:00
view_compiler feat(ivy): implement TestBed (#25369) 2018-08-14 11:58:47 -07: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 refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
compile_metadata.ts feat(ivy): patch animations into metadata (#25828) 2018-09-07 13:46:06 -07:00
compile_reflector.ts feat(ivy): @NgModule -> ngInjectorDef compilation (#22458) 2018-03-16 12:57:11 -07:00
compiler.ts feat(ivy): introduce a new compiler API for operating on templates (#26203) 2018-10-04 10:11:17 -07:00
config.ts feat: add TypeScript 3 support (#25275) 2018-08-27 21:07:53 -04:00
constant_pool.ts fix(ivy): use globally unique names for i18n constants (#25689) 2018-09-04 12:09:29 -07:00
core.ts fix(ivy): match directives on bindings and element outputs (#25614) 2018-08-27 18:17:25 -04:00
directive_normalizer.ts style: typos fixed - https://github.com/vlajos/misspell-fixer (#22975) 2018-03-27 14:51:53 -04: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): support injecting Renderer2 (#25523) 2018-08-31 09:42:36 -07: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): enable inheritance of factory functions in definitions (#25392) 2018-08-09 09:58:13 -07:00
lifecycle_reflector.ts feat(ivy): implement TestBed (#25369) 2018-08-14 11:58:47 -07:00
metadata_resolver.ts feat(ivy): implement TestBed (#25369) 2018-08-14 11:58:47 -07: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 feat(compiler): implement "enableIvy" compiler option (#21427) 2018-01-18 18:22:44 -06: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 Revert "fix(compiler): Pretty print object instead of [Object object] (#22689)" (#23442) 2018-04-19 14:51:58 -07:00
version.ts style: remove empty comments (#23404) 2018-05-10 15:48:13 -07:00