diff options
| author | bors <bors@rust-lang.org> | 2016-11-10 08:18:21 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-11-10 08:18:21 -0800 |
| commit | bc1cc1db6ddee8d57d20adc05b740e3b73649ab5 (patch) | |
| tree | f078a67dcce927d2763c2f8965cce5c9682ae9ba | |
| parent | 187d9896028f1d0b79db3010f2a546334212838b (diff) | |
| parent | 84239dfc4ad1810d5d8ff86b4e0ad008d04632d6 (diff) | |
| download | rust-bc1cc1db6ddee8d57d20adc05b740e3b73649ab5.tar.gz rust-bc1cc1db6ddee8d57d20adc05b740e3b73649ab5.zip | |
Auto merge of #37687 - nox:patch-1, r=eddyb
Work around a borrow surviving too long (fixes #37686)
| -rw-r--r-- | src/librustc_const_eval/pattern.rs | 3 | ||||
| -rw-r--r-- | src/test/run-pass/issue-37686.rs | 16 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/librustc_const_eval/pattern.rs b/src/librustc_const_eval/pattern.rs index 10b2a7625ca..241920f2949 100644 --- a/src/librustc_const_eval/pattern.rs +++ b/src/librustc_const_eval/pattern.rs @@ -223,7 +223,8 @@ impl<'a, 'gcx, 'tcx> PatternContext<'a, 'gcx, 'tcx> { } PatKind::Tuple(ref subpatterns, ddpos) => { - match self.tcx.tables().node_id_to_type(pat.id).sty { + let ty = self.tcx.tables().node_id_to_type(pat.id); + match ty.sty { ty::TyTuple(ref tys) => { let subpatterns = subpatterns.iter() diff --git a/src/test/run-pass/issue-37686.rs b/src/test/run-pass/issue-37686.rs new file mode 100644 index 00000000000..47881d4d530 --- /dev/null +++ b/src/test/run-pass/issue-37686.rs @@ -0,0 +1,16 @@ +// Copyright 2016 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. + +fn main() { + match (0, 0) { + (std::usize::MIN, std::usize::MAX) => {} + _ => {} + } +} |
