Skip to content

Commit c077b32

Browse files
Remove "on error" types from config.yml
1 parent d1cff2f commit c077b32

4 files changed

Lines changed: 7 additions & 45 deletions

File tree

config.yml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,6 @@ nodes:
811811
- GlobalVariableReadNode
812812
- BackReferenceReadNode
813813
- NumberedReferenceReadNode
814-
- on error: ErrorRecoveryNode
815814
comment: |
816815
Represents the old name of the global variable that can be used before aliasing.
817816
@@ -852,7 +851,6 @@ nodes:
852851
kind:
853852
- SymbolNode
854853
- InterpolatedSymbolNode
855-
- on error: ErrorRecoveryNode
856854
comment: |
857855
Represents the old name of the method that will be aliased.
858856
@@ -1865,7 +1863,6 @@ nodes:
18651863
kind:
18661864
- ConstantReadNode
18671865
- ConstantPathNode
1868-
- on error: ErrorRecoveryNode
18691866
- name: inheritance_operator_loc
18701867
type: location?
18711868
comment: |
@@ -2462,9 +2459,7 @@ nodes:
24622459
^^^^^^
24632460
- name: right
24642461
type: node
2465-
kind:
2466-
- SplatNode
2467-
- on error: ErrorRecoveryNode
2462+
kind: SplatNode
24682463
comment: |
24692464
Represents the second wildcard node in the pattern.
24702465
@@ -2547,7 +2542,6 @@ nodes:
25472542
- CallTargetNode
25482543
- IndexTargetNode
25492544
- MultiTargetNode
2550-
- on error: ErrorRecoveryNode
25512545
comment: |
25522546
The index expression for `for` loops.
25532547
@@ -3301,7 +3295,6 @@ nodes:
33013295
- EmbeddedStatementsNode
33023296
- EmbeddedVariableNode
33033297
- InterpolatedStringNode # `"a" "#{b}"`
3304-
- on error: ErrorRecoveryNode
33053298
- name: closing_loc
33063299
type: location?
33073300
newline: parts
@@ -3697,7 +3690,6 @@ nodes:
36973690
kind:
36983691
- ConstantReadNode
36993692
- ConstantPathNode
3700-
- on error: ErrorRecoveryNode # module Parent module end
37013693
- name: body
37023694
type: node?
37033695
kind:
@@ -3727,7 +3719,6 @@ nodes:
37273719
- IndexTargetNode
37283720
- MultiTargetNode
37293721
- RequiredParameterNode # def m((a,b)); end
3730-
- on error: ErrorRecoveryNode
37313722
comment: |
37323723
Represents the targets expressions before a splat node.
37333724
@@ -3771,7 +3762,6 @@ nodes:
37713762
- IndexTargetNode
37723763
- MultiTargetNode
37733764
- RequiredParameterNode # def m((*,b)); end
3774-
- on error: ErrorRecoveryNode
37753765
comment: |
37763766
Represents the targets expressions after a splat node.
37773767
@@ -3815,7 +3805,6 @@ nodes:
38153805
- CallTargetNode
38163806
- IndexTargetNode
38173807
- MultiTargetNode
3818-
- on error: ErrorRecoveryNode
38193808
comment: |
38203809
Represents the targets expressions before a splat node.
38213810
@@ -3858,7 +3847,6 @@ nodes:
38583847
- CallTargetNode
38593848
- IndexTargetNode
38603849
- MultiTargetNode
3861-
- on error: ErrorRecoveryNode
38623850
comment: |
38633851
Represents the targets expressions after a splat node.
38643852
@@ -4044,7 +4032,6 @@ nodes:
40444032
kind:
40454033
- RequiredParameterNode
40464034
- MultiTargetNode
4047-
- on error: ErrorRecoveryNode
40484035
- name: keywords
40494036
type: node[]
40504037
kind:
@@ -4129,7 +4116,6 @@ nodes:
41294116
- BackReferenceReadNode # foo in ^$&
41304117
- NumberedReferenceReadNode # foo in ^$1
41314118
- ItLocalVariableReadNode # proc { 1 in ^it }
4132-
- on error: ErrorRecoveryNode # foo in ^Bar
41334119
comment: |
41344120
The variable used in the pinned expression
41354121
@@ -4327,7 +4313,6 @@ nodes:
43274313
- ConstantPathTargetNode
43284314
- CallTargetNode
43294315
- IndexTargetNode
4330-
- on error: ErrorRecoveryNode
43314316
- name: then_keyword_loc
43324317
type: location?
43334318
- name: statements

