Commit graph

9921 commits

Author SHA1 Message Date
Josh Stone
f1003546db Reduce genericity in Scan 2019-08-12 15:03:44 -07:00
Josh Stone
0f82c0c210 Reduce genericity in Take 2019-08-12 15:03:44 -07:00
Josh Stone
46a62ca9a4 Reduce genericity in Skip 2019-08-12 15:03:44 -07:00
Josh Stone
2d7fc4dd49 Reduce genericity in TakeWhile 2019-08-12 15:03:44 -07:00
Josh Stone
5902522c04 Reduce genericity in SkipWhile 2019-08-12 15:03:44 -07:00
Josh Stone
ff60eca7a1 Avoid closures in Peekable 2019-08-12 15:03:44 -07:00
Josh Stone
df3d686598 Reduce genericity in Enumerate 2019-08-12 15:03:44 -07:00
Josh Stone
ac113f01fb Reduce genericity in Filter and FilterMap 2019-08-12 15:03:44 -07:00
Josh Stone
b1fd3d024d Remove genericity in StepBy::size_hint 2019-08-12 15:03:44 -07:00
Josh Stone
d940ddf8f5 Reduce genericity in Copied and Cloned 2019-08-12 15:03:44 -07:00
Josh Stone
27ddbf4d16 Avoid closures in the default <Zip as ZipImpl>::next 2019-08-12 15:03:44 -07:00
Josh Stone
9ef95ff4a6 Reduce genericity in FlattenCompat 2019-08-12 15:03:44 -07:00
Josh Stone
40ecbc7b7d Avoid closures in OnceWith and Successors 2019-08-12 15:03:44 -07:00
Josh Stone
7539fc69d5 Reduce genericity in Iterator::last 2019-08-12 15:03:44 -07:00
Josh Stone
0e300e4380 Reduce the genericity of Map folds 2019-08-12 15:03:44 -07:00
Josh Stone
6a04c762ff Explicitly test Iterator::position overflows 2019-08-12 15:03:44 -07:00
Josh Stone
af1bfbebe3 Explicitly test Iterator::count overflows 2019-08-12 15:03:44 -07:00
Josh Stone
95e2a4f23d Use if-let in is_sorted_by 2019-08-12 15:03:44 -07:00
Josh Stone
e67620afc4 Reduce the genericity of closures in the iterator traits
By default, closures inherit the generic parameters of their scope,
including `Self`. However, in most cases, the closures used to implement
iterators don't need to be generic on the iterator type, only its `Item`
type. We can reduce this genericity by redirecting such closures through
local functions.

This does make the closures more cumbersome to write, but it will
hopefully reduce duplication in their monomorphizations, as well as
their related type lengths.
2019-08-12 15:03:44 -07:00
Mazdak Farrokhzad
e9615f2487
Rollup merge of #63297 - RalfJung:ptr_offset, r=dtolnay
Improve pointer offset method docs

Cc @rkruppe @gnzlbg
2019-08-12 10:58:13 +02:00
Mark Rousskov
e16b12fd49
Rollup merge of #63442 - lzutao:vec-bin-search-insert, r=Mark-Simulacrum
Add an example to show how to insert item to a sorted vec

Closes #61684
cc #61742
r? @Mark-Simulacrum, @jonas-schievink
2019-08-11 15:18:46 -04:00
Mark Rousskov
061245e2b1
Rollup merge of #63346 - RalfJung:zeroed-lint, r=eddyb
Lint on some incorrect uses of mem::zeroed / mem::uninitialized

Cc https://github.com/rust-lang/rust/issues/62825 and https://internals.rust-lang.org/t/make-mem-uninitialized-and-mem-zeroed-panic-for-some-types-where-0-is-a-niche/10605

This does not yet handle `NonNull`/`NonZero*`, but it is a start.

I also improved some doc issues I hit on the way, and added a useful helper to `TyS`.

EDIT: I added the relnotes label mostly as a proposal -- I think this is worth mentioning, but leave the decision up to the release team.
2019-08-11 15:18:40 -04:00
Ralf Jung
c5a63566d6 allow the lint if a few UB-demonstrating doc tests 2019-08-11 12:04:49 +02:00
bors
2b78e10ac1 Auto merge of #63343 - ishitatsuyuki:revert-62150, r=RalfJung
Back out #62150

Ref: #62825

cc @RalfJung
2019-08-11 09:58:01 +00:00
Lzu Tao
30ba4bd8e2 Use Result::unwrap_or_else instead of matching 2019-08-10 17:16:58 +00:00
Lzu Tao
93839c3fb4 Add an example to show how to insert item to a sorted vec 2019-08-10 16:31:38 +00:00
Tatsuyuki Ishi
2358e3eff6 Revert "Rollup merge of #62150 - alex:mem-uninit-refactor, r=RalfJung"
This reverts commit 1d45156866, reversing
changes made to 0f92eb8a4a.
2019-08-10 22:16:35 +09:00
Mazdak Farrokhzad
6743ad6726
Rollup merge of #63350 - iluuu1994:use-associated-type-bounds, r=Centril
Use associated_type_bounds where applicable - closes #61738
2019-08-10 08:13:19 +02:00
Mazdak Farrokhzad
eb44561600
Rollup merge of #63056 - petrochenkov:macstd2, r=alexcrichton
Give built-in macros stable addresses in the standard library

Continuation of https://github.com/rust-lang/rust/pull/62086.

