about summary refs log tree commit diff
diff options
context:
space:
mode:
authorglendc <decauwsemaecker.glen@gmail.com>2015-10-10 00:01:42 +0000
committerglendc <decauwsemaecker.glen@gmail.com>2015-10-10 09:27:24 +0000
commit55546362d998fdd5022f547f083570c4a1363e2b (patch)
tree7f204cc007c17b444b09042c509ec83e978fab83
parent7dcc4d7dcbc7980969264a35b58cf6167df0fd7a (diff)
downloadrust-55546362d998fdd5022f547f083570c4a1363e2b.tar.gz
rust-55546362d998fdd5022f547f083570c4a1363e2b.zip
Whitelisting PatWild for E0022. Fix #28822
-rw-r--r--src/librustc/middle/check_const.rs1
-rw-r--r--src/test/run-pass/issue-28822.rs16
2 files changed, 17 insertions, 0 deletions
diff --git a/src/librustc/middle/check_const.rs b/src/librustc/middle/check_const.rs
index 15c56d23da2..662dfdfd4e7 100644
--- a/src/librustc/middle/check_const.rs
+++ b/src/librustc/middle/check_const.rs
@@ -177,6 +177,7 @@ impl<'a, 'tcx> CheckCrateVisitor<'a, 'tcx> {
             for arg in &fd.inputs {
                 match arg.pat.node {
                     hir::PatIdent(hir::BindByValue(hir::MutImmutable), _, None) => {}
+                    hir::PatWild(_) => {}
                     _ => {
                         span_err!(self.tcx.sess, arg.pat.span, E0022,
                                   "arguments of constant functions can only \
diff --git a/src/test/run-pass/issue-28822.rs b/src/test/run-pass/issue-28822.rs
new file mode 100644
index 00000000000..5a010f2be7a
--- /dev/null
+++ b/src/test/run-pass/issue-28822.rs
@@ -0,0 +1,16 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![feature(const_fn)]
+
+fn main() {}
+
+const fn size_ofs(_: usize) {}
+const fn size_ofs2(_foo: usize) {}