rust/ruby-prism/build.rs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,27 +47,12 @@ enum NodeFieldType {
4747
Double,
4848
}
4949

50-
#[derive(Debug, Deserialize)]
51-
#[allow(dead_code)]
52-
struct OnErrorType {
53-
#[serde(rename = "on error")]
54-
kind: String,
55-
}
56-
57-
#[derive(Debug, Deserialize)]
58-
#[serde(untagged)]
59-
#[allow(dead_code)]
60-
enum UnionKind {
61-
OnSuccess(String),
62-
OnError(OnErrorType),
63-
}
64-
6550
#[derive(Debug, Deserialize)]
6651
#[serde(untagged)]
6752
#[allow(dead_code)]
6853
enum NodeFieldKind {
6954
Concrete(String),
70-
Union(Vec<UnionKind>),
55+
Union(Vec<String>),
7156
}
7257

7358
#[derive(Debug, Deserialize)]

src/prism.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3814,21 +3814,17 @@ pm_find_pattern_node_create(pm_parser_t *parser, pm_node_list_t *nodes) {
38143814
pm_splat_node_t *left_splat_node = (pm_splat_node_t *) left;
38153815

38163816
pm_node_t *right;
3817+
pm_splat_node_t *right_splat_node;
38173818

38183819
if (nodes->size == 1) {
3819-
right = UP(pm_missing_node_create(parser, left->location.end, left->location.end));
3820+
right = left;
3821+
right_splat_node = left_splat_node;
38203822
} else {
38213823
right = nodes->nodes[nodes->size - 1];
38223824
assert(PM_NODE_TYPE_P(right, PM_SPLAT_NODE));
3825+
right_splat_node = (pm_splat_node_t *) right;
38233826
}
38243827

3825-
#if PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS
3826-
// FindPatternNode#right is typed as SplatNode in this case, so replace the potential ErrorRecoveryNode with a SplatNode.
3827-
// The resulting AST will anyway be ignored, but this file still needs to compile.
3828-
pm_splat_node_t *right_splat_node = PM_NODE_TYPE_P(right, PM_SPLAT_NODE) ? (pm_splat_node_t *) right : left_splat_node;
3829-
#else
3830-
pm_node_t *right_splat_node = right;
3831-
#endif
38323828
*node = (pm_find_pattern_node_t) {
38333829
.base = PM_NODE_INIT_NODES(parser, PM_FIND_PATTERN_NODE, 0, left, right),
38343830
.constant = NULL,

templates/template.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
module Prism
99
module Template
1010
SERIALIZE_ONLY_SEMANTICS_FIELDS = ENV.fetch("PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS", false)
11-
REMOVE_ON_ERROR_TYPES = SERIALIZE_ONLY_SEMANTICS_FIELDS
1211
CHECK_FIELD_KIND = ENV.fetch("CHECK_FIELD_KIND", false)
1312

1413
JAVA_BACKEND = ENV["PRISM_JAVA_BACKEND"] || "truffleruby"
@@ -432,13 +431,10 @@ def initialize(config, flags)
432431
when "pattern expression"
433432
# the list of all possible types is too long with 37+ different classes
434433
"Node"
435-
when Hash
436-
kind = kind.fetch("on error")
437-
REMOVE_ON_ERROR_TYPES ? nil : kind
438434
else
439435
kind
440436
end
441-
end.compact
437+
end
442438
if kinds.size == 1
443439
kinds = kinds.first
444440
kinds = nil if kinds == "Node"

0 commit comments

Comments
 (0)