class Ameba::Rule::Lint::ComparisonToBoolean
- Ameba::Rule::Lint::ComparisonToBoolean
- Ameba::Rule::Base
- Reference
- Object
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
- Ameba::AST::Util
- YAML::Serializable
- YAML::Serializable::Strict
Defined in:
ameba/rule/lint/comparison_to_boolean.crConstant Summary
-
MSG =
"Comparison to a boolean is pointless" -
OP_NAMES =
["==", "!=", "==="] of ::String
Constructors
- .new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
-
.new(config = nil)
A rule that disallows comparison to booleans.
Class Method Summary
-
.parsed_doc : String | Nil
Returns documentation for this rule, if there is any.
Instance Method Summary
- #description : String
- #description=(description : String)
- #enabled : Bool
- #enabled=(enabled : Bool)
- #excluded : Array(String) | Nil
- #excluded=(excluded : Array(String) | Nil)
- #severity : Ameba::Severity
- #severity=(severity : Ameba::Severity)
- #test(source, node : Crystal::Call)
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
Constructor Detail
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
Class Method Detail
def self.parsed_doc : String | Nil
#
Returns documentation for this rule, if there is any.
module Ameba
# This is a test rule.
# Does nothing.
class MyRule < Ameba::Rule::Base
def test(source)
end
end
end
MyRule.parsed_doc # => "This is a test rule.\nDoes nothing."