class Ameba::Rule::Lint::ComparisonToBoolean

Overview

A rule that disallows comparison to booleans.

For example, these are considered invalid:

foo == true
bar != false
false === baz

This is because these expressions evaluate to true or false, so you could get the same result by using either the variable directly, or negating the variable.

YAML configuration example:

Lint/ComparisonToBoolean:
  Enabled: true

Included Modules

Defined in:

ameba/rule/lint/comparison_to_boolean.cr

Constant Summary

MSG = "Comparison to a boolean is pointless"
OP_NAMES = ["==", "!=", "==="] of ::String

Constructors

Instance Method Summary

Instance methods inherited from module Ameba::AST::Util

abort?(node) abort?, control_exp_code(node : Crystal::ControlExpression, code_lines) control_exp_code, exit?(node) exit?, flow_command?(node, in_loop) flow_command?, flow_expression?(node, in_loop = false) flow_expression?, literal?(node) literal?, loop?(node) loop?, name_end_location(node) name_end_location, name_location(node) name_location, name_size(node) name_size, node_source(node, code_lines) node_source, raise?(node) raise?, source_between(loc, end_loc, code_lines) : String | Nil source_between

Instance methods inherited from class Ameba::Rule::Base

==(other) ==, catch(source : Source) catch, excluded?(source) excluded?, group group, hash hash, name name, special? special?, test(source : Source, node : Crystal::ASTNode, *opts)
test(source : Source)
test

Class methods inherited from class Ameba::Rule::Base

parsed_doc parsed_doc

Constructor Detail

def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) #

def self.new(config = nil) #

A rule that disallows comparison to booleans.

For example, these are considered invalid:

foo == true
bar != false
false === baz

This is because these expressions evaluate to true or false, so you could get the same result by using either the variable directly, or negating the variable.

YAML configuration example:

Lint/ComparisonToBoolean:
  Enabled: true

[View source]

Instance Method Detail

def description : String #

def description=(description : String) #

def enabled : Bool #

def enabled=(enabled : Bool) #

def excluded : Array(String) | Nil #

def excluded=(excluded : Array(String) | Nil) #

def severity : Ameba::Severity #

def severity=(severity : Ameba::Severity) #

def test(source, node : Crystal::Call) #

[View source]