Struct rslint_core::groups::errors::NoSetterReturn[][src]

pub struct NoSetterReturn {}
Expand description

Disallow setters to return values.

Setters cannot return values. To be more precise, a setter that returns a value is not treated as an error, but we cannot use the returned value at all. Thus, if you write a setter that will return something, it is most likely either completely unnecessary or a possible error.

Note that return without a value is allowed because it is considered a control flow statement.

This rule checks setters in:

  • Object literals
  • Class declarations and class expressions
  • Property descriptors in Object.create, Object.defineProperty, Object.defineProperties, and Reflect.defineProperty

Incorrect code examples

let foo = {
    set a(value) {
        this.val = value;
        // The setter always returns a value
        return value;
    }
};

class Foo {
    set a(value) {
        this.val = value;
        // The setter always returns a value
        return this.val;
    }
}

const Bar = class {
    static set a(value) {
        if (value < 0) {
            this.val = 0;
            // The setter returns `0` if the value is negative
            return 0;
        }
        this.val = value;
    }
};

Object.defineProperty(foo, "bar", {
    set(value) {
        if (value < 0) {
            // The setter returns `false` if the value is negative
            return false;
        }
        this.val = value;
    }
});

Correct code examples

let foo = {
    set a(value) {
        this.val = value;
    }
};

class Foo {
    set a(value) {
        this.val = value;
    }
}

const Bar = class {
    static set a(value) {
        if (value < 0) {
            this.val = 0;
            // Returning without a value is allowed
            return;
        }
        this.val = value;
    }
};

Object.defineProperty(foo, "bar", {
    set(value) {
        if (value < 0) {
            // Throwing an error is also allowed
            throw new Error("Negative value is not allowed.");
        }
        this.val = value;
    }
});

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Check an individual node in the syntax tree. You can use the match_ast macro to make matching a node to an ast node easier. The reason this uses nodes and not a visitor is because nodes are more flexible, converting them to an AST node has zero cost and you can easily traverse surrounding nodes. Defaults to doing nothing. Read more

Check an individual token in the syntax tree. Defaults to doing nothing. Read more

Check the root of the tree one time. This method is guaranteed to only be called once. The root’s kind will be either SCRIPT or MODULE. Defaults to doing nothing. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Deserialize this value from the given Serde deserializer. Read more

A unique, kebab-case name for the rule.

The name of the group this rule belongs to.

Optional docs for the rule, an empty string by default

A list of tags present on this rule. Empty by default.

Whether this rule is recommended, this is a simple helper around Self::tags.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Unerase this erased pointer. Read more

Whether this implementor has acknowledged the 1.1.0 update to unerase’s documented implementation requirements. Read more

Turn this erasable pointer into an erased pointer. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.