From 87376e353e78ad4df6fcbbe9ef0f61686add4a13 Mon Sep 17 00:00:00 2001 From: Kyle Robinson Young Date: Mon, 15 Jan 2024 21:39:09 -0800 Subject: [PATCH] Enable noImplicitOverride and add override keyword to properties/functions that are overridden. Fixes GH-20604 --- .../glimmer/lib/component-managers/outlet.ts | 2 +- .../glimmer/lib/component-managers/root.ts | 2 +- .../-internals/glimmer/lib/component.ts | 10 +++---- .../glimmer/lib/components/abstract-input.ts | 4 +-- .../glimmer/lib/components/input.ts | 10 +++---- .../glimmer/lib/components/link-to.ts | 8 +++--- .../glimmer/lib/components/textarea.ts | 10 +++---- .../@ember/-internals/glimmer/lib/helper.ts | 2 +- .../-internals/glimmer/lib/utils/iterator.ts | 2 +- .../-internals/glimmer/lib/views/outlet.ts | 2 +- .../application/debug-render-tree-test.ts | 22 ++++++++-------- packages/@ember/-internals/metal/lib/alias.ts | 2 +- .../@ember/-internals/metal/lib/computed.ts | 11 +++++--- .../views/lib/system/event_dispatcher.ts | 4 +-- .../-internals/views/lib/views/core_view.ts | 2 +- packages/@ember/application/index.ts | 15 ++++++----- packages/@ember/application/instance.ts | 10 +++---- packages/@ember/application/namespace.ts | 6 ++--- .../application/type-tests/index.test.ts | 6 ++--- packages/@ember/array/proxy.ts | 4 +-- .../component/type-tests/helper/index.test.ts | 6 ++--- packages/@ember/debug/data-adapter.ts | 2 +- packages/@ember/engine/index.ts | 2 +- packages/@ember/engine/instance.ts | 2 +- .../helper/type-tests/invoke-helper.test.ts | 2 +- packages/@ember/object/-internals.ts | 2 +- packages/@ember/routing/hash-location.ts | 4 +-- packages/@ember/routing/history-location.ts | 4 +-- packages/@ember/routing/route.ts | 2 +- packages/@ember/routing/router-service.ts | 2 +- packages/@ember/routing/router.ts | 2 +- .../type-tests/route/overrides.test.ts | 26 +++++++++---------- .../type-tests/route/query-params.test.ts | 2 +- .../routing/type-tests/route/send.test.ts | 2 +- packages/ember-testing/lib/test/promise.ts | 2 +- .../lib/ember-dev/deprecation.ts | 4 +-- .../lib/ember-dev/warning.ts | 4 +-- .../lib/test-cases/abstract-application.ts | 2 +- .../lib/test-cases/application.ts | 2 +- .../lib/test-cases/autoboot-application.ts | 2 +- .../lib/test-cases/query-param.ts | 4 +-- .../lib/test-cases/rendering.ts | 2 +- .../lib/test-cases/router-non-application.ts | 2 +- .../test-cases/test-resolver-application.ts | 2 +- tsconfig/compiler-options.json | 1 + 45 files changed, 115 insertions(+), 106 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts index 39cf2cfd29c..6a077ffc558 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts @@ -226,7 +226,7 @@ export function createRootOutlet(outletView: OutletView): OutletComponentDefinit return 'div'; } - getCapabilities(): InternalComponentCapabilities { + override getCapabilities(): InternalComponentCapabilities { return WRAPPED_CAPABILITIES; } diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/root.ts b/packages/@ember/-internals/glimmer/lib/component-managers/root.ts index 00aca8f633c..e6a528f0d8c 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/root.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/root.ts @@ -29,7 +29,7 @@ class RootComponentManager extends CurlyComponentManager { this.component = component; } - create( + override create( _owner: Owner, _state: unknown, _args: Nullable, diff --git a/packages/@ember/-internals/glimmer/lib/component.ts b/packages/@ember/-internals/glimmer/lib/component.ts index ff20bec1c32..1660cf44e05 100644 --- a/packages/@ember/-internals/glimmer/lib/component.ts +++ b/packages/@ember/-internals/glimmer/lib/component.ts @@ -843,7 +843,7 @@ class Component declare [IS_DISPATCHING_ATTRS]: boolean; declare [DIRTY_TAG]: DirtyableTag; - init(properties?: object | undefined) { + override init(properties?: object | undefined) { super.init(properties); // Handle methods from ViewMixin. @@ -921,13 +921,13 @@ class Component return this.__dispatcher; } - on( + override on( name: string, target: Target, method: string | ((this: Target, ...args: any[]) => void) ): this; - on(name: string, method: ((...args: any[]) => void) | string): this; - on(name: string, target: any, method?: any) { + override on(name: string, method: ((...args: any[]) => void) | string): this; + override on(name: string, target: any, method?: any) { this._dispatcher?.setupHandlerForEmberEvent(name); // The `on` method here comes from the Evented mixin. Since this mixin // is applied to the parent of this class, however, we are still able @@ -1177,7 +1177,7 @@ class Component static isComponentFactory = true; - static toString() { + static override toString() { return '@ember/component'; } } diff --git a/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts b/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts index 01bae28b626..a21ccfd113e 100644 --- a/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts +++ b/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts @@ -101,7 +101,7 @@ class ForkedValue implements Value { } export default abstract class AbstractInput extends InternalComponent { - validateArguments(): void { + override validateArguments(): void { assert( `The ${this.constructor} component does not take any positional arguments`, this.args.positional.length === 0 @@ -159,7 +159,7 @@ export default abstract class AbstractInput extends InternalComponent { } } - protected listenerFor(name: string): EventListener { + protected override listenerFor(name: string): EventListener { let listener = super.listenerFor(name); if (this.isVirtualEventListener(name, listener)) { diff --git a/packages/@ember/-internals/glimmer/lib/components/input.ts b/packages/@ember/-internals/glimmer/lib/components/input.ts index 94d2fd706b9..c0bc7824799 100644 --- a/packages/@ember/-internals/glimmer/lib/components/input.ts +++ b/packages/@ember/-internals/glimmer/lib/components/input.ts @@ -160,14 +160,14 @@ if (hasDOM) { @public */ class _Input extends AbstractInput { - static toString(): string { + static override toString(): string { return 'Input'; } /** * The HTML class attribute. */ - get class(): string { + override get class(): string { if (this.isCheckbox) { return 'ember-checkbox ember-view'; } else { @@ -237,7 +237,7 @@ class _Input extends AbstractInput { this._checked.set(checked); } - @action change(event: Event): void { + @action override change(event: Event): void { if (this.isCheckbox) { this.checkedDidChange(event); } else { @@ -245,7 +245,7 @@ class _Input extends AbstractInput { } } - @action input(event: Event): void { + @action override input(event: Event): void { if (!this.isCheckbox) { super.input(event); } @@ -257,7 +257,7 @@ class _Input extends AbstractInput { this.checked = element.checked; } - protected isSupportedArgument(name: string): boolean { + protected override isSupportedArgument(name: string): boolean { let supportedArguments = [ 'type', 'value', diff --git a/packages/@ember/-internals/glimmer/lib/components/link-to.ts b/packages/@ember/-internals/glimmer/lib/components/link-to.ts index f5110758a4e..f4367de4289 100644 --- a/packages/@ember/-internals/glimmer/lib/components/link-to.ts +++ b/packages/@ember/-internals/glimmer/lib/components/link-to.ts @@ -275,13 +275,13 @@ function isQueryParams(value: unknown): value is QueryParams { **/ class _LinkTo extends InternalComponent { - static toString(): string { + static override toString(): string { return 'LinkTo'; } @service('-routing') private declare routing: RoutingService; - validateArguments(): void { + override validateArguments(): void { assert( 'You attempted to use the component within a routeless engine, this is not supported. ' + 'If you are using the ember-engines addon, use the component instead. ' + @@ -305,7 +305,7 @@ class _LinkTo extends InternalComponent { super.validateArguments(); } - get class(): string { + override get class(): string { let classes = 'ember-view'; if (this.isActive) { @@ -566,7 +566,7 @@ class _LinkTo extends InternalComponent { event.preventDefault(); } - protected isSupportedArgument(name: string): boolean { + protected override isSupportedArgument(name: string): boolean { let supportedArguments = [ 'route', 'model', diff --git a/packages/@ember/-internals/glimmer/lib/components/textarea.ts b/packages/@ember/-internals/glimmer/lib/components/textarea.ts index 3ab5f40c178..cb39b0b3b93 100644 --- a/packages/@ember/-internals/glimmer/lib/components/textarea.ts +++ b/packages/@ember/-internals/glimmer/lib/components/textarea.ts @@ -141,25 +141,25 @@ import { type OpaqueInternalComponentConstructor, opaquify } from './internal'; @public **/ class _Textarea extends AbstractInput { - static toString(): string { + static override toString(): string { return 'Textarea'; } - get class(): string { + override get class(): string { return 'ember-text-area ember-view'; } // See abstract-input.ts for why these are needed - @action change(event: Event): void { + @action override change(event: Event): void { super.change(event); } - @action input(event: Event): void { + @action override input(event: Event): void { super.input(event); } - protected isSupportedArgument(name: string): boolean { + protected override isSupportedArgument(name: string): boolean { let supportedArguments = ['type', 'value', 'enter', 'insert-newline', 'escape-press']; return supportedArguments.indexOf(name) !== -1 || super.isSupportedArgument(name); } diff --git a/packages/@ember/-internals/glimmer/lib/helper.ts b/packages/@ember/-internals/glimmer/lib/helper.ts index 0ee8b57d687..167f9676c35 100644 --- a/packages/@ember/-internals/glimmer/lib/helper.ts +++ b/packages/@ember/-internals/glimmer/lib/helper.ts @@ -128,7 +128,7 @@ export default class Helper extends FrameworkObject { // here to preserve the type param. private declare [SIGNATURE]: S; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); this[RECOMPUTE_TAG] = createTag(); diff --git a/packages/@ember/-internals/glimmer/lib/utils/iterator.ts b/packages/@ember/-internals/glimmer/lib/utils/iterator.ts index a8f8f98ac57..5bdefbbd469 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/iterator.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/iterator.ts @@ -179,7 +179,7 @@ class ObjectIterator extends BoundedIterator { return this.values[position]; } - memoFor(position: number): unknown { + override memoFor(position: number): unknown { return this.keys[position]; } } diff --git a/packages/@ember/-internals/glimmer/lib/views/outlet.ts b/packages/@ember/-internals/glimmer/lib/views/outlet.ts index ced2115585d..80cde14b369 100644 --- a/packages/@ember/-internals/glimmer/lib/views/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/views/outlet.ts @@ -27,7 +27,7 @@ const TOP_LEVEL_NAME = '-top-level'; export default class OutletView { static extend(injections: any): typeof OutletView { return class extends OutletView { - static create(options: any) { + static override create(options: any) { if (options) { return super.create(Object.assign({}, injections, options)); } else { diff --git a/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts b/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts index 260a61c4574..1c7db3d70de 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts +++ b/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts @@ -61,7 +61,7 @@ if (ENV._DEBUG_RENDER_TREE) { ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS = true; } - teardown() { + override teardown() { super.teardown(); ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS = this._TEMPLATE_ONLY_GLIMMER_COMPONENTS; } @@ -85,7 +85,7 @@ if (ENV._DEBUG_RENDER_TREE) { }); class PassThroughRoute extends Route { - model({ model }: { model: string }) { + override model({ model }: { model: string }) { return model; } } @@ -197,9 +197,9 @@ if (ENV._DEBUG_RENDER_TREE) { 'engine:foo', class extends Engine { isFooEngine = true; - Resolver = ModuleBasedTestResolver; + override Resolver = ModuleBasedTestResolver; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); this.register( 'template:application', @@ -222,7 +222,7 @@ if (ENV._DEBUG_RENDER_TREE) { ); } - buildInstance(options?: EngineInstanceOptions): EngineInstance { + override buildInstance(options?: EngineInstanceOptions): EngineInstance { let instance: EngineInstance & { isFooEngineInstance?: boolean; } = super.buildInstance(options); @@ -235,9 +235,9 @@ if (ENV._DEBUG_RENDER_TREE) { this.add( 'engine:bar', class extends Engine { - Resolver = ModuleBasedTestResolver; + override Resolver = ModuleBasedTestResolver; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); this.register( 'template:application', @@ -260,7 +260,7 @@ if (ENV._DEBUG_RENDER_TREE) { ); } - buildInstance(options?: EngineInstanceOptions): EngineInstance { + override buildInstance(options?: EngineInstanceOptions): EngineInstance { let instance: EngineInstance & { isBarEngineInstance?: boolean; } = super.buildInstance(options); @@ -593,9 +593,9 @@ if (ENV._DEBUG_RENDER_TREE) { 'engine:foo', class extends Engine { isFooEngine = true; - Resolver = ModuleBasedTestResolver; + override Resolver = ModuleBasedTestResolver; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); this.register( 'template:application', @@ -626,7 +626,7 @@ if (ENV._DEBUG_RENDER_TREE) { ); } - buildInstance(options?: EngineInstanceOptions): EngineInstance { + override buildInstance(options?: EngineInstanceOptions): EngineInstance { return (instance = super.buildInstance(options)); } } diff --git a/packages/@ember/-internals/metal/lib/alias.ts b/packages/@ember/-internals/metal/lib/alias.ts index af955f3cb12..2db216925f6 100644 --- a/packages/@ember/-internals/metal/lib/alias.ts +++ b/packages/@ember/-internals/metal/lib/alias.ts @@ -67,7 +67,7 @@ export class AliasedProperty extends ComputedDescriptor { this.altKey = altKey; } - setup(obj: object, keyName: string, propertyDesc: PropertyDescriptor, meta: Meta): void { + override setup(obj: object, keyName: string, propertyDesc: PropertyDescriptor, meta: Meta): void { assert(`Setting alias '${keyName}' on self`, this.altKey !== keyName); super.setup(obj, keyName, propertyDesc, meta); CHAIN_PASS_THROUGH.add(this); diff --git a/packages/@ember/-internals/metal/lib/computed.ts b/packages/@ember/-internals/metal/lib/computed.ts index aac84147b84..f7779bf05ef 100644 --- a/packages/@ember/-internals/metal/lib/computed.ts +++ b/packages/@ember/-internals/metal/lib/computed.ts @@ -319,7 +319,12 @@ export class ComputedProperty extends ComputedDescriptor { } } - setup(obj: object, keyName: string, propertyDesc: DecoratorPropertyDescriptor, meta: Meta) { + override setup( + obj: object, + keyName: string, + propertyDesc: DecoratorPropertyDescriptor, + meta: Meta + ) { super.setup(obj, keyName, propertyDesc, meta); assert( @@ -543,7 +548,7 @@ export class ComputedProperty extends ComputedDescriptor { } /* called before property is overridden */ - teardown(obj: object, keyName: string, meta: Meta): void { + override teardown(obj: object, keyName: string, meta: Meta): void { if (meta.revisionFor(keyName) !== undefined) { meta.setRevisionFor(keyName, undefined); meta.setValueFor(keyName, undefined); @@ -554,7 +559,7 @@ export class ComputedProperty extends ComputedDescriptor { } class AutoComputedProperty extends ComputedProperty { - get(obj: object, keyName: string): unknown { + override get(obj: object, keyName: string): unknown { let meta = metaFor(obj); let tagMeta = tagMetaFor(obj); diff --git a/packages/@ember/-internals/views/lib/system/event_dispatcher.ts b/packages/@ember/-internals/views/lib/system/event_dispatcher.ts index 1e281c9bcaf..cb9e11e6fb8 100644 --- a/packages/@ember/-internals/views/lib/system/event_dispatcher.ts +++ b/packages/@ember/-internals/views/lib/system/event_dispatcher.ts @@ -348,7 +348,7 @@ export default class EventDispatcher extends EmberObject { this.lazyEvents.delete(event); } - destroy() { + override destroy() { if (this._didSetup === false) { return; } @@ -368,7 +368,7 @@ export default class EventDispatcher extends EmberObject { return this._super(...arguments); } - toString() { + override toString() { return '(EventDispatcher)'; } } diff --git a/packages/@ember/-internals/views/lib/views/core_view.ts b/packages/@ember/-internals/views/lib/views/core_view.ts index c6a7529cf44..d4298829813 100644 --- a/packages/@ember/-internals/views/lib/views/core_view.ts +++ b/packages/@ember/-internals/views/lib/views/core_view.ts @@ -46,7 +46,7 @@ class CoreView extends FrameworkObject.extend(Evented, ActionHandler) { */ declare parentView: View | null; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); // Handle methods from Evented diff --git a/packages/@ember/application/index.ts b/packages/@ember/application/index.ts index 589e8b2dd73..5f76c6ac7d7 100644 --- a/packages/@ember/application/index.ts +++ b/packages/@ember/application/index.ts @@ -218,7 +218,7 @@ class Application extends Engine { @return {Ember.Registry} the built registry @private */ - static buildRegistry(namespace: Application) { + static override buildRegistry(namespace: Application) { let registry = super.buildRegistry(namespace); commonSetupRegistry(registry); @@ -228,12 +228,15 @@ class Application extends Engine { return registry; } - static initializer = buildInitializerMethod<'initializers', Application>( + static override initializer = buildInitializerMethod<'initializers', Application>( 'initializers', 'initializer' ); - static instanceInitializer = buildInitializerMethod<'instanceInitializers', ApplicationInstance>( + // There is a bug with prettier when the line length overflows here, prettier tries + // wrapping the type incorrectly. + // prettier-ignore + static override instanceInitializer = buildInitializerMethod<'instanceInitializers', ApplicationInstance>( 'instanceInitializers', 'instance initializer' ); @@ -404,7 +407,7 @@ class Application extends Engine { declare _booted: boolean; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); this.rootElement ??= 'body'; @@ -447,7 +450,7 @@ class Application extends Engine { @method buildInstance @return {ApplicationInstance} the application instance */ - buildInstance(options: EngineInstanceOptions = {}): ApplicationInstance { + override buildInstance(options: EngineInstanceOptions = {}): ApplicationInstance { assert( 'You cannot build new instances of this application since it has already been destroyed', !this.isDestroyed @@ -960,7 +963,7 @@ class Application extends Engine { } // This method must be moved to the application instance object - willDestroy() { + override willDestroy() { super.willDestroy(); if (_loaded['application'] === this) { diff --git a/packages/@ember/application/instance.ts b/packages/@ember/application/instance.ts index 11af0292375..0a58407e8bf 100644 --- a/packages/@ember/application/instance.ts +++ b/packages/@ember/application/instance.ts @@ -61,7 +61,7 @@ class ApplicationInstance extends EngineInstance { declare customEvents: Record | null; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); this.application._watchInstance(this); @@ -90,7 +90,7 @@ class ApplicationInstance extends EngineInstance { @private */ - _bootSync(options?: BootOptions) { + override _bootSync(options?: BootOptions) { if (this._booted) { return this; } @@ -120,7 +120,7 @@ class ApplicationInstance extends EngineInstance { return this; } - setupRegistry(options: BootOptions) { + override setupRegistry(options: BootOptions) { (this.constructor as typeof ApplicationInstance).setupRegistry(this.__registry__, options); } @@ -288,7 +288,7 @@ class ApplicationInstance extends EngineInstance { .then(handleTransitionResolve, handleTransitionReject); } - willDestroy() { + override willDestroy() { super.willDestroy(); this.application._unwatchInstance(this); } @@ -299,7 +299,7 @@ class ApplicationInstance extends EngineInstance { @param {Registry} registry @param {BootOptions} options */ - static setupRegistry(registry: Registry, options: BootOptions | _BootOptions = {}) { + static override setupRegistry(registry: Registry, options: BootOptions | _BootOptions = {}) { let coptions = options instanceof _BootOptions ? options : new _BootOptions(options); registry.register('-environment:main', coptions.toEnvironment(), { diff --git a/packages/@ember/application/namespace.ts b/packages/@ember/application/namespace.ts index f561d4281bb..cda6d99d784 100644 --- a/packages/@ember/application/namespace.ts +++ b/packages/@ember/application/namespace.ts @@ -42,12 +42,12 @@ class Namespace extends EmberObject { declare isNamespace: true; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); addNamespace(this); } - toString(): string { + override toString(): string { let existing_name = get(this, 'name') || get(this, 'modulePrefix'); if (existing_name) { assert("name wasn't a string", typeof existing_name === 'string'); @@ -66,7 +66,7 @@ class Namespace extends EmberObject { processNamespace(this); } - destroy() { + override destroy() { removeNamespace(this); return super.destroy(); } diff --git a/packages/@ember/application/type-tests/index.test.ts b/packages/@ember/application/type-tests/index.test.ts index ac786852da8..438cd33e334 100644 --- a/packages/@ember/application/type-tests/index.test.ts +++ b/packages/@ember/application/type-tests/index.test.ts @@ -8,12 +8,12 @@ import { expectTypeOf } from 'expect-type'; declare let owner: Owner; class App extends Application { - rootElement = '#ember-application'; - customEvents = { + override rootElement = '#ember-application'; + override customEvents = { mouseenter: null, paste: 'paste', }; - ready(): this { + override ready(): this { // I'm ready! return this; } diff --git a/packages/@ember/array/proxy.ts b/packages/@ember/array/proxy.ts index ff72f1990ac..63f075b7864 100644 --- a/packages/@ember/array/proxy.ts +++ b/packages/@ember/array/proxy.ts @@ -200,7 +200,7 @@ class ArrayProxy extends EmberObject implements PropertyDidChange { /** @internal */ _arrTag: Tag | null = null; - init(props: object | undefined) { + override init(props: object | undefined) { super.init(props); setCustomTagFor(this, customTagForArrayProxy); @@ -210,7 +210,7 @@ class ArrayProxy extends EmberObject implements PropertyDidChange { this._revalidate(); } - willDestroy() { + override willDestroy() { this._removeArrangedContentArrayObserver(); } diff --git a/packages/@ember/component/type-tests/helper/index.test.ts b/packages/@ember/component/type-tests/helper/index.test.ts index 6099ab4821e..ea86e9c7ad6 100644 --- a/packages/@ember/component/type-tests/helper/index.test.ts +++ b/packages/@ember/component/type-tests/helper/index.test.ts @@ -13,21 +13,21 @@ let helper = new Helper(owner); expectTypeOf(helper).toMatchTypeOf(); class MyHelper extends Helper { - compute([cents]: [number], { currency }: { currency: string }) { + override compute([cents]: [number], { currency }: { currency: string }) { return `${currency}${cents * 0.01}`; } } new MyHelper(owner); class NoHash extends Helper { - compute([cents]: [number]): string { + override compute([cents]: [number]): string { return `${cents * 0.01}`; } } new NoHash(owner); class NoParams extends Helper { - compute(): string { + override compute(): string { return 'hello'; } } diff --git a/packages/@ember/debug/data-adapter.ts b/packages/@ember/debug/data-adapter.ts index 150921046ad..a13f5fbb256 100644 --- a/packages/@ember/debug/data-adapter.ts +++ b/packages/@ember/debug/data-adapter.ts @@ -444,7 +444,7 @@ export default class DataAdapter extends EmberObject { @private @method willDestroy */ - willDestroy() { + override willDestroy() { this._super(...arguments); this.typeWatchers.forEach((watcher) => watcher.release()); diff --git a/packages/@ember/engine/index.ts b/packages/@ember/engine/index.ts index 27bfd5ba94b..1731fcabb7d 100644 --- a/packages/@ember/engine/index.ts +++ b/packages/@ember/engine/index.ts @@ -330,7 +330,7 @@ class Engine extends Namespace.extend(RegistryProxyMixin) { */ declare Resolver: ResolverClass; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); this.buildRegistry(); } diff --git a/packages/@ember/engine/instance.ts b/packages/@ember/engine/instance.ts index c5088e0e722..42846b0e18d 100644 --- a/packages/@ember/engine/instance.ts +++ b/packages/@ember/engine/instance.ts @@ -82,7 +82,7 @@ class EngineInstance extends EmberObject.extend(RegistryProxyMixin, ContainerPro _booted = false; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); // Ensure the guid gets setup for this instance diff --git a/packages/@ember/helper/type-tests/invoke-helper.test.ts b/packages/@ember/helper/type-tests/invoke-helper.test.ts index ceb8ed895f4..efec06cccc0 100644 --- a/packages/@ember/helper/type-tests/invoke-helper.test.ts +++ b/packages/@ember/helper/type-tests/invoke-helper.test.ts @@ -8,7 +8,7 @@ import { expectTypeOf } from 'expect-type'; // NOTE: The types should probably be stricter, but they're from glimmer itself class PlusOne extends Helper { - compute([number]: [number]) { + override compute([number]: [number]) { return number + 1; } } diff --git a/packages/@ember/object/-internals.ts b/packages/@ember/object/-internals.ts index 922c4824e4a..4711f4c96e3 100644 --- a/packages/@ember/object/-internals.ts +++ b/packages/@ember/object/-internals.ts @@ -32,7 +32,7 @@ if (DEBUG) { FrameworkObject = class DebugFrameworkObject extends EmberObject { [INIT_WAS_CALLED] = false; - init(properties: object | undefined) { + override init(properties: object | undefined) { super.init(properties); this[INIT_WAS_CALLED] = true; } diff --git a/packages/@ember/routing/hash-location.ts b/packages/@ember/routing/hash-location.ts index ce86f98d3fa..40e44bcabb1 100644 --- a/packages/@ember/routing/hash-location.ts +++ b/packages/@ember/routing/hash-location.ts @@ -41,7 +41,7 @@ export default class HashLocation extends EmberObject implements EmberLocation { private _location?: Location; declare location: Location; - init(): void { + override init(): void { this.location = this._location ?? window.location; this._hashchangeHandler = undefined; } @@ -163,7 +163,7 @@ export default class HashLocation extends EmberObject implements EmberLocation { @private @method willDestroy */ - willDestroy(): void { + override willDestroy(): void { this._removeEventListener(); } diff --git a/packages/@ember/routing/history-location.ts b/packages/@ember/routing/history-location.ts index 8c819e36e82..cff95a11f27 100644 --- a/packages/@ember/routing/history-location.ts +++ b/packages/@ember/routing/history-location.ts @@ -88,7 +88,7 @@ export default class HistoryLocation extends EmberObject implements EmberLocatio return getHash(this.location); } - init(): void { + override init(): void { this._super(...arguments); let base = document.querySelector('base'); @@ -275,7 +275,7 @@ export default class HistoryLocation extends EmberObject implements EmberLocatio @private @method willDestroy */ - willDestroy(): void { + override willDestroy(): void { this._removeEventListener(); } diff --git a/packages/@ember/routing/route.ts b/packages/@ember/routing/route.ts index f4526ba13af..fea2f2d135f 100644 --- a/packages/@ember/routing/route.ts +++ b/packages/@ember/routing/route.ts @@ -1516,7 +1516,7 @@ class Route extends EmberObject.extend(ActionHandler, Evented) once(this._router, '_setOutlets'); } - willDestroy() { + override willDestroy() { this.teardownViews(); } diff --git a/packages/@ember/routing/router-service.ts b/packages/@ember/routing/router-service.ts index 2dab52c3670..a4878119f46 100644 --- a/packages/@ember/routing/router-service.ts +++ b/packages/@ember/routing/router-service.ts @@ -80,7 +80,7 @@ class RouterService extends Service.extend(Evented) { return (this[ROUTER] = _router); } - willDestroy() { + override willDestroy() { super.willDestroy(); this[ROUTER] = undefined; diff --git a/packages/@ember/routing/router.ts b/packages/@ember/routing/router.ts index f41a58d6a4e..4dc245a7d1f 100644 --- a/packages/@ember/routing/router.ts +++ b/packages/@ember/routing/router.ts @@ -829,7 +829,7 @@ class EmberRouter extends EmberObject.extend(Evented) implements Evented { } } - willDestroy() { + override willDestroy() { if (this._toplevelView) { this._toplevelView.destroy(); this._toplevelView = null; diff --git a/packages/@ember/routing/type-tests/route/overrides.test.ts b/packages/@ember/routing/type-tests/route/overrides.test.ts index f2a152ca3a8..83a90d9d2bc 100644 --- a/packages/@ember/routing/type-tests/route/overrides.test.ts +++ b/packages/@ember/routing/type-tests/route/overrides.test.ts @@ -9,38 +9,38 @@ let owner = {} as Owner; class Foo {} class MyRoute extends Route { - resetController(_controller: Controller, _isExiting: boolean, _transition: Transition): this { + override resetController(_controller: Controller, _isExiting: boolean, _transition: Transition): this { return this; } @action - willTransition(_transition: Transition) {} + override willTransition(_transition: Transition) {} @action - didTransition() {} + override didTransition() {} @action - loading(_transition: Transition, _route: Route) {} + override loading(_transition: Transition, _route: Route) {} - activate(_transition: Transition): void {} + override activate(_transition: Transition): void {} - deactivate(_transition?: Transition): void {} + override deactivate(_transition?: Transition): void {} - beforeModel(_transition: Transition): void {} + override beforeModel(_transition: Transition): void {} - afterModel(_transition: Transition): void {} + override afterModel(_transition: Transition): void {} - redirect(_transition: Transition): void {} + override redirect(_transition: Transition): void {} - model(_params: Record, _transition: Transition): Foo | Promise { + override model(_params: Record, _transition: Transition): Foo | Promise { return new Foo(); } - setupController(_controller: Controller, _context: Foo, _transition?: Transition): void {} + override setupController(_controller: Controller, _context: Foo, _transition?: Transition): void {} - buildRouteInfoMetadata(): void {} + override buildRouteInfoMetadata(): void {} - serialize(_model: Foo | undefined, _params: string[]): { [key: string]: unknown } { + override serialize(_model: Foo | undefined, _params: string[]): { [key: string]: unknown } { return {}; } } diff --git a/packages/@ember/routing/type-tests/route/query-params.test.ts b/packages/@ember/routing/type-tests/route/query-params.test.ts index a5ca9763eea..77ed7a2670c 100644 --- a/packages/@ember/routing/type-tests/route/query-params.test.ts +++ b/packages/@ember/routing/type-tests/route/query-params.test.ts @@ -5,7 +5,7 @@ import Route from '@ember/routing/route'; let owner = {} as Owner; class MyRoute extends Route { - queryParams = { + override queryParams = { page: { refreshModel: false, replace: false, diff --git a/packages/@ember/routing/type-tests/route/send.test.ts b/packages/@ember/routing/type-tests/route/send.test.ts index cf6d74ee3bf..0ba68d96e4c 100644 --- a/packages/@ember/routing/type-tests/route/send.test.ts +++ b/packages/@ember/routing/type-tests/route/send.test.ts @@ -6,7 +6,7 @@ class MyRoute extends Route { @action topLevel(_foo: number, _opt?: boolean) {} - actions = { + override actions = { nested(_foo: string, _opt?: number) {}, }; } diff --git a/packages/ember-testing/lib/test/promise.ts b/packages/ember-testing/lib/test/promise.ts index 4a1fe520d56..b8baef37e88 100644 --- a/packages/ember-testing/lib/test/promise.ts +++ b/packages/ember-testing/lib/test/promise.ts @@ -16,7 +16,7 @@ export default class TestPromise extends RSVP.Promise { lastPromise = this; } - then( + override then( onFulfilled?: OnFulfilled | null, onRejected?: ((reason: any) => TResult2 | PromiseLike) | null, label?: string diff --git a/packages/internal-test-helpers/lib/ember-dev/deprecation.ts b/packages/internal-test-helpers/lib/ember-dev/deprecation.ts index 6f84d9df3fb..bedf03d760c 100644 --- a/packages/internal-test-helpers/lib/ember-dev/deprecation.ts +++ b/packages/internal-test-helpers/lib/ember-dev/deprecation.ts @@ -61,7 +61,7 @@ class DeprecationAssert extends DebugAssert { super('deprecate', env); } - inject(): void { + override inject(): void { let w = window as ExtendedWindow; w.expectNoDeprecation = expectNoDeprecation = this.expectNoDeprecation.bind(this); w.expectNoDeprecationAsync = expectNoDeprecationAsync = @@ -72,7 +72,7 @@ class DeprecationAssert extends DebugAssert { super.inject(); } - restore(): void { + override restore(): void { super.restore(); let w = window as ExtendedWindow; w.expectNoDeprecation = undefined; diff --git a/packages/internal-test-helpers/lib/ember-dev/warning.ts b/packages/internal-test-helpers/lib/ember-dev/warning.ts index aa669ab26c0..d7382a83f77 100644 --- a/packages/internal-test-helpers/lib/ember-dev/warning.ts +++ b/packages/internal-test-helpers/lib/ember-dev/warning.ts @@ -35,7 +35,7 @@ class WarningAssert extends DebugAssert { super('warn', env); } - inject() { + override inject() { // Expects no warning to happen within a function, or if no function is // passed, from the time of calling until the end of the test. // @@ -101,7 +101,7 @@ class WarningAssert extends DebugAssert { w.ignoreWarning = ignoreWarning; } - restore() { + override restore() { super.restore(); let w = window as ExtendedWindow; w.expectWarning = null; diff --git a/packages/internal-test-helpers/lib/test-cases/abstract-application.ts b/packages/internal-test-helpers/lib/test-cases/abstract-application.ts index bfae6b31741..539b69e103d 100644 --- a/packages/internal-test-helpers/lib/test-cases/abstract-application.ts +++ b/packages/internal-test-helpers/lib/test-cases/abstract-application.ts @@ -59,7 +59,7 @@ export default abstract class AbstractApplicationTestCase extends AbstractTestCa this._element = element; } - afterEach() { + override afterEach() { runDestroy(this.applicationInstance); runDestroy(this.application); diff --git a/packages/internal-test-helpers/lib/test-cases/application.ts b/packages/internal-test-helpers/lib/test-cases/application.ts index 81a09b77ce0..46d7b6cee8e 100644 --- a/packages/internal-test-helpers/lib/test-cases/application.ts +++ b/packages/internal-test-helpers/lib/test-cases/application.ts @@ -31,7 +31,7 @@ export default abstract class ApplicationTestCase extends TestResolverApplicatio return MyApplication.create(myOptions); } - get applicationOptions() { + override get applicationOptions() { return Object.assign(super.applicationOptions, { autoboot: false, }); diff --git a/packages/internal-test-helpers/lib/test-cases/autoboot-application.ts b/packages/internal-test-helpers/lib/test-cases/autoboot-application.ts index eaac5b77e2e..88c497d9751 100644 --- a/packages/internal-test-helpers/lib/test-cases/autoboot-application.ts +++ b/packages/internal-test-helpers/lib/test-cases/autoboot-application.ts @@ -23,7 +23,7 @@ export default abstract class AutobootApplicationTestCase extends TestResolverAp return application; } - visit(url: string) { + override visit(url: string) { return this.application.boot().then(() => { return this.applicationInstance!.visit(url); }); diff --git a/packages/internal-test-helpers/lib/test-cases/query-param.ts b/packages/internal-test-helpers/lib/test-cases/query-param.ts index 18cddb58c0a..b1fd3e1b1f5 100644 --- a/packages/internal-test-helpers/lib/test-cases/query-param.ts +++ b/packages/internal-test-helpers/lib/test-cases/query-param.ts @@ -20,7 +20,7 @@ export default abstract class QueryParamTestCase extends ApplicationTestCase { this.add( 'location:test', class extends NoneLocation { - setURL(path: string) { + override setURL(path: string) { if (testCase.expectedReplaceURL) { testCase.assert.ok(false, 'pushState occurred but a replaceState was expected'); } @@ -67,7 +67,7 @@ export default abstract class QueryParamTestCase extends ApplicationTestCase { return this.applicationInstance!.lookup(`route:${name}`); } - get routerOptions() { + override get routerOptions() { return { location: 'test', }; diff --git a/packages/internal-test-helpers/lib/test-cases/rendering.ts b/packages/internal-test-helpers/lib/test-cases/rendering.ts index e2b4ef86039..332e2abb95e 100644 --- a/packages/internal-test-helpers/lib/test-cases/rendering.ts +++ b/packages/internal-test-helpers/lib/test-cases/rendering.ts @@ -116,7 +116,7 @@ export default abstract class RenderingTestCase extends AbstractTestCase { } } - afterEach() { + override afterEach() { try { if (this.component) { runDestroy(this.component); diff --git a/packages/internal-test-helpers/lib/test-cases/router-non-application.ts b/packages/internal-test-helpers/lib/test-cases/router-non-application.ts index 03803cc22f1..e695028f1c8 100644 --- a/packages/internal-test-helpers/lib/test-cases/router-non-application.ts +++ b/packages/internal-test-helpers/lib/test-cases/router-non-application.ts @@ -101,7 +101,7 @@ export default class RouterNonApplicationTestCase extends AbstractTestCase { } } - afterEach() { + override afterEach() { try { if (this.component) { runDestroy(this.component); diff --git a/packages/internal-test-helpers/lib/test-cases/test-resolver-application.ts b/packages/internal-test-helpers/lib/test-cases/test-resolver-application.ts index e292fecc4ef..065a3e576fb 100644 --- a/packages/internal-test-helpers/lib/test-cases/test-resolver-application.ts +++ b/packages/internal-test-helpers/lib/test-cases/test-resolver-application.ts @@ -7,7 +7,7 @@ import type { InternalFactory } from '@ember/-internals/owner'; export default abstract class TestResolverApplicationTestCase extends AbstractApplicationTestCase { abstract resolver?: Resolver; - get applicationOptions() { + override get applicationOptions() { return Object.assign(super.applicationOptions, { Resolver: ModuleBasedResolver, }); diff --git a/tsconfig/compiler-options.json b/tsconfig/compiler-options.json index e8417dcb194..8444acf3fc1 100644 --- a/tsconfig/compiler-options.json +++ b/tsconfig/compiler-options.json @@ -22,6 +22,7 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": false, "isolatedModules": true, + "noImplicitOverride": true, "newLine": "LF",