Corey Farwell
f447c2b443
Rollup merge of #39601 - dumbbell:update-liblibc-to-include-aarch64-unknown-freebsd, r=alexcrichton
...
liblibc: Update to include `aarch64-unknown-freebsd` support
2017-02-09 08:47:33 -05:00
Corey Farwell
15decb86b2
Rollup merge of #39595 - camlorn:structured_repr, r=eddyb
...
Make reprs use a structured representation instead of a slice
This is needed for `-z reorder-fields`. The old design uses a slice taken from HIR, plus a cache that lazily parses. The new design stores it directly in the `AdtDef` as a `ReprOptions`. We're doing this now because we need to be able to add reprs that don't necessarily exist in HIR for `-z reorder-fields`, but it needs to happen anyway.
`lookup_repr_hints` should be mostly deprecated. I want to remove it from `layout` before closing this, unless people think that should be a separate PR. The `[WIP]` is because of this. The problem with closing this as-is is that the code here isn't actually testable until some parts of the compiler start using it.
r? @eddyb
2017-02-09 08:47:32 -05:00
bors
b0e46f03d8
Auto merge of #39586 - arielb1:packed-values, r=eddyb
...
emit "align 1" metadata on loads/stores of packed structs
According to the LLVM reference:
> A value of 0 or an omitted align argument means that the operation has
the ABI alignment for the target.
So loads/stores of fields of packed structs need to have their align set
to 1. Implement that by tracking the alignment of `LvalueRef`s.
Fixes #39376 .
r? @eddyb
2017-02-09 09:02:43 +00:00
bors
fd2f8a4536
Auto merge of #39677 - frewsxcv:rollup, r=frewsxcv
...
Rollup of 9 pull requests
- Successful merges: #37928 , #38699 , #39589 , #39598 , #39599 , #39641 , #39649 , #39653 , #39671
- Failed merges:
2017-02-09 05:58:29 +00:00
Corey Farwell
1e3e904101
Rollup merge of #39671 - alexcrichton:change-order, r=brson
...
travis: Fix build order of dist-x86-linux
I just tried to build this container locally but it looks like connecting to
ftp.gnu.org requires SNI, so let's build curl/OpenSSL first to ensure that we've
got an SNI-capable client to download gcc/binutils with.
2017-02-08 23:55:51 -05:00
Corey Farwell
44fdf5bcd7
Rollup merge of #39653 - JanZerebecki:test-issue-27433, r=alexcrichton
...
Add test for #27433
2017-02-08 23:55:50 -05:00
Corey Farwell
4f8adb6831
Rollup merge of #39649 - GuillaumeGomez:join_paths-url, r=frewsxcv
...
Add missing urls on join_paths
r? @frewsxcv
2017-02-08 23:55:49 -05:00
Corey Farwell
ab7e51b2f7
Rollup merge of #39641 - Ms2ger:purge-mk, r=alexcrichton
...
Remove some leftover makefiles.
2017-02-08 23:55:48 -05:00
Corey Farwell
9f2795f7bd
Rollup merge of #39599 - alexcrichton:cargo-tarball-name, r=brson
...
Fix a manifest-generation bug on beta
Right now all Cargo release tarballs are 'nightly', they're not on the standard
channels yet.
2017-02-08 23:55:47 -05:00
Corey Farwell
a7017b582c
Rollup merge of #39598 - alexcrichton:cargo-branch, r=brson
...
Fix branch name Cargo's downloaded from
This landed on beta in #39546 and this is bringing the patch back to master.
2017-02-08 23:55:45 -05:00
Corey Farwell
4f6868aa01
Rollup merge of #39589 - ollie27:rustdoc_impl_disambiguation, r=alexcrichton
...
rustdoc: Improve impl disambiguation
* Don't disambiguate if there are multiple impls for the same type.
* Disambiguate for impls of &Foo and &mut Foo.
* Don't try to disambiguate generic types.
[before](https://doc.rust-lang.org/nightly/std/ops/trait.Rem.html#implementors ) [after](https://ollie27.github.io/rust_doc_test/std/ops/trait.Rem.html#implementors )
2017-02-08 23:55:44 -05:00
Corey Farwell
3053494a9a
Rollup merge of #38699 - japaric:lsan, r=alexcrichton
...
LeakSanitizer, ThreadSanitizer, AddressSanitizer and MemorySanitizer support
```
$ cargo new --bin leak && cd $_
$ edit Cargo.toml && tail -n3 $_
```
``` toml
[profile.dev]
opt-level = 1
```
```
$ edit src/main.rs && cat $_
```
``` rust
use std::mem;
fn main() {
let xs = vec![0, 1, 2, 3];
mem::forget(xs);
}
```
```
$ RUSTFLAGS="-Z sanitizer=leak" cargo run --target x86_64-unknown-linux-gnu; echo $?
Finished dev [optimized + debuginfo] target(s) in 0.0 secs
Running `target/debug/leak`
=================================================================
==10848==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 16 byte(s) in 1 object(s) allocated from:
#0 0x557c3488db1f in __interceptor_malloc /shared/rust/checkouts/lsan/src/compiler-rt/lib/lsan/lsan_interceptors.cc:55
#1 0x557c34888aaa in alloc::heap::exchange_malloc::h68f3f8b376a0da42 /shared/rust/checkouts/lsan/src/liballoc/heap.rs:138
#2 0x557c34888afc in leak::main::hc56ab767de6d653a $PWD/src/main.rs:4
#3 0x557c348c0806 in __rust_maybe_catch_panic ($PWD/target/debug/leak+0x3d806)
SUMMARY: LeakSanitizer: 16 byte(s) leaked in 1 allocation(s).
23
```
```
$ cargo new --bin racy && cd $_
$ edit src/main.rs && cat $_
```
``` rust
use std::thread;
static mut ANSWER: i32 = 0;
fn main() {
let t1 = thread::spawn(|| unsafe { ANSWER = 42 });
unsafe {
ANSWER = 24;
}
t1.join().ok();
}
```
```
$ RUSTFLAGS="-Z sanitizer=thread" cargo run --target x86_64-unknown-linux-gnu; echo $?
==================
WARNING: ThreadSanitizer: data race (pid=12019)
Write of size 4 at 0x562105989bb4 by thread T1:
#0 racy::main::_$u7b$$u7b$closure$u7d$$u7d$::hbe13ea9e8ac73f7e $PWD/src/main.rs:6 (racy+0x000000010e3f)
#1 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h2e466a92accacc78 /shared/rust/checkouts/lsan/src/libstd/panic.rs:296 (racy+0x000000010cc5)
#2 std::panicking::try::do_call::h7f4d2b38069e4042 /shared/rust/checkouts/lsan/src/libstd/panicking.rs:460 (racy+0x00000000c8f2)
#3 __rust_maybe_catch_panic <null> (racy+0x0000000b4e56)
#4 std::panic::catch_unwind::h31ca45621ad66d5a /shared/rust/checkouts/lsan/src/libstd/panic.rs:361 (racy+0x00000000b517)
#5 std:🧵 :Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::hccfc37175dea0b01 /shared/rust/checkouts/lsan/src/libstd/thread/mod.rs:357 (racy+0x00000000c226)
#6 _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::hd880bbf91561e033 /shared/rust/checkouts/lsan/src/liballoc/boxed.rs:605 (racy+0x00000000f27e)
#7 std::sys:👿 🧵 :Thread:🆕 :thread_start::hebdfc4b3d17afc85 <null> (racy+0x0000000abd40)
Previous write of size 4 at 0x562105989bb4 by main thread:
#0 racy::main::h23e6e5ca46d085c3 $PWD/src/main.rs:8 (racy+0x000000010d7c)
#1 __rust_maybe_catch_panic <null> (racy+0x0000000b4e56)
#2 __libc_start_main <null> (libc.so.6+0x000000020290)
Location is global 'racy::ANSWER::h543d2b139f819b19' of size 4 at 0x562105989bb4 (racy+0x0000002f8bb4)
Thread T1 (tid=12028, running) created by main thread at:
#0 pthread_create /shared/rust/checkouts/lsan/src/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:902 (racy+0x00000001aedb)
#1 std::sys:👿 🧵 :Thread:🆕 :hce44187bf4a36222 <null> (racy+0x0000000ab9ae)
#2 std:🧵 :spawn::he382608373eb667e /shared/rust/checkouts/lsan/src/libstd/thread/mod.rs:412 (racy+0x00000000b5aa)
#3 racy::main::h23e6e5ca46d085c3 $PWD/src/main.rs:6 (racy+0x000000010d5c)
#4 __rust_maybe_catch_panic <null> (racy+0x0000000b4e56)
#5 __libc_start_main <null> (libc.so.6+0x000000020290)
SUMMARY: ThreadSanitizer: data race $PWD/src/main.rs:6 in racy::main::_$u7b$$u7b$closure$u7d$$u7d$::hbe13ea9e8ac73f7e
==================
ThreadSanitizer: reported 1 warnings
66
```
```
$ cargo new --bin oob && cd $_
$ edit src/main.rs && cat $_
```
``` rust
fn main() {
let xs = [0, 1, 2, 3];
let y = unsafe { *xs.as_ptr().offset(4) };
}
```
```
$ RUSTFLAGS="-Z sanitizer=address" cargo run --target x86_64-unknown-linux-gnu; echo $?
=================================================================
==13328==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff29f3ecd0 at pc 0x55802dc6bf7e bp 0x7fff29f3ec90 sp 0x7fff29f3ec88
READ of size 4 at 0x7fff29f3ecd0 thread T0
#0 0x55802dc6bf7d in oob::main::h0adc7b67e5feb2e7 $PWD/src/main.rs:3
#1 0x55802dd60426 in __rust_maybe_catch_panic ($PWD/target/debug/oob+0xfe426)
#2 0x55802dd58dd9 in std::rt::lang_start::hb2951fc8a59d62a7 ($PWD/target/debug/oob+0xf6dd9)
#3 0x55802dc6c002 in main ($PWD/target/debug/oob+0xa002)
#4 0x7fad8c3b3290 in __libc_start_main (/usr/lib/libc.so.6+0x20290)
#5 0x55802dc6b719 in _start ($PWD/target/debug/oob+0x9719)
Address 0x7fff29f3ecd0 is located in stack of thread T0 at offset 48 in frame
#0 0x55802dc6bd5f in oob::main::h0adc7b67e5feb2e7 $PWD/src/main.rs:1
This frame has 1 object(s):
[32, 48) 'xs' <== Memory access at offset 48 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow $PWD/src/main.rs:3 in oob::main::h0adc7b67e5feb2e7
Shadow bytes around the buggy address:
0x1000653dfd40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000653dfd50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000653dfd60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000653dfd70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000653dfd80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x1000653dfd90: 00 00 00 00 f1 f1 f1 f1 00 00[f3]f3 00 00 00 00
0x1000653dfda0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000653dfdb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000653dfdc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000653dfdd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000653dfde0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==13328==ABORTING
1
```
```
$ cargo new --bin uninit && cd $_
$ edit src/main.rs && cat $_
```
``` rust
use std::mem;
fn main() {
let xs: [u8; 4] = unsafe { mem::uninitialized() };
let y = xs[0] + xs[1];
}
```
```
$ RUSTFLAGS="-Z sanitizer=memory" cargo run; echo $?
==30198==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x563f4b6867da in uninit::main::hc2731cd4f2ed48f8 $PWD/src/main.rs:5
#1 0x563f4b7033b6 in __rust_maybe_catch_panic ($PWD/target/debug/uninit+0x873b6)
#2 0x563f4b6fbd69 in std::rt::lang_start::hb2951fc8a59d62a7 ($PWD/target/debug/uninit+0x7fd69)
#3 0x563f4b6868a9 in main ($PWD/target/debug/uninit+0xa8a9)
#4 0x7fe844354290 in __libc_start_main (/usr/lib/libc.so.6+0x20290)
#5 0x563f4b6864f9 in _start ($PWD/target/debug/uninit+0xa4f9)
SUMMARY: MemorySanitizer: use-of-uninitialized-value $PWD/src/main.rs:5 in uninit::main::hc2731cd4f2ed48f8
Exiting
77
```
2017-02-08 23:55:43 -05:00
Corey Farwell
7f7dc764f5
Rollup merge of #37928 - chriskrycho:document-rfc-1623, r=steveklabnik
...
Document RFC 1623: static lifetime elision.
This should be the last item required for stabilizing RFC 1623 (#35897 ).
2017-02-08 23:55:42 -05:00
Jorge Aparicio
e180dd541a
sanitizer-dylib: only run where std for x86_64-linux is available
2017-02-08 22:58:53 -05:00
Alex Crichton
8fc0b37428
travis: Fix build order of dist-x86-linux
...
I just tried to build this container locally but it looks like connecting to
ftp.gnu.org requires SNI, so let's build curl/OpenSSL first to ensure that we've
got an SNI-capable client to download gcc/binutils with.
2017-02-08 17:13:46 -08:00
Jorge Aparicio
78a11f1b97
fix the sanitizer-dylib test on non x86_64 linux hosts
2017-02-08 18:51:43 -05:00
Jorge Aparicio
1914c8e0ac
dist-x86-linux: install newer kernel headers
2017-02-08 18:51:43 -05:00
Jorge Aparicio
47ae2393e6
enable sanitizers on build job that tests x86_64 linux
2017-02-08 18:51:43 -05:00
Jorge Aparicio
72058e4f4c
enable sanitizers on x86_64-linux releases
2017-02-08 18:51:43 -05:00
Jorge Aparicio
22097e6827
use helper function in the rebuild logic of the rustc_*san crates
2017-02-08 18:51:43 -05:00
Jorge Aparicio
775a93646c
build/test the sanitizers only when --enable-sanitizers is used
2017-02-08 18:51:43 -05:00
Jorge Aparicio
9af6aa3889
sanitizer support
2017-02-08 18:51:43 -05:00
Ariel Ben-Yehuda
d71988a1d4
pacify tidy
2017-02-08 22:23:21 +01:00
Ariel Ben-Yehuda
3652c095ce
address review comments
2017-02-08 22:23:21 +01:00
Ariel Ben-Yehuda
ffcfdcfe4c
Inline the function with_lvalue_ref
into trans_transmute
...
The function was a footgun because it created `undef` references to
ZSTs, which could cause trouble were they to leak to user code.
2017-02-08 22:23:21 +01:00
Ariel Ben-Yehuda
7ce1f5194c
remove unneeded drop of isize
2017-02-08 22:23:21 +01:00
Ariel Ben-Yehuda
09825de61b
emit "align 1" metadata on loads/stores of packed structs
...
According to the LLVM reference:
> A value of 0 or an omitted align argument means that the operation has
the ABI alignment for the target.
So loads/stores of fields of packed structs need to have their align set
to 1. Implement that by tracking the alignment of `LvalueRef`s.
Fixes #39376 .
2017-02-08 22:23:21 +01:00
Guillaume Gomez
3022614ec3
Add missing urls on join_paths
2017-02-08 21:53:49 +01:00
Jan Zerebecki
ab3da97615
Add test for #27433
2017-02-08 21:51:35 +01:00
bors
29dece1c8b
Auto merge of #39523 - alexcrichton:fpic, r=aturon
...
Pass -fPIC to native compiles on 32-bit
This is apparently a regression from 1.14.0 to 1.15.0. Previously we
passed `-fPIC` to C compilers on i686 targets, but the `gcc` crate
apparently [explicitly] didn't do this. I don't recall why that was
avoided but it was [previously passed by the makefiles][mk] and this
seems to have [caused a regression][regression] in Firefox, so this
commit reverts back to passing `-fPIC`.
[explicitly]: https://github.com/alexcrichton/gcc-rs/commit/362bdf20
[mk]: https://github.com/rust-lang/rust/blob/c781fc4a/mk/cfg/i686-unknown-linux-gnu.mk#L11
[regression]: https://bugzilla.mozilla.org/show_bug.cgi?id=1336155
2017-02-08 20:49:24 +00:00
Chris Krycho
4096dd684c
Add more examples, get everything passing at last.
2017-02-08 14:30:31 -05:00
bors
4379e2fa08
Auto merge of #39645 - frewsxcv:rollup, r=frewsxcv
...
Rollup of 11 pull requests
- Successful merges: #39462 , #39512 , #39529 , #39557 , #39561 , #39582 , #39583 , #39597 , #39622 , #39624 , #39630
- Failed merges:
2017-02-08 18:11:06 +00:00
Corey Farwell
62d22678d4
Rollup merge of #39630 - alexcrichton:update-manifest, r=brson
...
Rename manifest_version to manifest-version
The current manifests encode this with a dash in the name, so we should preserve
that!
2017-02-08 10:19:59 -05:00
Corey Farwell
83a581cadb
Rollup merge of #39624 - brson:relnotes-master, r=alexcrichton
...
Bump stable release date
cc https://github.com/rust-lang/rust/pull/39623
2017-02-08 10:19:58 -05:00
Corey Farwell
e15bd3177e
Rollup merge of #39622 - alexcrichton:clean-dist, r=brson
...
rustbuild: Clean build/dist on `make clean`
Prevents stale artifacts from sticking around by accident!
2017-02-08 10:19:57 -05:00
Corey Farwell
722baed173
Rollup merge of #39597 - GuillaumeGomez:correct_rustdoc_test_file, r=alexcrichton
...
Display correct filename with --test option
Fixes #39592 .
With the current files:
```rust
pub mod foo;
/// This is a Foo;
///
/// ```
/// println!("baaaaaar");
/// ```
pub struct Foo;
/// This is a Bar;
///
/// ```
/// println!("fooooo");
/// ```
pub struct Bar;
```
```rust
// note the whitespaces
/// ```
/// println!("foo");
/// ```
pub fn foo() {}
```
It displays:
```
./build/x86_64-apple-darwin/stage1/bin/rustdoc --test test.rs
running 3 tests
test test.rs - line 13 ... ok
test test.rs - line 5 ... ok
test foo.rs - line 2 ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured
```
```
` ``
println!("lol");
` ``
asdjnfasd
asd
```
It displays:
```
./build/x86_64-apple-darwin/stage1/bin/rustdoc --test foo.md
running 1 test
test <input> - line 3 ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured
```
r? @alexcrichton
2017-02-08 10:19:55 -05:00
Corey Farwell
7658921267
Rollup merge of #39583 - michaelwoerister:limit-llvm-threads, r=nikomatsakis
...
back: Limit the number of LLVM worker threads.
This should fix issue https://github.com/rust-lang/rust/issues/39568 .
Also see https://github.com/rust-lang/rust/issues/39280 .
r? @nikomatsakis
2017-02-08 10:19:54 -05:00
Corey Farwell
944933ef4e
Rollup merge of #39582 - nikomatsakis:incr-comp-issue-39569, r=michaelwoerister
...
Handle the case where an intermediate node can't be recreated
This solution grows the graph, but this is quite the corner case.
r? @michaelwoerister
2017-02-08 10:19:52 -05:00
Corey Farwell
e0eeb6e637
Rollup merge of #39561 - phungleson:libcollectionsbench, r=alexcrichton
...
Extract collections benchmarks to libcollections/bench
Good suggestion from @stjepang https://github.com/rust-lang/rust/issues/39484#issuecomment-277467765
r? @alexcrichton
2017-02-08 10:19:51 -05:00
Corey Farwell
75f97db367
Rollup merge of #39557 - bjorn3:pp-docs, r=jseyfried
...
A few documentation improvements for `syntax::print::pp`
* Moved algorithm explanation to module docs
* Added ``` before and after the examples
* Explanation of the `rbox`, `ibox` and `cbox` names
* Added docs about the breaking types to `Breaks`
2017-02-08 10:19:50 -05:00
Corey Farwell
7709c4d2b9
Rollup merge of #39529 - dylanmckay:llvm-4.0-align32, r=alexcrichton
...
[LLVM 4.0] Use 32-bits for alignment
LLVM 4.0 changes this. This change is fine to make for LLVM 3.9 as we
won't have alignments greater than 2^32-1.
2017-02-08 10:19:49 -05:00
Corey Farwell
96bf9ba94d
Rollup merge of #39512 - oconnor663:try_wait, r=alexcrichton
...
make Child::try_wait return io::Result<Option<ExitStatus>>
This is much nicer for callers who want to short-circuit real I/O errors
with `?`, because they can write this
if let Some(status) = foo.try_wait()? {
...
} else {
...
}
instead of this
match foo.try_wait() {
Ok(status) => {
...
}
Err(err) if err.kind() == io::ErrorKind::WouldBlock => {
...
}
Err(err) => return Err(err),
}
The original design of `try_wait` was patterned after the `Read` and
`Write` traits, which support both blocking and non-blocking
implementations in a single API. But since `try_wait` is never blocking,
it makes sense to optimize for the non-blocking case.
Tracking issue: https://github.com/rust-lang/rust/issues/38903
2017-02-08 10:19:48 -05:00
Corey Farwell
f69259ecf8
Rollup merge of #39462 - emilio:improper-ctypes, r=nikomatsakis
...
lint/ctypes: Don't warn on sized structs with PhantomData.
Fixes #34798
2017-02-08 10:19:47 -05:00
Ms2ger
52a887e12b
Remove some leftover makefiles.
2017-02-08 10:56:42 +01:00
Guillaume Gomez
d2f8abf254
Add more test for rustdoc --test
2017-02-08 10:10:06 +01:00
bors
10f6a5c443
Auto merge of #39638 - frewsxcv:rollup, r=frewsxcv
...
Rollup of 13 pull requests
- Successful merges: #38764 , #39361 , #39372 , #39374 , #39400 , #39426 , #39431 , #39459 , #39482 , #39545 , #39593 , #39620 , #39621
- Failed merges:
2017-02-08 03:55:13 +00:00
Corey Farwell
0a815ac816
Rollup merge of #39621 - GuillaumeGomez:current_dir_docs, r=steveklabnik
...
Add missing urls for current_dir
r? @steveklabnik
2017-02-07 22:54:32 -05:00
Corey Farwell
68872a8a90
Rollup merge of #39620 - Gheoan:patch-1, r=steveklabnik
...
add missing comma
2017-02-07 22:54:30 -05:00
Corey Farwell
83595fa2f4
Rollup merge of #39593 - steveklabnik:bookshelf-landing-page, r=frewsxcv
...
Re-write the doc index page
Clarify and reorganize.
Add the section for the bookshelf. More to come here in the near future!
Part of #39588
2017-02-07 22:54:29 -05:00
Corey Farwell
1531071a8a
Rollup merge of #39545 - JordiPolo:fix/1_15_released, r=jseyfried
...
Change deprecation warning to indicate custom derive support was removed
I'm very new to Rust and the message was confusing to me (using nightly and not really sure if I was > 1.15 or not).
2017-02-07 22:54:28 -05:00