class Ameba::AST::Assignment
- Ameba::AST::Assignment
- Reference
- Object
Overview
Represents the assignment to the variable. Holds the assign node and the variable.
Defined in:
ameba/ast/variabling/assignment.crConstructors
-
.new(node : Crystal::ASTNode, variable : Ameba::AST::Variable, scope : Ameba::AST::Scope)
Creates a new assignment.
Instance Method Summary
-
#branch : Branch | Nil
Branch of this assignment.
- #end_location(*args, **options)
- #end_location(*args, **options, &)
-
#in_branch?
Returns true if this assignment is in a branch, false if not.
- #location(*args, **options)
- #location(*args, **options, &)
-
#node : Crystal::ASTNode
The actual assignment node.
-
#op_assign?
Returns true if this assignment is an op assign, false if not.
- #referenced=(referenced : Bool)
- #referenced? : Bool
- #referenced_in_loop?
-
#scope : Scope
A scope assignment belongs to
-
#target_node
Returns the target node of the variable in this assignment.
- #to_s(*args, **options)
- #to_s(*args, **options, &)
-
#transformed?
Indicates whether the node is a transformed assignment by the compiler.
-
#variable : Variable
Variable of this assignment.
Constructor Detail
Creates a new assignment.
Assignment.new(node, variable, scope)
Instance Method Detail
Returns true if this assignment is in a branch, false if not. For example, this assignment is in a branch:
a = 1 if a.nil?
Returns true if this assignment is an op assign, false if not. For example, this is an op assign:
a ||= 1
Indicates whether the node is a transformed assignment by the compiler. i.e.
collection.each do |(a, b)|
puts b
end
is transformed to:
collection.each do |__arg0|
a = __arg0[0]
b = __arg0[1]
puts(b)
end