File tree Expand file tree Collapse file tree 2 files changed +17
-2
lines changed Expand file tree Collapse file tree 2 files changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -5385,11 +5385,16 @@ impl<'a> Parser<'a> {
5385
5385
5386
5386
fn parse_fn_args ( & mut self , named_args : bool , allow_variadic : bool )
5387
5387
-> PResult < ' a , ( Vec < Arg > , bool ) > {
5388
+ self . expect ( & token:: OpenDelim ( token:: Paren ) ) ?;
5389
+
5390
+ if let Ok ( Some ( _) ) = self . parse_self_arg ( ) {
5391
+ return Err ( self . fatal ( "unexpected `self` argument in bare function" ) )
5392
+ }
5393
+
5388
5394
let sp = self . span ;
5389
5395
let mut variadic = false ;
5390
5396
let args: Vec < Option < Arg > > =
5391
- self . parse_unspanned_seq (
5392
- & token:: OpenDelim ( token:: Paren ) ,
5397
+ self . parse_seq_to_before_end (
5393
5398
& token:: CloseDelim ( token:: Paren ) ,
5394
5399
SeqSep :: trailing_allowed ( token:: Comma ) ,
5395
5400
|p| {
@@ -5436,6 +5441,8 @@ impl<'a> Parser<'a> {
5436
5441
}
5437
5442
) ?;
5438
5443
5444
+ self . eat ( & token:: CloseDelim ( token:: Paren ) ) ;
5445
+
5439
5446
let args: Vec < _ > = args. into_iter ( ) . filter_map ( |x| x) . collect ( ) ;
5440
5447
5441
5448
if variadic && args. is_empty ( ) {
Original file line number Diff line number Diff line change
1
+ error: unexpected `self` argument in bare function
2
+ --> $DIR/bare-function-self.rs:12:11
3
+ |
4
+ LL | fn a(&self) { }
5
+ | ^
6
+
7
+ error: aborting due to previous error
8
+
You can’t perform that action at this time.
0 commit comments