From ea2d42507e2b83d194ae81e485102eecfed645ba Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Tue, 26 Mar 2024 13:04:47 -0700 Subject: [PATCH] refactor(core): Remove unused change detection flags (#55057) This commit removes unused change detection flags. PR Close #55057 --- packages/core/src/change_detection/flags.ts | 18 ------------------ packages/core/src/core_private_export.ts | 1 - packages/core/src/render3/util/view_utils.ts | 14 +++----------- .../bundling/defer/bundle.golden_symbols.json | 6 ------ .../forms_reactive/bundle.golden_symbols.json | 3 --- .../bundle.golden_symbols.json | 3 --- .../bundling/router/bundle.golden_symbols.json | 3 --- .../bundling/todo/bundle.golden_symbols.json | 3 --- 8 files changed, 3 insertions(+), 48 deletions(-) delete mode 100644 packages/core/src/change_detection/flags.ts diff --git a/packages/core/src/change_detection/flags.ts b/packages/core/src/change_detection/flags.ts deleted file mode 100644 index 85ed449034616..0000000000000 --- a/packages/core/src/change_detection/flags.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -// TODO(atscott): Remove prior to v18 release. Keeping this around in case anyone internally needs -// to opt out temporarily. -let _ensureDirtyViewsAreAlwaysReachable = true; - -export function getEnsureDirtyViewsAreAlwaysReachable() { - return _ensureDirtyViewsAreAlwaysReachable; -} -export function setEnsureDirtyViewsAreAlwaysReachable(v: boolean) { - _ensureDirtyViewsAreAlwaysReachable = v; -} diff --git a/packages/core/src/core_private_export.ts b/packages/core/src/core_private_export.ts index 759105cc77c6c..60d7fc5a35889 100644 --- a/packages/core/src/core_private_export.ts +++ b/packages/core/src/core_private_export.ts @@ -11,7 +11,6 @@ export {detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, whenSt export {IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, ImageConfig as ɵImageConfig} from './application/application_tokens'; export {internalCreateApplication as ɵinternalCreateApplication} from './application/create_application'; export {defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers} from './change_detection/change_detection'; -export {getEnsureDirtyViewsAreAlwaysReachable as ɵgetEnsureDirtyViewsAreAlwaysReachable, setEnsureDirtyViewsAreAlwaysReachable as ɵsetEnsureDirtyViewsAreAlwaysReachable} from './change_detection/flags'; export {SchedulingMode as ɵSchedulingMode} from './change_detection/scheduling/ng_zone_scheduling'; export {ChangeDetectionScheduler as ɵChangeDetectionScheduler, ZONELESS_ENABLED as ɵZONELESS_ENABLED} from './change_detection/scheduling/zoneless_scheduling'; export {provideZonelessChangeDetection as ɵprovideZonelessChangeDetection} from './change_detection/scheduling/zoneless_scheduling_impl'; diff --git a/packages/core/src/render3/util/view_utils.ts b/packages/core/src/render3/util/view_utils.ts index d6d2e386d3494..c153077b1ebbf 100644 --- a/packages/core/src/render3/util/view_utils.ts +++ b/packages/core/src/render3/util/view_utils.ts @@ -6,7 +6,6 @@ * found in the LICENSE file at https://angular.io/license */ -import {getEnsureDirtyViewsAreAlwaysReachable} from '../../change_detection/flags'; import {NotificationType} from '../../change_detection/scheduling/zoneless_scheduling'; import {RuntimeError, RuntimeErrorCode} from '../../errors'; import {assertDefined, assertGreaterThan, assertGreaterThanOrEqual, assertIndexInRange, assertLessThan} from '../../util/assert'; @@ -210,18 +209,11 @@ export function requiresRefreshOrTraversal(lView: LView) { */ export function updateAncestorTraversalFlagsOnAttach(lView: LView) { lView[ENVIRONMENT].changeDetectionScheduler?.notify(NotificationType.AfterRenderHooks); - // TODO(atscott): Simplify if...else cases once getEnsureDirtyViewsAreAlwaysReachable is always - // `true`. When we attach a view that's marked `Dirty`, we should ensure that it is reached during - // the next CD traversal so we add the `RefreshView` flag and mark ancestors accordingly. + if (lView[FLAGS] & LViewFlags.Dirty) { + lView[FLAGS] |= LViewFlags.RefreshView; + } if (requiresRefreshOrTraversal(lView)) { markAncestorsForTraversal(lView); - } else if (lView[FLAGS] & LViewFlags.Dirty) { - if (getEnsureDirtyViewsAreAlwaysReachable()) { - lView[FLAGS] |= LViewFlags.RefreshView; - markAncestorsForTraversal(lView); - } else { - lView[ENVIRONMENT].changeDetectionScheduler?.notify(); - } } } diff --git a/packages/core/test/bundling/defer/bundle.golden_symbols.json b/packages/core/test/bundling/defer/bundle.golden_symbols.json index e006cdaef5337..bc231fc48f128 100644 --- a/packages/core/test/bundling/defer/bundle.golden_symbols.json +++ b/packages/core/test/bundling/defer/bundle.golden_symbols.json @@ -527,9 +527,6 @@ { "name": "_currentInjector" }, - { - "name": "_ensureDirtyViewsAreAlwaysReachable" - }, { "name": "_findMatchingDehydratedViewImpl" }, @@ -1379,9 +1376,6 @@ { "name": "init_fields" }, - { - "name": "init_flags" - }, { "name": "init_forward_ref" }, diff --git a/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json b/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json index fa6a8d624f40d..1bcceea02e735 100644 --- a/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json +++ b/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json @@ -632,9 +632,6 @@ { "name": "_currentInjector" }, - { - "name": "_ensureDirtyViewsAreAlwaysReachable" - }, { "name": "_getInsertInFrontOfRNodeWithI18n" }, diff --git a/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json b/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json index 32228a711c75e..97609501b41f6 100644 --- a/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json +++ b/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json @@ -623,9 +623,6 @@ { "name": "_currentInjector" }, - { - "name": "_ensureDirtyViewsAreAlwaysReachable" - }, { "name": "_getInsertInFrontOfRNodeWithI18n" }, diff --git a/packages/core/test/bundling/router/bundle.golden_symbols.json b/packages/core/test/bundling/router/bundle.golden_symbols.json index aaf673dfeb8f9..ff9f3e31468c0 100644 --- a/packages/core/test/bundling/router/bundle.golden_symbols.json +++ b/packages/core/test/bundling/router/bundle.golden_symbols.json @@ -785,9 +785,6 @@ { "name": "_currentInjector" }, - { - "name": "_ensureDirtyViewsAreAlwaysReachable" - }, { "name": "_getInsertInFrontOfRNodeWithI18n" }, diff --git a/packages/core/test/bundling/todo/bundle.golden_symbols.json b/packages/core/test/bundling/todo/bundle.golden_symbols.json index fd7d63781c218..adebe25c65c97 100644 --- a/packages/core/test/bundling/todo/bundle.golden_symbols.json +++ b/packages/core/test/bundling/todo/bundle.golden_symbols.json @@ -545,9 +545,6 @@ { "name": "_currentInjector" }, - { - "name": "_ensureDirtyViewsAreAlwaysReachable" - }, { "name": "_getInsertInFrontOfRNodeWithI18n" },