about summary refs log tree commit diff
path: root/src/libstd/lib.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-06-08 19:30:33 -0700
committerbors <bors@rust-lang.org>2016-06-08 19:30:33 -0700
commitbb4b3fb7f97924919f072ec9a360bdf943218dbf (patch)
tree3765d3082b94546c8ea1b23ae75e12aa7b43924b /src/libstd/lib.rs
parent34505e22289d3b2416ab0922131e8526d0d5cc0b (diff)
parent2de6ea7a35fb53ce5e4a7e5541a2adf425b7da23 (diff)
downloadrust-bb4b3fb7f97924919f072ec9a360bdf943218dbf.tar.gz
rust-bb4b3fb7f97924919f072ec9a360bdf943218dbf.zip
Auto merge of #32202 - arielb1:slice-patterns, r=nikomatsakis
Implement RFC495 semantics for slice patterns

non-MIR translation is still not supported for these and will happily ICE.

This is a [breaking-change] for many uses of slice_patterns.

[RFC 495 text](https://github.com/rust-lang/rfcs/blob/master/text/0495-array-pattern-changes.md)
Diffstat (limited to 'src/libstd/lib.rs')
-rw-r--r--src/libstd/lib.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index 7114d47e6e8..135ea8a5e7c 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -467,3 +467,15 @@ pub mod __rand {
 // the rustdoc documentation for primitive types. Using `include!`
 // because rustdoc only looks for these modules at the crate level.
 include!("primitive_docs.rs");
+
+// FIXME(stage0): remove this after a snapshot
+// HACK: this is needed because the interpretation of slice
+// patterns changed between stage0 and now.
+#[cfg(stage0)]
+fn slice_pat<'a, 'b, T>(t: &'a &'b [T]) -> &'a &'b [T] {
+    t
+}
+#[cfg(not(stage0))]
+fn slice_pat<'a, 'b, T>(t: &'a &'b [T]) -> &'b [T] {
+    *t
+}