about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser/ty.rs
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-10-03 03:39:46 +0200
committerMazdak Farrokhzad <twingoow@gmail.com>2019-10-07 06:01:38 +0200
commita7ba754b6c021bc6244cde8c52d3d0b352082560 (patch)
tree1b20f13b3812d9c28563458d27b7857904f43af2 /src/libsyntax/parse/parser/ty.rs
parent7f9638d5d4b0b0f4ad592c135e155cdef1ddfb72 (diff)
downloadrust-a7ba754b6c021bc6244cde8c52d3d0b352082560.tar.gz
rust-a7ba754b6c021bc6244cde8c52d3d0b352082560.zip
syntax: unify and simplify fn signature parsing.
Diffstat (limited to 'src/libsyntax/parse/parser/ty.rs')
-rw-r--r--src/libsyntax/parse/parser/ty.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libsyntax/parse/parser/ty.rs b/src/libsyntax/parse/parser/ty.rs
index 41ee2a1599d..c9446a880b0 100644
--- a/src/libsyntax/parse/parser/ty.rs
+++ b/src/libsyntax/parse/parser/ty.rs
@@ -4,7 +4,7 @@ use crate::{maybe_whole, maybe_recover_from_interpolated_ty_qpath};
 use crate::ptr::P;
 use crate::ast::{self, Ty, TyKind, MutTy, BareFnTy, FunctionRetTy, GenericParam, Lifetime, Ident};
 use crate::ast::{TraitBoundModifier, TraitObjectSyntax, GenericBound, GenericBounds, PolyTraitRef};
-use crate::ast::{Mutability, AnonConst, FnDecl, Mac};
+use crate::ast::{Mutability, AnonConst, Mac};
 use crate::parse::token::{self, Token};
 use crate::source_map::Span;
 use crate::symbol::{kw};
@@ -288,12 +288,12 @@ impl<'a> Parser<'a> {
         };
 
         self.expect_keyword(kw::Fn)?;
-        let inputs = self.parse_fn_params(false, true)?;
-        let ret_ty = self.parse_ret_ty(false)?;
-        let decl = P(FnDecl {
-            inputs,
-            output: ret_ty,
-        });
+        let cfg = super::ParamCfg {
+            is_self_allowed: false,
+            allow_c_variadic: true,
+            is_name_required: |_| false,
+        };
+        let decl = self.parse_fn_decl(cfg, false)?;
         Ok(TyKind::BareFn(P(BareFnTy {
             abi,
             unsafety,