11
11
use ast:: NodeId ;
12
12
use early_buffered_lints:: BufferedEarlyLintId ;
13
13
use ext:: tt:: macro_parser;
14
- use feature_gate:: { self , emit_feature_err , Features , GateIssue } ;
14
+ use feature_gate:: Features ;
15
15
use parse:: { token, ParseSess } ;
16
16
use print:: pprust;
17
17
use symbol:: keywords;
18
18
use syntax_pos:: { edition:: Edition , BytePos , Span } ;
19
19
use tokenstream:: { self , DelimSpan } ;
20
- use { ast, attr } ;
20
+ use ast;
21
21
22
22
use rustc_data_structures:: sync:: Lrc ;
23
23
use std:: iter:: Peekable ;
@@ -566,16 +566,16 @@ fn parse_sep_and_kleene_op_2018<I>(
566
566
input : & mut Peekable < I > ,
567
567
span : Span ,
568
568
sess : & ParseSess ,
569
- features : & Features ,
570
- attrs : & [ ast:: Attribute ] ,
569
+ _features : & Features ,
570
+ _attrs : & [ ast:: Attribute ] ,
571
571
) -> ( Option < token:: Token > , KleeneOp )
572
572
where
573
573
I : Iterator < Item = tokenstream:: TokenTree > ,
574
574
{
575
575
// We basically look at two token trees here, denoted as #1 and #2 below
576
576
let span = match parse_kleene_op ( input, span) {
577
577
// #1 is a `?` (needs feature gate)
578
- Ok ( Ok ( ( op, op1_span ) ) ) if op == KleeneOp :: ZeroOrOne => {
578
+ Ok ( Ok ( ( op, _op1_span ) ) ) if op == KleeneOp :: ZeroOrOne => {
579
579
return ( None , op) ;
580
580
}
581
581
@@ -585,7 +585,7 @@ where
585
585
// #1 is a separator followed by #2, a KleeneOp
586
586
Ok ( Err ( ( tok, span) ) ) => match parse_kleene_op ( input, span) {
587
587
// #2 is the `?` Kleene op, which does not take a separator (error)
588
- Ok ( Ok ( ( op, op2_span ) ) ) if op == KleeneOp :: ZeroOrOne => {
588
+ Ok ( Ok ( ( op, _op2_span ) ) ) if op == KleeneOp :: ZeroOrOne => {
589
589
// Error!
590
590
sess. span_diagnostic . span_err (
591
591
span,
0 commit comments