Skip to content

Commit 8a425cc

Browse files
mheveryatscott
authored andcommitted
refactor(core): Cleanup circular dependency between ViewEngine and Ivy ChangeDetectorRef. (#39710)
`ChangeDetectorRef` is declared in ViewEngine but it sub-classed in Ivy. This creates a circular dependency between ViewEngine `ChangeDetectorRef` which needs to declare `__NG_ELEMENT_ID__` and ivy factory which needs to create it. The workaround used to be to pass the `ChangeDetectorRef` through stack but that created a very convoluted code. This refactoring simply bundles the two files together and removes the stack workaround making the code simpler to follow. PR Close #39710
1 parent 9d1131c commit 8a425cc

File tree

4 files changed

+186
-86
lines changed

4 files changed

+186
-86
lines changed

goldens/circular-deps/packages.json

Lines changed: 140 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,26 @@
146146
"packages/core/src/linker/component_factory.ts",
147147
"packages/core/src/change_detection/change_detection.ts",
148148
"packages/core/src/change_detection/change_detector_ref.ts",
149+
"packages/core/src/render3/interfaces/node.ts",
150+
"packages/core/src/render3/interfaces/renderer.ts",
151+
"packages/core/src/render/api.ts",
149152
"packages/core/src/render3/view_engine_compatibility.ts",
153+
"packages/core/src/render3/interfaces/type_checks.ts",
154+
"packages/core/src/render3/interfaces/container.ts",
155+
"packages/core/src/linker/view_ref.ts"
156+
],
157+
[
158+
"packages/core/src/application_ref.ts",
159+
"packages/core/src/application_tokens.ts",
160+
"packages/core/src/linker/component_factory.ts",
161+
"packages/core/src/change_detection/change_detection.ts",
162+
"packages/core/src/change_detection/change_detector_ref.ts",
150163
"packages/core/src/render3/interfaces/node.ts",
164+
"packages/core/src/render3/interfaces/renderer.ts",
165+
"packages/core/src/render/api.ts",
166+
"packages/core/src/render3/view_engine_compatibility.ts",
167+
"packages/core/src/render3/interfaces/type_checks.ts",
168+
"packages/core/src/render3/interfaces/container.ts",
151169
"packages/core/src/render3/interfaces/view.ts",
152170
"packages/core/src/di/injector.ts",
153171
"packages/core/src/di/r3_injector.ts",
@@ -160,8 +178,12 @@
160178
"packages/core/src/linker/component_factory.ts",
161179
"packages/core/src/change_detection/change_detection.ts",
162180
"packages/core/src/change_detection/change_detector_ref.ts",
163-
"packages/core/src/render3/view_engine_compatibility.ts",
164181
"packages/core/src/render3/interfaces/node.ts",
182+
"packages/core/src/render3/interfaces/renderer.ts",
183+
"packages/core/src/render/api.ts",
184+
"packages/core/src/render3/view_engine_compatibility.ts",
185+
"packages/core/src/render3/interfaces/type_checks.ts",
186+
"packages/core/src/render3/interfaces/container.ts",
165187
"packages/core/src/render3/interfaces/view.ts",
166188
"packages/core/src/metadata.ts",
167189
"packages/core/src/di.ts",
@@ -181,20 +203,12 @@
181203
"packages/core/src/linker/component_factory.ts",
182204
"packages/core/src/change_detection/change_detection.ts",
183205
"packages/core/src/change_detection/change_detector_ref.ts",
184-
"packages/core/src/render3/view_engine_compatibility.ts",
185206
"packages/core/src/render3/interfaces/node.ts",
186-
"packages/core/src/render3/interfaces/view.ts",
187-
"packages/core/src/render3/interfaces/container.ts",
188-
"packages/core/src/linker/view_ref.ts"
189-
],
190-
[
191-
"packages/core/src/application_ref.ts",
192-
"packages/core/src/application_tokens.ts",
193-
"packages/core/src/linker/component_factory.ts",
194-
"packages/core/src/change_detection/change_detection.ts",
195-
"packages/core/src/change_detection/change_detector_ref.ts",
207+
"packages/core/src/render3/interfaces/renderer.ts",
208+
"packages/core/src/render/api.ts",
196209
"packages/core/src/render3/view_engine_compatibility.ts",
197-
"packages/core/src/render3/interfaces/node.ts",
210+
"packages/core/src/render3/interfaces/type_checks.ts",
211+
"packages/core/src/render3/interfaces/container.ts",
198212
"packages/core/src/render3/interfaces/view.ts",
199213
"packages/core/src/render3/interfaces/definition.ts",
200214
"packages/core/src/core.ts",
@@ -216,6 +230,9 @@
216230
"packages/core/src/linker/component_factory.ts",
217231
"packages/core/src/change_detection/change_detection.ts",
218232
"packages/core/src/change_detection/change_detector_ref.ts",
233+
"packages/core/src/render3/interfaces/node.ts",
234+
"packages/core/src/render3/interfaces/renderer.ts",
235+
"packages/core/src/render/api.ts",
219236
"packages/core/src/render3/view_engine_compatibility.ts",
220237
"packages/core/src/render3/state.ts",
221238
"packages/core/src/render3/assert.ts",
@@ -228,7 +245,6 @@
228245
"packages/core/src/linker/component_factory.ts",
229246
"packages/core/src/change_detection/change_detection.ts",
230247
"packages/core/src/change_detection/change_detector_ref.ts",
231-
"packages/core/src/render3/view_engine_compatibility.ts",
232248
"packages/core/src/render3/view_ref.ts"
233249
],
234250
[
@@ -237,7 +253,6 @@
237253
"packages/core/src/linker/component_factory.ts",
238254
"packages/core/src/change_detection/change_detection.ts",
239255
"packages/core/src/change_detection/change_detector_ref.ts",
240-
"packages/core/src/render3/view_engine_compatibility.ts",
241256
"packages/core/src/render3/view_ref.ts",
242257
"packages/core/src/linker/view_container_ref.ts",
243258
"packages/core/src/di/injector.ts",
@@ -251,7 +266,6 @@
251266
"packages/core/src/linker/component_factory.ts",
252267
"packages/core/src/change_detection/change_detection.ts",
253268
"packages/core/src/change_detection/change_detector_ref.ts",
254-
"packages/core/src/render3/view_engine_compatibility.ts",
255269
"packages/core/src/render3/view_ref.ts",
256270
"packages/core/src/linker/view_container_ref.ts",
257271
"packages/core/src/render3/di.ts",
@@ -267,7 +281,6 @@
267281
"packages/core/src/linker/component_factory.ts",
268282
"packages/core/src/change_detection/change_detection.ts",
269283
"packages/core/src/change_detection/change_detector_ref.ts",
270-
"packages/core/src/render3/view_engine_compatibility.ts",
271284
"packages/core/src/render3/view_ref.ts",
272285
"packages/core/src/linker/view_container_ref.ts",
273286
"packages/core/src/render3/di.ts",
@@ -282,7 +295,6 @@
282295
"packages/core/src/linker/component_factory.ts",
283296
"packages/core/src/change_detection/change_detection.ts",
284297
"packages/core/src/change_detection/change_detector_ref.ts",
285-
"packages/core/src/render3/view_engine_compatibility.ts",
286298
"packages/core/src/render3/view_ref.ts",
287299
"packages/core/src/linker/view_container_ref.ts",
288300
"packages/core/src/render3/di.ts",
@@ -295,7 +307,6 @@
295307
"packages/core/src/linker/component_factory.ts",
296308
"packages/core/src/change_detection/change_detection.ts",
297309
"packages/core/src/change_detection/change_detector_ref.ts",
298-
"packages/core/src/render3/view_engine_compatibility.ts",
299310
"packages/core/src/render3/view_ref.ts",
300311
"packages/core/src/linker/view_container_ref.ts",
301312
"packages/core/src/render3/instructions/shared.ts",
@@ -316,7 +327,6 @@
316327
"packages/core/src/linker/component_factory.ts",
317328
"packages/core/src/change_detection/change_detection.ts",
318329
"packages/core/src/change_detection/change_detector_ref.ts",
319-
"packages/core/src/render3/view_engine_compatibility.ts",
320330
"packages/core/src/render3/view_ref.ts",
321331
"packages/core/src/linker/view_container_ref.ts",
322332
"packages/core/src/render3/instructions/shared.ts",
@@ -340,7 +350,6 @@
340350
"packages/core/src/linker/component_factory.ts",
341351
"packages/core/src/change_detection/change_detection.ts",
342352
"packages/core/src/change_detection/change_detector_ref.ts",
343-
"packages/core/src/render3/view_engine_compatibility.ts",
344353
"packages/core/src/render3/view_ref.ts",
345354
"packages/core/src/linker/view_container_ref.ts",
346355
"packages/core/src/render3/instructions/shared.ts",
@@ -359,7 +368,6 @@
359368
"packages/core/src/linker/component_factory.ts",
360369
"packages/core/src/change_detection/change_detection.ts",
361370
"packages/core/src/change_detection/change_detector_ref.ts",
362-
"packages/core/src/render3/view_engine_compatibility.ts",
363371
"packages/core/src/render3/view_ref.ts",
364372
"packages/core/src/linker/view_container_ref.ts",
365373
"packages/core/src/render3/instructions/shared.ts",
@@ -379,7 +387,6 @@
379387
"packages/core/src/linker/component_factory.ts",
380388
"packages/core/src/change_detection/change_detection.ts",
381389
"packages/core/src/change_detection/change_detector_ref.ts",
382-
"packages/core/src/render3/view_engine_compatibility.ts",
383390
"packages/core/src/render3/view_ref.ts",
384391
"packages/core/src/linker/view_container_ref.ts",
385392
"packages/core/src/render3/instructions/shared.ts",
@@ -392,7 +399,6 @@
392399
"packages/core/src/linker/component_factory.ts",
393400
"packages/core/src/change_detection/change_detection.ts",
394401
"packages/core/src/change_detection/change_detector_ref.ts",
395-
"packages/core/src/render3/view_engine_compatibility.ts",
396402
"packages/core/src/render3/view_ref.ts",
397403
"packages/core/src/linker/view_container_ref.ts",
398404
"packages/core/src/render3/instructions/shared.ts",
@@ -844,15 +850,13 @@
844850
[
845851
"packages/core/src/change_detection/change_detection.ts",
846852
"packages/core/src/change_detection/change_detector_ref.ts",
847-
"packages/core/src/render3/view_engine_compatibility.ts",
848853
"packages/core/src/render3/view_ref.ts",
849854
"packages/core/src/linker/view_container_ref.ts",
850855
"packages/core/src/linker/component_factory.ts"
851856
],
852857
[
853858
"packages/core/src/change_detection/change_detection.ts",
854859
"packages/core/src/change_detection/change_detector_ref.ts",
855-
"packages/core/src/render3/view_engine_compatibility.ts",
856860
"packages/core/src/render3/view_ref.ts",
857861
"packages/core/src/linker/view_container_ref.ts",
858862
"packages/core/src/render3/instructions/shared.ts",
@@ -864,7 +868,6 @@
864868
[
865869
"packages/core/src/change_detection/change_detection.ts",
866870
"packages/core/src/change_detection/change_detector_ref.ts",
867-
"packages/core/src/render3/view_engine_compatibility.ts",
868871
"packages/core/src/render3/view_ref.ts",
869872
"packages/core/src/linker/view_container_ref.ts",
870873
"packages/core/src/render3/instructions/shared.ts",
@@ -877,19 +880,16 @@
877880
],
878881
[
879882
"packages/core/src/change_detection/change_detector_ref.ts",
880-
"packages/core/src/render3/view_engine_compatibility.ts"
881-
],
882-
[
883-
"packages/core/src/change_detection/change_detector_ref.ts",
884-
"packages/core/src/render3/view_engine_compatibility.ts",
885883
"packages/core/src/render3/interfaces/node.ts",
886-
"packages/core/src/render3/interfaces/view.ts",
884+
"packages/core/src/render3/interfaces/renderer.ts",
885+
"packages/core/src/render/api.ts",
886+
"packages/core/src/render3/view_engine_compatibility.ts",
887+
"packages/core/src/render3/interfaces/type_checks.ts",
887888
"packages/core/src/render3/interfaces/container.ts",
888889
"packages/core/src/linker/view_ref.ts"
889890
],
890891
[
891892
"packages/core/src/change_detection/change_detector_ref.ts",
892-
"packages/core/src/render3/view_engine_compatibility.ts",
893893
"packages/core/src/render3/view_ref.ts"
894894
],
895895
[
@@ -998,31 +998,129 @@
998998
"packages/core/src/render3/view_engine_compatibility.ts"
999999
],
10001000
[
1001+
"packages/core/src/render/api.ts",
1002+
"packages/core/src/render3/view_engine_compatibility.ts",
1003+
"packages/core/src/render3/interfaces/renderer.ts"
1004+
],
1005+
[
1006+
"packages/core/src/render/api.ts",
1007+
"packages/core/src/render3/view_engine_compatibility.ts",
1008+
"packages/core/src/render3/interfaces/type_checks.ts",
10011009
"packages/core/src/render3/interfaces/container.ts",
10021010
"packages/core/src/render3/interfaces/node.ts",
1003-
"packages/core/src/render3/interfaces/view.ts"
1011+
"packages/core/src/render3/interfaces/renderer.ts"
10041012
],
10051013
[
1014+
"packages/core/src/render/api.ts",
1015+
"packages/core/src/render3/view_engine_compatibility.ts",
1016+
"packages/core/src/render3/interfaces/type_checks.ts",
10061017
"packages/core/src/render3/interfaces/container.ts",
1007-
"packages/core/src/render3/interfaces/view.ts"
1018+
"packages/core/src/render3/interfaces/renderer.ts"
10081019
],
10091020
[
1021+
"packages/core/src/render/api.ts",
1022+
"packages/core/src/render3/view_engine_compatibility.ts",
1023+
"packages/core/src/render3/interfaces/type_checks.ts",
1024+
"packages/core/src/render3/interfaces/container.ts",
1025+
"packages/core/src/render3/interfaces/view.ts",
10101026
"packages/core/src/render3/interfaces/definition.ts",
10111027
"packages/core/src/render3/interfaces/node.ts",
1012-
"packages/core/src/render3/interfaces/view.ts"
1028+
"packages/core/src/render3/interfaces/renderer.ts"
10131029
],
10141030
[
1015-
"packages/core/src/render3/interfaces/definition.ts",
1016-
"packages/core/src/render3/interfaces/view.ts"
1031+
"packages/core/src/render/api.ts",
1032+
"packages/core/src/render3/view_engine_compatibility.ts",
1033+
"packages/core/src/render3/interfaces/type_checks.ts",
1034+
"packages/core/src/render3/interfaces/container.ts",
1035+
"packages/core/src/render3/interfaces/view.ts",
1036+
"packages/core/src/render3/interfaces/node.ts",
1037+
"packages/core/src/render3/interfaces/renderer.ts"
10171038
],
10181039
[
1040+
"packages/core/src/render/api.ts",
1041+
"packages/core/src/render3/view_engine_compatibility.ts",
1042+
"packages/core/src/render3/interfaces/type_checks.ts",
1043+
"packages/core/src/render3/interfaces/container.ts",
1044+
"packages/core/src/render3/interfaces/view.ts",
1045+
"packages/core/src/render3/interfaces/query.ts",
10191046
"packages/core/src/render3/interfaces/node.ts",
1020-
"packages/core/src/render3/interfaces/view.ts"
1047+
"packages/core/src/render3/interfaces/renderer.ts"
10211048
],
10221049
[
1023-
"packages/core/src/render3/interfaces/node.ts",
1050+
"packages/core/src/render/api.ts",
1051+
"packages/core/src/render3/view_engine_compatibility.ts",
1052+
"packages/core/src/render3/interfaces/type_checks.ts",
1053+
"packages/core/src/render3/interfaces/container.ts",
10241054
"packages/core/src/render3/interfaces/view.ts",
1025-
"packages/core/src/render3/interfaces/query.ts"
1055+
"packages/core/src/render3/interfaces/renderer.ts"
1056+
],
1057+
[
1058+
"packages/core/src/render/api.ts",
1059+
"packages/core/src/render3/view_engine_compatibility.ts",
1060+
"packages/core/src/render3/interfaces/type_checks.ts",
1061+
"packages/core/src/render3/interfaces/node.ts",
1062+
"packages/core/src/render3/interfaces/renderer.ts"
1063+
],
1064+
[
1065+
"packages/core/src/render/api.ts",
1066+
"packages/core/src/render3/view_engine_compatibility.ts",
1067+
"packages/core/src/render3/interfaces/type_checks.ts",
1068+
"packages/core/src/render3/interfaces/renderer.ts"
1069+
],
1070+
[
1071+
"packages/core/src/render/api.ts",
1072+
"packages/core/src/render3/view_engine_compatibility.ts",
1073+
"packages/core/src/render3/state.ts",
1074+
"packages/core/src/render3/assert.ts",
1075+
"packages/core/src/render3/interfaces/injector.ts",
1076+
"packages/core/src/render3/interfaces/node.ts",
1077+
"packages/core/src/render3/interfaces/renderer.ts"
1078+
],
1079+
[
1080+
"packages/core/src/render/api.ts",
1081+
"packages/core/src/render3/view_engine_compatibility.ts",
1082+
"packages/core/src/render3/state.ts",
1083+
"packages/core/src/render3/assert.ts",
1084+
"packages/core/src/render3/interfaces/node.ts",
1085+
"packages/core/src/render3/interfaces/renderer.ts"
1086+
],
1087+
[
1088+
"packages/core/src/render/api.ts",
1089+
"packages/core/src/render3/view_engine_compatibility.ts",
1090+
"packages/core/src/render3/state.ts",
1091+
"packages/core/src/render3/interfaces/node.ts",
1092+
"packages/core/src/render3/interfaces/renderer.ts"
1093+
],
1094+
[
1095+
"packages/core/src/render/api.ts",
1096+
"packages/core/src/render3/view_engine_compatibility.ts",
1097+
"packages/core/src/render3/state.ts",
1098+
"packages/core/src/render3/util/view_utils.ts",
1099+
"packages/core/src/render3/interfaces/context.ts",
1100+
"packages/core/src/render3/interfaces/renderer.ts"
1101+
],
1102+
[
1103+
"packages/core/src/render/api.ts",
1104+
"packages/core/src/render3/view_engine_compatibility.ts",
1105+
"packages/core/src/render3/state.ts",
1106+
"packages/core/src/render3/util/view_utils.ts",
1107+
"packages/core/src/render3/interfaces/node.ts",
1108+
"packages/core/src/render3/interfaces/renderer.ts"
1109+
],
1110+
[
1111+
"packages/core/src/render/api.ts",
1112+
"packages/core/src/render3/view_engine_compatibility.ts",
1113+
"packages/core/src/render3/state.ts",
1114+
"packages/core/src/render3/util/view_utils.ts",
1115+
"packages/core/src/render3/interfaces/renderer.ts"
1116+
],
1117+
[
1118+
"packages/core/src/render3/interfaces/container.ts",
1119+
"packages/core/src/render3/interfaces/view.ts"
1120+
],
1121+
[
1122+
"packages/core/src/render3/interfaces/definition.ts",
1123+
"packages/core/src/render3/interfaces/view.ts"
10261124
],
10271125
[
10281126
"packages/core/src/render3/interfaces/query.ts",

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy