Go to file
Andrew Kushnir 0bf6e58db2 fix(compiler): process `imports` first and `declarations` second while calculating scopes (#35850)
Prior to this commit, while calculating the scope for a module, Ivy compiler processed `declarations` field first and `imports` after that. That results in a couple issues:

* for Pipes with the same `name` and present in `declarations` and in an imported module, Pipe from imported module was selected. In View Engine the logic is opposite: Pipes from `declarations` field receive higher priority.
* for Directives with the same selector and present in `declarations` and in an imported module, we first invoked the logic of a Directive from `declarations` field and after that - imported Directive logic. In View Engine, it was the opposite and the logic of a Directive from the `declarations` field was invoked last.

In order to align Ivy and View Engine behavior, this commit updates the logic in which we populate module scope: we first process all imports and after that handle `declarations` field. As a result, in Ivy both use-cases listed above work similar to View Engine.

Resolves #35502.

PR Close #35850
2020-03-10 14:16:59 -04:00
.circleci ci: update components-repo-unit-tests job commit (#35961) 2020-03-10 13:29:02 -04:00
.devcontainer build: update the recommended `Dockerfile` for VSCode remote development (#34697) 2020-01-09 13:31:14 -08:00
.github ci: Migrate from CODEOWNERS to PullApprove for PR review management (#34814) 2020-01-28 09:19:34 -08:00
.vscode build: migrate references and scripts that set to build with ivy via compile=aot to use config=ivy (#33983) 2019-11-26 16:38:40 -05:00
.yarn build: vendor yarn using the .yarnrc yarn-path value (#34902) 2020-01-23 11:41:23 -08:00
aio refactor: export silentLogger not SilentLoggerFn (#34079) 2020-03-06 17:37:12 -05:00
dev-infra build: set dev-infra package to be private (#35910) 2020-03-10 14:15:58 -04:00
docs build: move build scripts to dedicated directory (#35780) 2020-03-04 08:35:26 -08:00
integration build: fix integration tests flakes using local yarn cache for bazel-schematics & ng_elements_schematics demos (#35877) 2020-03-05 15:30:20 -05:00
modules refactor(benchpress): delete unused code (#35670) 2020-03-09 12:19:25 -04:00
packages fix(compiler): process `imports` first and `declarations` second while calculating scopes (#35850) 2020-03-10 14:16:59 -04:00
scripts build(docs-infra): use local version of Zone.js when testing against local packages (#35858) 2020-03-06 17:30:20 -05:00
third_party ci: Remove old vendoring solution in favor of relying on yarn-path (#35083) 2020-02-06 15:30:51 -08:00
tools test(compiler): add a public API guard for the public compiler options (#35885) 2020-03-10 14:15:28 -04:00
.bazelignore build: add npm package manifest to npm_integration_test (#35669) 2020-02-26 12:58:35 -08:00
.bazelrc build: remove CI_CHROMEDIRVER_VERSION_ARG from integration/bazel-schematics (#33927) 2020-02-24 08:59:18 -08:00
.clang-format
.editorconfig
.gitattributes test: fix ts api guardian and public guard tests on windows (#30105) 2019-04-26 16:32:22 -07:00
.gitignore ci: do not run benchmark measurements in circleci (#34753) 2020-01-29 09:22:27 -08:00
.mailmap
.nvmrc build: migrate to node@12.14.1 (#34955) 2020-01-27 09:31:22 -08:00
.pullapprove.yml refactor(benchpress): remove benchmarks_external from ..pullapprove.yml (#35670) 2020-03-09 12:19:25 -04:00
.yarnrc build: vendor yarn using the .yarnrc yarn-path value (#34902) 2020-01-23 11:41:23 -08:00
BUILD.bazel test: saucelab targets for all karma tests (#35516) 2020-02-24 17:27:21 -08:00
CHANGELOG.md docs: release notes for the v9.1.0-next.3 release 2020-03-04 11:46:14 -08:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md docs: remove `ivy` and mention `ve` label in docs (#35809) 2020-03-04 08:34:54 -08:00
LICENSE build: bump year (#34651) 2020-01-13 07:21:43 -08:00
README.md docs: fix typo of Typescript to TypeScript (#32153) 2019-08-15 12:44:41 -07:00
WORKSPACE build: update to rules_nodejs 1.4.0 (#35813) 2020-03-03 08:58:26 -08:00
browser-providers.conf.js ci: update the browser test matrix to match supported browsers (#35202) 2020-02-14 11:14:05 -08:00
gulpfile.js build: no longer run tslint from within gulp task (#35800) 2020-03-03 09:20:49 -08:00
karma-js.conf.js ci: ensure saucelabs browsers can load karma test page (#35171) 2020-02-06 15:36:27 -08:00
package.json build: fix elements test failures on IE (#35940) 2020-03-10 14:16:34 -04:00
protractor-perf.conf.js test: ensure global options for benchmark tests can be set in bazel (#34753) 2020-01-29 09:22:27 -08:00
shims_for_IE.js
test-events.js refactor: rename unpatched event flag in Zone from `BLACK_LISTED_EVENTS` to `UNPATCHED_EVENTS` (#29617) 2019-10-04 08:44:58 -07:00
test-main.js feat(ivy): i18n - implement compile-time inlining (#32881) 2019-10-09 13:19:38 -07:00
tslint.json build: no longer run tslint from within gulp task (#35800) 2020-03-03 09:20:49 -08:00
yarn.lock build: fix elements test failures on IE (#35940) 2020-03-10 14:16:34 -04:00
yarn.lock.readme.md

README.md

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

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.