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.
- .new(*, __context_for_yaml_serializable ctx : YAML::ParseContext, __node_for_yaml_serializable node : YAML::Nodes::Node)
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=(enabled : Bool)
- #enabled? : Bool
- #excluded : Array(String) | Nil
- #excluded=(excluded : Array(String) | Nil)
- #severity : Ameba::Severity
- #severity=(severity : Ameba::Severity)
- #since_version : SemanticVersion | Nil
- #since_version=(since_version : String)
- #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,
dynamic_literal?(node) : Bool
dynamic_literal?,
exit?(node)
exit?,
flow_command?(node, in_loop)
flow_command?,
flow_expression?(node, in_loop = false)
flow_expression?,
has_block?(node) : Bool
has_block?,
literal?(node) : Bool
literal?,
loop?(node)
loop?,
name_end_location(node)
name_end_location,
name_location(node)
name_location,
name_location_or(token : Crystal::Token, name, *, adjust_location_column_number = nil)name_location_or(node : Crystal::ASTNode, *, adjust_location_column_number = nil) name_location_or, name_size(node) name_size, node_source(node, code_lines) node_source, nodoc?(node) nodoc?, path_named?(node, *names : String) : Bool path_named?, raise?(node) raise?, source_between(loc, end_loc, code_lines) : String | Nil source_between, static_literal?(node) : Bool static_literal?
Instance methods inherited from class Ameba::Rule::Base
==(other)
==,
catch(source : Source)
catch,
excluded?(source)
excluded?,
group
group,
hash(hasher)
hash,
name
name,
special?
special?,
test(source : Source, node : Crystal::ASTNode, *opts)test(source : Source) test
Class methods inherited from class Ameba::Rule::Base
default_severity : Ameba::Severity
default_severity
Macros inherited from class Ameba::Rule::Base
issue_for(*args, **kwargs, &block)
issue_for
Macros inherited from module Ameba::Config::RuleConfig
properties(&block)
properties
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
def self.new(*, __context_for_yaml_serializable ctx : YAML::ParseContext, __node_for_yaml_serializable node : YAML::Nodes::Node)
#
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."