@@ -98,7 +98,7 @@ pub(crate) fn find_ignores(ctx: &mut Linter, file: &SyntaxNode) {
9898 let end = start + TextSize :: new ( trimmed. len ( ) as u32 ) ;
9999 let range = TextRange :: new ( start, end) ;
100100
101- ctx. report ( Violation :: new (
101+ ctx. report ( Violation :: for_range (
102102 Rule :: UnusedIgnore ,
103103 format ! ( "unknown name {trimmed}" ) ,
104104 range,
@@ -144,6 +144,37 @@ alter table t drop column c cascade;
144144 assert ! ( ignore. violation_names. contains( & Rule :: BanDropColumn ) ) ;
145145 }
146146
147+ #[ test]
148+ fn multiple_sql_comments_with_ignore_is_ok ( ) {
149+ let sql = "
150+ -- fooo bar
151+ -- buzz
152+ -- squawk-ignore prefer-robust-stmts
153+ create table x();
154+
155+ select 1;
156+ " ;
157+
158+ let parse = squawk_syntax:: SourceFile :: parse ( sql) ;
159+ let mut linter = Linter :: with_all_rules ( ) ;
160+ find_ignores ( & mut linter, & parse. syntax_node ( ) ) ;
161+
162+ assert_eq ! ( linter. ignores. len( ) , 1 ) ;
163+ let ignore = & linter. ignores [ 0 ] ;
164+ assert ! (
165+ ignore. violation_names. contains( & Rule :: PreferRobustStmts ) ,
166+ "Make sure we picked up the ignore"
167+ ) ;
168+
169+ let errors = linter. lint ( & parse, sql) ;
170+
171+ assert_eq ! (
172+ errors,
173+ vec![ ] ,
174+ "We shouldn't have any errors because we have the ignore setup"
175+ ) ;
176+ }
177+
147178 #[ test]
148179 fn single_ignore_c_style_comment ( ) {
149180 let sql = r#"
@@ -217,7 +248,7 @@ create table users (
217248"# ;
218249
219250 let parse = squawk_syntax:: SourceFile :: parse ( sql) ;
220- let errors = linter. lint ( parse, sql) ;
251+ let errors = linter. lint ( & parse, sql) ;
221252 assert_eq ! ( errors. len( ) , 0 ) ;
222253 }
223254
@@ -227,7 +258,7 @@ create table users (
227258 let sql = r#"alter table t add column c char;"# ;
228259
229260 let parse = squawk_syntax:: SourceFile :: parse ( sql) ;
230- let errors = linter. lint ( parse, sql) ;
261+ let errors = linter. lint ( & parse, sql) ;
231262 assert_eq ! ( errors. len( ) , 1 ) ;
232263 }
233264
@@ -244,7 +275,7 @@ create table test_table (
244275 "# ;
245276
246277 let parse = squawk_syntax:: SourceFile :: parse ( sql) ;
247- let errors = linter. lint ( parse, sql) ;
278+ let errors = linter. lint ( & parse, sql) ;
248279 assert_eq ! ( errors. len( ) , 0 ) ;
249280 }
250281
@@ -282,7 +313,7 @@ alter table t drop column c cascade;
282313 assert ! ( ignore. violation_names. is_empty( ) ) ;
283314
284315 let errors: Vec < _ > = linter
285- . lint ( parse, sql)
316+ . lint ( & parse, sql)
286317 . into_iter ( )
287318 . map ( |x| x. code )
288319 . collect ( ) ;
@@ -353,7 +384,7 @@ alter table t2 drop column c2 cascade;
353384
354385 let parse = squawk_syntax:: SourceFile :: parse ( sql) ;
355386 let errors: Vec < _ > = linter
356- . lint ( parse, sql)
387+ . lint ( & parse, sql)
357388 . into_iter ( )
358389 . map ( |x| x. code )
359390 . collect ( ) ;
@@ -377,7 +408,7 @@ alter table t2 drop column c2 cascade;
377408
378409 let parse = squawk_syntax:: SourceFile :: parse ( sql) ;
379410 let errors: Vec < _ > = linter
380- . lint ( parse, sql)
411+ . lint ( & parse, sql)
381412 . into_iter ( )
382413 . map ( |x| x. code )
383414 . collect ( ) ;
0 commit comments