diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2019-12-11 09:55:29 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2019-12-14 09:01:09 -0500 |
| commit | d286113024ce50ada7a34f00041f4ff41f3217e6 (patch) | |
| tree | 70d2d7673cfdc4b87a1bc391ab94198af0bf634c /src/libsyntax | |
| parent | 1719337d02b0830234e3a1a86aae8f05af888cbe (diff) | |
| download | rust-d286113024ce50ada7a34f00041f4ff41f3217e6.tar.gz rust-d286113024ce50ada7a34f00041f4ff41f3217e6.zip | |
Revert "Stabilize the `never_type`, written `!`."
This reverts commit 15c30ddd69d6cc3fffe6d304c6dc968a5ed046f1.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/feature_gate/check.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libsyntax/feature_gate/check.rs b/src/libsyntax/feature_gate/check.rs index 3d2c3b1d4f9..99d89183e5b 100644 --- a/src/libsyntax/feature_gate/check.rs +++ b/src/libsyntax/feature_gate/check.rs @@ -464,11 +464,25 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> { ast::TyKind::BareFn(ref bare_fn_ty) => { self.check_extern(bare_fn_ty.ext); } + ast::TyKind::Never => { + gate_feature_post!(&self, never_type, ty.span, + "The `!` type is experimental"); + } _ => {} } visit::walk_ty(self, ty) } + fn visit_fn_ret_ty(&mut self, ret_ty: &'a ast::FunctionRetTy) { + if let ast::FunctionRetTy::Ty(ref output_ty) = *ret_ty { + if let ast::TyKind::Never = output_ty.kind { + // Do nothing. + } else { + self.visit_ty(output_ty) + } + } + } + fn visit_expr(&mut self, e: &'a ast::Expr) { match e.kind { ast::ExprKind::Box(_) => { @@ -499,6 +513,10 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> { visit::walk_expr(self, e) } + fn visit_arm(&mut self, arm: &'a ast::Arm) { + visit::walk_arm(self, arm) + } + fn visit_pat(&mut self, pattern: &'a ast::Pat) { match &pattern.kind { PatKind::Slice(pats) => { |
