diff options
| author | bors <bors@rust-lang.org> | 2016-06-08 19:30:33 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-06-08 19:30:33 -0700 |
| commit | bb4b3fb7f97924919f072ec9a360bdf943218dbf (patch) | |
| tree | 3765d3082b94546c8ea1b23ae75e12aa7b43924b /src/librustdoc | |
| parent | 34505e22289d3b2416ab0922131e8526d0d5cc0b (diff) | |
| parent | 2de6ea7a35fb53ce5e4a7e5541a2adf425b7da23 (diff) | |
| download | rust-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/librustdoc')
| -rw-r--r-- | src/librustdoc/clean/inline.rs | 9 | ||||
| -rw-r--r-- | src/librustdoc/html/format.rs | 7 |
2 files changed, 9 insertions, 7 deletions
diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index f5d54123f37..f5ca125aca9 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -22,6 +22,7 @@ use rustc::hir::def_id::DefId; use rustc::hir::print as pprust; use rustc::ty::{self, TyCtxt}; use rustc::ty::subst; +use rustc::util::common::slice_pat; use rustc_const_eval::lookup_const_by_id; @@ -197,10 +198,10 @@ fn build_struct<'a, 'tcx>(cx: &DocContext, tcx: TyCtxt<'a, 'tcx, 'tcx>, let variant = tcx.lookup_adt_def(did).struct_variant(); clean::Struct { - struct_type: match &*variant.fields { - [] => doctree::Unit, - [_] if variant.kind == ty::VariantKind::Tuple => doctree::Newtype, - [..] if variant.kind == ty::VariantKind::Tuple => doctree::Tuple, + struct_type: match slice_pat(&&*variant.fields) { + &[] => doctree::Unit, + &[_] if variant.kind == ty::VariantKind::Tuple => doctree::Newtype, + &[..] if variant.kind == ty::VariantKind::Tuple => doctree::Tuple, _ => doctree::Plain, }, generics: (&t.generics, &predicates, subst::TypeSpace).clean(cx), diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 92401a5c55f..760e84622cf 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -20,6 +20,7 @@ use std::iter::repeat; use rustc::middle::cstore::LOCAL_CRATE; use rustc::hir::def_id::{CRATE_DEF_INDEX, DefId}; +use rustc::util::common::slice_pat; use syntax::abi::Abi; use rustc::hir; @@ -474,9 +475,9 @@ impl fmt::Display for clean::Type { decl.decl) } clean::Tuple(ref typs) => { - match &**typs { - [] => primitive_link(f, clean::PrimitiveTuple, "()"), - [ref one] => { + match slice_pat(&&**typs) { + &[] => primitive_link(f, clean::PrimitiveTuple, "()"), + &[ref one] => { primitive_link(f, clean::PrimitiveTuple, "(")?; write!(f, "{},", one)?; primitive_link(f, clean::PrimitiveTuple, ")") |
