Skip to content

Commit 3ee6d1e

Browse files
author
bors-servo
authored
Auto merge of #161 - Centril:master, r=emilio
Move use of 'default fn' to its own module This is the proper way to do `cfg(...)` gating when dealing with an unstable feature that introduces syntax. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/161) <!-- Reviewable:end -->
2 parents c83bb71 + 92122e2 commit 3ee6d1e

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

lib.rs

+1-6
Original file line numberDiff line numberDiff line change
@@ -1253,12 +1253,7 @@ trait SpecFrom<A: Array, S> {
12531253
}
12541254

12551255
#[cfg(feature = "specialization")]
1256-
impl<'a, A: Array> SpecFrom<A, &'a [A::Item]> for SmallVec<A> where A::Item: Clone {
1257-
#[inline]
1258-
default fn spec_from(slice: &'a [A::Item]) -> SmallVec<A> {
1259-
slice.into_iter().cloned().collect()
1260-
}
1261-
}
1256+
mod specialization;
12621257

12631258
#[cfg(feature = "specialization")]
12641259
impl<'a, A: Array> SpecFrom<A, &'a [A::Item]> for SmallVec<A> where A::Item: Copy {

specialization.rs

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
2+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
4+
// option. This file may not be copied, modified, or distributed
5+
// except according to those terms.
6+
7+
//! Implementations that require `default fn`.
8+
9+
use super::{SpecFrom, SmallVec, Array};
10+
11+
impl<'a, A: Array> SpecFrom<A, &'a [A::Item]> for SmallVec<A> where A::Item: Clone {
12+
#[inline]
13+
default fn spec_from(slice: &'a [A::Item]) -> SmallVec<A> {
14+
slice.into_iter().cloned().collect()
15+
}
16+
}

0 commit comments

Comments
 (0)