Skip to content

Commit d2d4f25

Browse files
committed
Constants on keyword parameters
1 parent 2cd9a67 commit d2d4f25

36 files changed

+94
-48
lines changed

config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1558,6 +1558,8 @@ nodes:
15581558
^^^^
15591559
- name: KeywordParameterNode
15601560
fields:
1561+
- name: name
1562+
type: constant
15611563
- name: name_loc
15621564
type: location
15631565
- name: value

lib/yarp.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -542,8 +542,8 @@ def self.yarp_locals(source)
542542
*params.optionals.map(&:name),
543543
*((params.rest.name ? params.rest.name.to_sym : :*) if params.rest && params.rest.operator != ","),
544544
*params.posts.grep(RequiredParameterNode).map(&:name),
545-
*params.keywords.reject(&:value).map { |param| param.name.chomp(":").to_sym },
546-
*params.keywords.select(&:value).map { |param| param.name.chomp(":").to_sym }
545+
*params.keywords.reject(&:value).map(&:name),
546+
*params.keywords.select(&:value).map(&:name)
547547
]
548548

549549
# TODO: When we get a ... parameter, we should be pushing * and &

src/yarp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3069,6 +3069,7 @@ yp_keyword_parameter_node_create(yp_parser_t *parser, const yp_token_t *name, yp
30693069
.end = value == NULL ? name->end : value->location.end
30703070
},
30713071
},
3072+
.name = yp_parser_constant_id_location(parser, name->start, name->end - 1),
30723073
.name_loc = YP_LOCATION_TOKEN_VALUE(name),
30733074
.value = value
30743075
};

test/yarp/errors_test.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@ def test_keywords_parameters_before_required_parameters
716716
[],
717717
[RequiredParameterNode(:a)],
718718
nil,
719-
[KeywordParameterNode(Location(), nil)],
719+
[KeywordParameterNode(:b, Location(), nil)],
720720
nil,
721721
nil
722722
),
@@ -743,7 +743,7 @@ def test_rest_keywords_parameters_before_required_parameters
743743
[],
744744
[],
745745
nil,
746-
[KeywordParameterNode(Location(), nil)],
746+
[KeywordParameterNode(:b, Location(), nil)],
747747
KeywordRestParameterNode(Location(), Location()),
748748
nil
749749
),
@@ -790,7 +790,7 @@ def test_multiple_error_in_parameters_order
790790
[],
791791
[RequiredParameterNode(:a)],
792792
nil,
793-
[KeywordParameterNode(Location(), nil)],
793+
[KeywordParameterNode(:b, Location(), nil)],
794794
KeywordRestParameterNode(Location(), Location()),
795795
nil
796796
),
@@ -819,7 +819,7 @@ def test_switching_to_optional_arguments_twice
819819
[],
820820
[RequiredParameterNode(:a)],
821821
nil,
822-
[KeywordParameterNode(Location(), nil)],
822+
[KeywordParameterNode(:b, Location(), nil)],
823823
KeywordRestParameterNode(Location(), Location()),
824824
nil
825825
),
@@ -848,7 +848,7 @@ def test_switching_to_named_arguments_twice
848848
[],
849849
[RequiredParameterNode(:a)],
850850
nil,
851-
[KeywordParameterNode(Location(), nil)],
851+
[KeywordParameterNode(:b, Location(), nil)],
852852
KeywordRestParameterNode(Location(), Location()),
853853
nil
854854
),

test/yarp/snapshots/blocks.txt

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/yarp/snapshots/lambda.txt

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/yarp/snapshots/methods.txt

Lines changed: 11 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/yarp/snapshots/procs.txt

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/yarp/snapshots/seattlerb/args_kw_block.txt

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/yarp/snapshots/seattlerb/block_kw.txt

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)