[−][src]Struct rslint_core::groups::errors::NoUnsafeNegation
Deny the use of !
on the left hand side of an instanceof
or in
expression where it is ambiguous.
JavaScript precedence is higher for logical not than it is for in or instanceof. Oftentimes you see
expressions such as !foo instanceof bar
, which most of the times produces unexpected behavior.
precedence will group the expressions like (!foo) instanceof bar
. Most of the times the developer expects
the expression to check if foo
is not an instance of bar
however.
Incorrect Code Examples
ⓘThis example is not tested
if (!foo instanceof String) { }
ⓘThis example is not tested
if (!bar in {}) { }
Implementations
impl NoUnsafeNegation
[src]
Trait Implementations
impl Clone for NoUnsafeNegation
[src]
fn clone(&self) -> NoUnsafeNegation
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl CstRule for NoUnsafeNegation
[src]
fn check_node(&self, node: &SyntaxNode, ctx: &mut RuleCtx) -> Option<()>
[src]
fn check_token(&self, token: &SyntaxToken, ctx: &mut RuleCtx) -> Option<()>
[src]
fn check_root(&self, root: &SyntaxNode, ctx: &mut RuleCtx) -> Option<()>
[src]
impl Debug for NoUnsafeNegation
[src]
impl Default for NoUnsafeNegation
[src]
fn default() -> NoUnsafeNegation
[src]
impl<'de> Deserialize<'de> for NoUnsafeNegation
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Rule for NoUnsafeNegation
[src]
impl Serialize for NoUnsafeNegation
[src]
Auto Trait Implementations
impl RefUnwindSafe for NoUnsafeNegation
impl Send for NoUnsafeNegation
impl Sync for NoUnsafeNegation
impl Unpin for NoUnsafeNegation
impl UnwindSafe for NoUnsafeNegation
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> DynClone for T where
T: Clone,
[src]
T: Clone,
impl<T> Erasable for T
unsafe fn unerase(this: NonNull<Erased>) -> NonNull<T>
const ACK_1_1_0: bool
fn erase(this: NonNull<Self>) -> NonNull<Erased>
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Serialize for T where
T: Serialize + ?Sized,
[src]
T: Serialize + ?Sized,
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,