[ruby/prism] Document ClassVariableWriteNode fields

(https://github.com/ruby/prism/pull/2162)

* Make ClassVariableWriteNode operator_loc non-nullable

* Document ClassVariableWriteNode fields

* Update config.yml

---------

https://github.com/ruby/prism/commit/659b133888

Co-authored-by: Kevin Newton <kddnewton@gmail.com>
This commit is contained in:
matthew healy 2024-03-11 20:45:54 +01:00 committed by git
parent a6dac9bb4f
commit e407e3f497
2 changed files with 27 additions and 2 deletions

View File

@ -1302,12 +1302,37 @@ nodes:
fields: fields:
- name: name - name: name
type: constant type: constant
comment: |
The name of the class variable, which is a `@@` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
@@abc = 123 # name `@@abc`
@@_test = :test # name `@@_test`
- name: name_loc - name: name_loc
type: location type: location
comment: |
The location of the variable name.
@@foo = :bar
^^^^^
- name: value - name: value
type: node type: node
comment: |
The value to assign to the class variable. Can be any node that
represents a non-void expression.
@@foo = :bar
^^^^
@@_xyz = 123
^^^
- name: operator_loc - name: operator_loc
type: location? type: location
comment: |
The location of the `=` operator.
@@foo = :bar
^
comment: | comment: |
Represents writing to a class variable. Represents writing to a class variable.

View File

@ -2691,7 +2691,7 @@ pm_class_variable_write_node_create(pm_parser_t *parser, pm_class_variable_read_
}, },
.name = read_node->name, .name = read_node->name,
.name_loc = PM_LOCATION_NODE_VALUE((pm_node_t *) read_node), .name_loc = PM_LOCATION_NODE_VALUE((pm_node_t *) read_node),
.operator_loc = PM_OPTIONAL_LOCATION_TOKEN_VALUE(operator), .operator_loc = PM_LOCATION_TOKEN_VALUE(operator),
.value = value .value = value
}; };