File tree 2 files changed +31
-11
lines changed
test/fixtures/rules/std_rule_cases
2 files changed +31
-11
lines changed Original file line number Diff line number Diff line change @@ -157,7 +157,9 @@ SELECT a FROM plop
157
157
}
158
158
}
159
159
} else if comma_style == "leading" {
160
- fix_point = forward_slice[ comma_seg_idx] . clone ( ) . into ( ) ;
160
+ if comma_seg_idx < forward_slice. len ( ) {
161
+ fix_point = forward_slice[ comma_seg_idx] . clone ( ) . into ( ) ;
162
+ }
161
163
} else {
162
164
let mut offset = 1 ;
163
165
@@ -186,16 +188,22 @@ SELECT a FROM plop
186
188
1
187
189
} ;
188
190
189
- let fixes = vec ! [ LintFix {
190
- edit_type: fix_type,
191
- anchor: fix_point. unwrap( ) ,
192
- edit: std:: iter:: repeat_n(
193
- SegmentBuilder :: newline( context. tables. next_id( ) , "\n " ) ,
194
- num_newlines,
195
- )
196
- . collect_vec( ) ,
197
- source: Vec :: new( ) ,
198
- } ] ;
191
+ // Only create fixes if we have a valid fix point
192
+ let fixes = if let Some ( anchor) = fix_point {
193
+ vec ! [ LintFix {
194
+ edit_type: fix_type,
195
+ anchor,
196
+ edit: std:: iter:: repeat_n(
197
+ SegmentBuilder :: newline( context. tables. next_id( ) , "\n " ) ,
198
+ num_newlines,
199
+ )
200
+ . collect_vec( ) ,
201
+ source: Vec :: new( ) ,
202
+ } ]
203
+ } else {
204
+ // Skip generating a fix if we don't have a valid anchor point
205
+ Vec :: new ( )
206
+ } ;
199
207
200
208
error_buffer. push ( LintResult :: new (
201
209
forward_slice[ seg_idx] . clone ( ) . into ( ) ,
Original file line number Diff line number Diff line change @@ -205,6 +205,18 @@ test_pass_column_name_definition_multiple:
205
205
cte_2.var
206
206
FROM cte_1, cte_2;
207
207
208
+ test_pass_edge_case_leading_comma :
209
+ # Regression test for panic with leading comma CTE
210
+ pass_str : |
211
+ with x as (
212
+ select 1 as a
213
+ )
214
+
215
+ , b as ( select 2 as e)
216
+
217
+ select *
218
+ from x, b;
219
+
208
220
test_fail_column_name_definition_newline :
209
221
fail_str : |
210
222
WITH
You can’t perform that action at this time.
0 commit comments