Derive macros corresponding to traits from libcore are now available through the same paths as those traits:
- `Clone` - `{core,std}::clone::Clone`
- `PartialEq` - `{core,std}::cmp::PartialEq`
- `Eq` - `{core,std}::cmp::Eq`
- `PartialOrd` - `{core,std}::cmp::PartialOrd`
- `Ord` - `{core,std}::cmp::Ord`
- `Default` - `{core,std}::default::Default`
- `Debug` - `{core,std}::fmt::Debug`
- `Hash` - `{core,std}:#️⃣:Hash`
- `Copy` - `{core,std}::marker::Copy`

Fn-like built-in macros are now available through libcore and libstd's root module, by analogy with non-builtin macros defined by libcore and libstd:
```rust
{core,std}::{
    __rust_unstable_column,
    asm,
    assert,
    cfg,
    column,
    compile_error,
    concat,
    concat_idents,
    env,
    file,
    format_args,
    format_args_nl,
    global_asm,
    include,
    include_bytes,
    include_str,
    line,
    log_syntax,
    module_path,
    option_env,
    stringify,
    trace_macros,
}
```

Derive macros without a corresponding trait in libcore or libstd are still available only through prelude (also see https://github.com/rust-lang/rust/pull/62507).
Attribute macros also keep being available only through prelude, mostly because they don't have an existing practice to follow. An advice from the library team on their eventual placement would be appreciated.
```rust
    RustcDecodable,
    RustcEncodable,
    bench,
    global_allocator,
    test,
    test_case,
```

r? @alexcrichton
2019-08-10 08:13:16 +02:00
Clar Fon
51ce121592 Implement Clone, Display for ascii::EscapeDefault 2019-08-09 22:45:06 -04:00
bors
be8bbb0697 Auto merge of #62756 - newpavlov:stabilize_dur_float, r=alexcrichton
Stabilize duration_float

Closes: #54361
2019-08-10 01:16:48 +00:00
sd234678
2644205578 Remove unneeded comment in src/libcore/hash/mod.rs 2019-08-09 23:12:49 +01:00
Vadim Petrochenkov
cbcc7dd182 Give built-in macros stable addresses in the standard library 2019-08-10 00:05:37 +03:00
Mazdak Farrokhzad
4e3c209b67
Rollup merge of #63407 - RalfJung:miri-test-sizes, r=Centril
reduce some test sizes in Miri
2019-08-09 14:07:35 +02:00
Mazdak Farrokhzad
14ec32e20a
Rollup merge of #63404 - RalfJung:flt2dec, r=Centril
enable flt2dec tests in Miri

With ldexp implemented (thanks to @christianpoveda), we can finally enable these tests in Miri. Well, most of them -- some are just too slow.
2019-08-09 14:07:34 +02:00
Mazdak Farrokhzad
171e8457d0
Rollup merge of #63403 - sntdevco:master, r=Centril
Improve test output

I'm continuing to improve the test output for liballoc and libcore
2019-08-09 14:07:32 +02:00
Mazdak Farrokhzad
714c8ea9b5
Rollup merge of #63114 - matthewjasper:hygienic-format-args, r=petrochenkov
Remove gensym in format_args

This also fixes some things to allow us to export opaque macros from libcore:

* Don't consider items that are only reachable through opaque macros as public/exported (so they aren't linted as needing docs)
* Mark private items reachable from the root of libcore as unstable - they are now reachable (in principle) in other crates via macros in libcore

r? @petrochenkov
2019-08-09 14:07:29 +02:00
Mazdak Farrokhzad
03c524e0f5
Rollup merge of #62672 - lzutao:deprecated-try-macro, r=Centril
Deprecate `try!` macro

Replaces #62077

Fixes rust-lang/rust-clippy#1361
Fixes #61000
2019-08-09 14:07:26 +02:00
Ralf Jung
78caca00d7 explain Miri disabling 2019-08-09 13:55:22 +02:00
Ilija Tovilo
77bfd7fd1a
Don't use associated type bounds in docs until it is stable 2019-08-09 13:40:54 +02:00
Ilija Tovilo
3d231accee
Add missing #![feature(associated_type_bounds)] 2019-08-09 11:19:45 +02:00
Ralf Jung
29ca428ffa Miri is really slow 2019-08-09 11:18:40 +02:00
Ralf Jung
c5687e3940 enable flt2dec tests in Miri 2019-08-09 10:09:44 +02:00
Sayan Nandan
fb3a01354f
Merge pull request #1 from rust-lang/master
Merge recent changes into master
2019-08-09 13:01:05 +05:30
Sayan Nandan
623debfe9d
Improve tests for libcore/slice 2019-08-09 12:51:34 +05:30
Sayan Nandan
e9ee2cbc53
Improve test output for libcore/time 2019-08-09 12:47:27 +05:30
bors
d8f8be4636 Auto merge of #61937 - AaronKutch:master, r=scottmcm
Improve `ptr_rotate` performance, tests, and benches

The corresponding issue is #61784. I am not actually sure if miri can handle the test, but I can change the commit if necessary.
2019-08-09 04:41:20 +00:00
Lzu Tao
90fa7901b9 Postpone deprecating try! until 1.39.0 2019-08-09 02:29:44 +00:00
BO41
fd7ac6b17e Deprecate try! macro
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
Co-Authored-By: Oliver Middleton <olliemail27@gmail.com>
2019-08-09 02:29:44 +00:00
Mazdak Farrokhzad
432b55e457
Rollup merge of #63374 - RalfJung:pin-packed, r=cramertj
move of packed fields might or might not occur when they actually are sufficiently aligned

See https://github.com/taiki-e/pin-project/pull/34, where it was pointed out that we actually don't move fields of 1-aligned types when dropping a packed struct -- but e.g. in a `packed(2)` struct, we don't do something similar for 2-aligned types. The code for that is [here](db7c773a6b/src/librustc_mir/util/alignment.rs (L7)).
2019-08-09 01:38:33 +02:00