Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable noImplicitOverride and add override keyword to properties/functions that are overridden. #20624

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -226,7 +226,7 @@ export function createRootOutlet(outletView: OutletView): OutletComponentDefinit
return 'div';
}

getCapabilities(): InternalComponentCapabilities {
override getCapabilities(): InternalComponentCapabilities {
return WRAPPED_CAPABILITIES;
}

Expand Down
Expand Up @@ -29,7 +29,7 @@ class RootComponentManager extends CurlyComponentManager {
this.component = component;
}

create(
override create(
_owner: Owner,
_state: unknown,
_args: Nullable<VMArguments>,
Expand Down
10 changes: 5 additions & 5 deletions packages/@ember/-internals/glimmer/lib/component.ts
Expand Up @@ -843,7 +843,7 @@ class Component<S = unknown>
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.
Expand Down Expand Up @@ -921,13 +921,13 @@ class Component<S = unknown>
return this.__dispatcher;
}

on<Target>(
override on<Target>(
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
Expand Down Expand Up @@ -1177,7 +1177,7 @@ class Component<S = unknown>

static isComponentFactory = true;

static toString() {
static override toString() {
return '@ember/component';
}
}
Expand Down
Expand Up @@ -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
Expand Down Expand Up @@ -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)) {
Expand Down
10 changes: 5 additions & 5 deletions packages/@ember/-internals/glimmer/lib/components/input.ts
Expand Up @@ -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 {
Expand Down Expand Up @@ -237,15 +237,15 @@ 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 {
super.change(event);
}
}

@action input(event: Event): void {
@action override input(event: Event): void {
if (!this.isCheckbox) {
super.input(event);
}
Expand All @@ -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',
Expand Down
8 changes: 4 additions & 4 deletions packages/@ember/-internals/glimmer/lib/components/link-to.ts
Expand Up @@ -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<Route>;

validateArguments(): void {
override validateArguments(): void {
assert(
'You attempted to use the <LinkTo> component within a routeless engine, this is not supported. ' +
'If you are using the ember-engines addon, use the <LinkToExternal> component instead. ' +
Expand All @@ -305,7 +305,7 @@ class _LinkTo extends InternalComponent {
super.validateArguments();
}

get class(): string {
override get class(): string {
let classes = 'ember-view';

if (this.isActive) {
Expand Down Expand Up @@ -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',
Expand Down
10 changes: 5 additions & 5 deletions packages/@ember/-internals/glimmer/lib/components/textarea.ts
Expand Up @@ -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);
}
Expand Down
2 changes: 1 addition & 1 deletion packages/@ember/-internals/glimmer/lib/helper.ts
Expand Up @@ -128,7 +128,7 @@ export default class Helper<S = unknown> 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();

Expand Down
2 changes: 1 addition & 1 deletion packages/@ember/-internals/glimmer/lib/utils/iterator.ts
Expand Up @@ -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];
}
}
Expand Down
2 changes: 1 addition & 1 deletion packages/@ember/-internals/glimmer/lib/views/outlet.ts
Expand Up @@ -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 {
Expand Down
Expand Up @@ -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;
}
Expand All @@ -85,7 +85,7 @@ if (ENV._DEBUG_RENDER_TREE) {
});

class PassThroughRoute extends Route {
model({ model }: { model: string }) {
override model({ model }: { model: string }) {
return model;
}
}
Expand Down Expand Up @@ -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',
Expand All @@ -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);
Expand All @@ -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',
Expand All @@ -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);
Expand Down Expand Up @@ -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',
Expand Down Expand Up @@ -626,7 +626,7 @@ if (ENV._DEBUG_RENDER_TREE) {
);
}

buildInstance(options?: EngineInstanceOptions): EngineInstance {
override buildInstance(options?: EngineInstanceOptions): EngineInstance {
return (instance = super.buildInstance(options));
}
}
Expand Down
2 changes: 1 addition & 1 deletion packages/@ember/-internals/metal/lib/alias.ts
Expand Up @@ -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);
Expand Down
11 changes: 8 additions & 3 deletions packages/@ember/-internals/metal/lib/computed.ts
Expand Up @@ -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(
Expand Down Expand Up @@ -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);
Expand All @@ -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);

Expand Down
Expand Up @@ -348,7 +348,7 @@ export default class EventDispatcher extends EmberObject {
this.lazyEvents.delete(event);
}

destroy() {
override destroy() {
if (this._didSetup === false) {
return;
}
Expand All @@ -368,7 +368,7 @@ export default class EventDispatcher extends EmberObject {
return this._super(...arguments);
}

toString() {
override toString() {
return '(EventDispatcher)';
}
}
2 changes: 1 addition & 1 deletion packages/@ember/-internals/views/lib/views/core_view.ts
Expand Up @@ -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
Expand Down