Class: RuboCop::Cop::VariableForce::Reference
- Inherits:
-
Object
- Object
- RuboCop::Cop::VariableForce::Reference
- Includes:
- Locatable
- Defined in:
- lib/rubocop/cop/variable_force/reference.rb
Overview
This class represents each reference of a variable.
Constant Summary collapse
- VARIABLE_REFERENCE_TYPES =
( [VARIABLE_REFERENCE_TYPE] + OPERATOR_ASSIGNMENT_TYPES + [ZERO_ARITY_SUPER_TYPE] ).freeze
Constants included from Locatable
Locatable::BRANCH_TYPES, Locatable::CONDITION_INDEX_OF_BRANCH_NODE, Locatable::ENSURE_INDEX_OF_ENSURE_NODE, Locatable::ENSURE_TYPE, Locatable::LEFT_SIDE_INDEX_OF_LOGICAL_OPERATOR_NODE, Locatable::LOGICAL_OPERATOR_TYPES
Instance Attribute Summary collapse
-
#node ⇒ Object
readonly
Returns the value of attribute node.
-
#scope ⇒ Object
readonly
Returns the value of attribute scope.
Instance Method Summary collapse
-
#explicit? ⇒ Boolean
There's an implicit variable reference by the zero-arity
super
:. -
#initialize(node, scope) ⇒ Reference
constructor
A new instance of Reference.
Methods included from Locatable
#ancestor_nodes_in_scope, #branch_body_node, #branch_id, #branch_point_node, #branch_type, #inside_of_branch?
Constructor Details
#initialize(node, scope) ⇒ Reference
Returns a new instance of Reference.
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/rubocop/cop/variable_force/reference.rb', line 18 def initialize(node, scope) unless VARIABLE_REFERENCE_TYPES.include?(node.type) fail ArgumentError, "Node type must be any of #{VARIABLE_REFERENCE_TYPES}, " \ "passed #{node.type}" end @node = node @scope = scope end |
Instance Attribute Details
#node ⇒ Object (readonly)
Returns the value of attribute node.
16 17 18 |
# File 'lib/rubocop/cop/variable_force/reference.rb', line 16 def node @node end |
#scope ⇒ Object (readonly)
Returns the value of attribute scope.
16 17 18 |
# File 'lib/rubocop/cop/variable_force/reference.rb', line 16 def scope @scope end |
Instance Method Details
#explicit? ⇒ Boolean
There's an implicit variable reference by the zero-arity super
:
def some_method(foo)
super
end
In this case, the variable foo
is not explicitly referenced,
but it can be considered used implicitly by the super
.
37 38 39 |
# File 'lib/rubocop/cop/variable_force/reference.rb', line 37 def explicit? @node.type != ZERO_ARITY_SUPER_TYPE end |