angular/packages/core/test
Kristiyan Kostadinov 3aa45a2fa1 fix(core): resolve forward-referenced host directives during directive matching (#58492) (#58500)
When the compiler generates the `HostDirectivesFeature`, it generates either an eager call (`ɵɵHostDirectivesFeature([])`) or a lazy call (`ɵɵHostDirectivesFeature(() => [])`. The lazy call is necessary when there are forward references within the `hostDirectives` array. Currently we resolve the lazy variant when the component definition is created which has been enough for most cases, however if the host is injected by one of its host directives, we can run into a reference error because DI is synchronous and the host's class hasn't been defined yet.

These changes resolve the issue by pushing the lazy resolution later during directive matching when all classes are guanrateed to exist.

Fixes #58485.

PR Close #58492

PR Close #58500
2024-11-04 17:18:52 +01:00
..
acceptance fix(core): resolve forward-referenced host directives during directive matching (#58492) (#58500) 2024-11-04 17:18:52 +01:00
animation refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
authoring refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
bundling fix(common): prevent warning about oversize image twice (#58021) 2024-10-02 11:46:18 +00:00
change_detection refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
compiler refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
debug refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
di refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
dom refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
hydration refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
i18n refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
linker refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
metadata refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
playground/zone-signal-input refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
reflection refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
render3 refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
sanitization refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
signals refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
strict_types refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
testability refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
util refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
zone refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
application_config_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
application_init_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
application_module_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
application_ref_integration_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
application_ref_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
BUILD.bazel test(core): Add scheduler in tests to tie into ApplicationRef.isStable (#53579) 2024-01-09 16:05:31 -08:00
change_detection_scheduler_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
component_fixture_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
defer_fixture_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
dev_mode_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
directive_lifecycle_integration_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
error_handler_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
event_emitter_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
fake_async_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
forward_ref_integration_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
runtime_error_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
test_bed_effect_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
test_bed_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
transfer_state_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00
util_spec.ts refactor: update license text to point to angular.dev (#57902) 2024-09-24 15:28:46 +02:00