]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoAuto merge of #74017 - poliorcetics:where-keyword, r=jyn514
bors [Sat, 25 Jul 2020 01:44:22 +0000 (01:44 +0000)]
Auto merge of #74017 - poliorcetics:where-keyword, r=jyn514

Document the where keyword

Partial fix of #34601 (and last PR for it ðŸŽ‰).

This documents the `where` keyword.

@rustbot modify labels: T-doc,C-enhancement

3 years agoAuto merge of #73645 - poliorcetics:ref-keyword, r=jyn514
bors [Fri, 24 Jul 2020 23:55:16 +0000 (23:55 +0000)]
Auto merge of #73645 - poliorcetics:ref-keyword, r=jyn514

Document the ref keyword

Partial fix for #34601.

This documents the `ref` keyword with two examples, one failing to compile because the `ref` keyword is missing, and the same example fixed with the keyword inserted in the correct place.

It also explains (very *very* rapidly) the differences between `&` and `ref`.

I put a link to the best place I could find in the Reference but there may be something better that I didn't find.

3 years agoAuto merge of #74681 - RalfJung:miri-extern-fn, r=oli-obk
bors [Fri, 24 Jul 2020 22:00:23 +0000 (22:00 +0000)]
Auto merge of #74681 - RalfJung:miri-extern-fn, r=oli-obk

 Miri: use extern fn to expose interpreter operations to program; fix leak checker on Windows

This PR realizes an idea that @oli-obk has been suggesting for a while: to use Miri-specific `extern` functions to provide some extra capabilities to the program. Initially, we have two of these methods, which libstd itself needs:
* `miri_start_panic`, which replaces the intrinsic of the same name (mostly for consistency, to avoid having multiple mechanisms for Miri-specific functionality).
* `miri_static_root`, which adds an allocation to a list of static "roots" that Miri considers as not having leaked (including all memory reachable through them). This is needed for https://github.com/rust-lang/miri/issues/1302.

We use `extern` functions instead of intrinsics for this so that user code can more easily call these Miri hoolks -- e.g. `miri_static_root` should be useful for https://github.com/rust-lang/miri/issues/1318.

The Miri side of this is at https://github.com/rust-lang/miri/pull/1485.

r? @oli-obk

3 years agoAuto merge of #74507 - lcnr:const-prop-into-op, r=oli-obk
bors [Fri, 24 Jul 2020 20:10:34 +0000 (20:10 +0000)]
Auto merge of #74507 - lcnr:const-prop-into-op, r=oli-obk

add `visit_operand` to const prop

r? @oli-obk

3 years agoAuto merge of #74724 - Manishearth:rollup-plbt8fe, r=Manishearth
bors [Fri, 24 Jul 2020 18:03:55 +0000 (18:03 +0000)]
Auto merge of #74724 - Manishearth:rollup-plbt8fe, r=Manishearth

Rollup of 8 pull requests

Successful merges:

 - #72954 (revise RwLock for HermitCore)
 - #74367 (Rearrange the pipeline of `pow` to gain efficiency)
 - #74491 (Optimize away BitAnd and BitOr when possible)
 - #74639 (Downgrade glibc to 2.11.1 for ppc, ppc64 and s390x)
 - #74661 (Refactor `region_name`: add `RegionNameHighlight`)
 - #74692 (delay_span_bug instead of silent ignore)
 - #74698 (fixed error reporting for mismatched traits)
 - #74715 (Add a system for creating diffs across multiple mir optimizations.)

Failed merges:

r? @ghost

3 years agoFix nits, rework the second example of select (the one deliberately failing to compile)
Alexis Bourget [Fri, 24 Jul 2020 17:33:52 +0000 (19:33 +0200)]
Fix nits, rework the second example of select (the one deliberately failing to compile)

3 years agoFix nits
Alexis Bourget [Fri, 24 Jul 2020 17:06:26 +0000 (19:06 +0200)]
Fix nits

3 years agoRollup merge of #74715 - oli-obk:mir_pass_diff, r=wesleywiser
Manish Goregaokar [Fri, 24 Jul 2020 17:01:41 +0000 (10:01 -0700)]
Rollup merge of #74715 - oli-obk:mir_pass_diff, r=wesleywiser

Add a system for creating diffs across multiple mir optimizations.

r? @wesleywiser

3 years agoRollup merge of #74698 - ayrtonm:handle-traitref-mismatch, r=estebank
Manish Goregaokar [Fri, 24 Jul 2020 17:01:39 +0000 (10:01 -0700)]
Rollup merge of #74698 - ayrtonm:handle-traitref-mismatch, r=estebank

fixed error reporting for mismatched traits

mismatched traits were previously referred to as types

closes #72217

3 years agoRollup merge of #74692 - Mark-Simulacrum:delay-bug, r=pnkfelix
Manish Goregaokar [Fri, 24 Jul 2020 17:01:38 +0000 (10:01 -0700)]
Rollup merge of #74692 - Mark-Simulacrum:delay-bug, r=pnkfelix

delay_span_bug instead of silent ignore

This is a follow-up to #74557.

r? @pnkfelix

3 years agoRollup merge of #74661 - SNCPlay42:lifetime-names-refactor, r=estebank
Manish Goregaokar [Fri, 24 Jul 2020 17:01:36 +0000 (10:01 -0700)]
Rollup merge of #74661 - SNCPlay42:lifetime-names-refactor, r=estebank

Refactor `region_name`: add `RegionNameHighlight`

This PR does not change any diagnostics itself, rather it enables further code changes, but I would like to get approval for the refactoring first before making use of it.

In `rustc_mir::borrow_check::diagnostics::region_name`, there is code that allows for, when giving a synthesized name like `'1` to an anonymous lifetime, pointing at e.g. the exact '`&`' that introduces the lifetime.

This PR decouples that code from the specific case of arguments, adding a new enum `RegionNameHighlight`, enabling future changes to use it in other places.

This allows:

* We could change the other `AnonRegionFrom*` variants to use `RegionNameHighlight` to precisely point at where lifetimes are introduced in other locations when they have type annotations, e.g. a closure return `|...| -> &i32`.
  * Because of how async functions are lowered this affects async functions as well, see #74072
* for #74597, we could add a second, optional `RegionNameHighlight` to the `AnonRegionFromArgument` variant that highlights a lifetime in the return type of a function when, due to elision, this is the same as the argument lifetime.
* in https://github.com/rust-lang/rust/issues/74497#issuecomment-6606229707 I noticed that a diagnostic was trying to introduce a lifetime `'2` in the opaque type `impl std::future::Future`. The code for the case of arguments has [code to handle cases like this](https://github.com/rust-lang/rust/blob/bbebe7351fcd29af1eb9a35e315369b15887ea09/src/librustc_mir/borrow_check/diagnostics/region_name.rs#L365) but not the others. This refactoring would allow the same code path to handle this.
  * It might be appropriate to add another variant of `RegionNameHighlight` to say something like `lifetime '1 appears in the opaque type impl std::future::Future`.

These are quite a few changes so I thought I would make sure the refactoring is OK before I start making changes that rely on it. :)

3 years agoRollup merge of #74639 - msirringhaus:master, r=cuviper
Manish Goregaokar [Fri, 24 Jul 2020 17:01:34 +0000 (10:01 -0700)]
Rollup merge of #74639 - msirringhaus:master, r=cuviper

Downgrade glibc to 2.11.1 for ppc, ppc64 and s390x

As discussed in #73782
I've tested these changes on rust 1.43.0 for all the specified archs and used the resulting binaries to bootstrap building rust 1.43.1.
I've also shortly tested these changes on master on ppc64.

3 years agoRollup merge of #74491 - xldenis:constant-binop-opt, r=oli-obk
Manish Goregaokar [Fri, 24 Jul 2020 17:01:32 +0000 (10:01 -0700)]
Rollup merge of #74491 - xldenis:constant-binop-opt, r=oli-obk

Optimize away BitAnd and BitOr when possible

This PR lets `const_prop` optimize away `a | true == true` , `a & false == false` and `a * 0 = 0`. While I was writing this I've realized that constant propagation misses a lot of opportunities. For example:  https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=2a4b45e772f214210a36749b27223bb0

Constant propagation doesn't seem to... propagate constants, additionally the way constant propagation is currently setup makes it tricky to add cases like `a | false == a`.

I tried to organize `eval_rvalue_with_identities` to make the pattern of the optimizations easier to see but it still obscurs what should be a simple peephole optmization.

cc @oli-obk

3 years agoRollup merge of #74367 - Neutron3529:patch-1, r=nagisa
Manish Goregaokar [Fri, 24 Jul 2020 17:01:30 +0000 (10:01 -0700)]
Rollup merge of #74367 - Neutron3529:patch-1, r=nagisa

Rearrange the pipeline of `pow` to gain efficiency

The check of the `exp` parameter seems useless if we execute the while-loop more than once.
The original implementation of `pow` function using one more comparison if the `exp==0` and may break the pipeline of the cpu, which may generate a slower code.
The performance gap between the old and the new implementation may be small, but IMO, at least the newer one looks more beautiful.

---

bench prog:
```
#![feature(test)]
extern crate test;
#[macro_export]macro_rules! timing{
($a:expr)=>{let time=std::time::Instant::now();{$a;}print!("{:?} ",time.elapsed())};
($a:expr,$b:literal)=>{let time=std::time::Instant::now();let mut a=0;for _ in 0..$b{a^=$a;}print!("{:?} {} ",time.elapsed(),a)}
}
#[inline]
pub fn pow_rust(x:i64, mut exp: u32) -> i64 {
    let mut base = x;
    let mut acc = 1;
    while exp > 1 {
        if (exp & 1) == 1 {
            acc = acc * base;
        }
        exp /= 2;
        base = base * base;
    }
    if exp == 1 {
        acc = acc * base;
    }
    acc
}
#[inline]
pub fn pow_new(x:i64, mut exp: u32) -> i64 {
    if exp==0{
        1
    }else{
        let mut base = x;
        let mut acc = 1;
        while exp > 1 {
            if (exp & 1) == 1 {
                acc = acc * base;
            }
            exp >>= 1;
            base = base * base;
        }
        acc * base
    }
}

fn main(){
let a=2i64;
let b=1_u32;
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
}
```
bench in my laptop:
```
neutron@Neutron:/me/rust$ rc commit.rs
rustc commit.rs  && ./commit

3.978419716s 0 4.079765171s 0 3.964630622s 0
3.997127013s 0 4.260304804s 0 3.997638211s 0
3.963195544s 0 4.11657718s 0 4.176054164s 0
3.830128579s 0 3.980396122s 0 3.937258567s 0
3.986055948s 0 4.127804162s 0 4.018943411s 0
4.185568857s 0 4.217512517s 0 3.98313603s 0
3.863018225s 0 4.030447988s 0 3.694878237s 0
4.206987927s 0 4.137608047s 0 4.115564664s 0
neutron@Neutron:/me/rust$ rc commit.rs -O
rustc commit.rs -O && ./commit

162.111993ms 0 165.107125ms 0 166.26924ms 0
175.20479ms 0 205.062565ms 0 176.278791ms 0
174.408975ms 0 166.526899ms 0 201.857604ms 0
146.190062ms 0 168.592821ms 0 154.61411ms 0
199.678912ms 0 168.411598ms 0 162.129996ms 0
147.420765ms 0 209.759326ms 0 154.807907ms 0
165.507134ms 0 188.476239ms 0 157.351524ms 0
121.320123ms 0 126.401229ms 0 114.86428ms 0
```

3 years agoRollup merge of #72954 - hermitcore:rwlock, r=dtolnay
Manish Goregaokar [Fri, 24 Jul 2020 17:01:28 +0000 (10:01 -0700)]
Rollup merge of #72954 - hermitcore:rwlock, r=dtolnay

revise RwLock for HermitCore

- current version is derived from the wasm implementation
- increasing the readability of `Condvar`
- simplify the interface to the libos

3 years agoAuto merge of #74676 - lcnr:generics-no-sort, r=varkor
bors [Fri, 24 Jul 2020 13:58:36 +0000 (13:58 +0000)]
Auto merge of #74676 - lcnr:generics-no-sort, r=varkor

correctly deal with unsorted generic parameters

We now stop sorting generic params and instead correctly handle unsorted params in the rest of the compiler.

We still restrict const params to come after type params though, so this PR does not change anything which
is visible to users.

This might slightly influence perf, so let's prevent any unintentional rollups. @bors rollup=never

r? @varkor

3 years agoAdd a system for creating diffs across multiple mir optimizations.
Oliver Scherer [Fri, 24 Jul 2020 13:54:15 +0000 (15:54 +0200)]
Add a system for creating diffs across multiple mir optimizations.

3 years agoAuto merge of #74710 - JohnTitor:rollup-bdz4oee, r=JohnTitor
bors [Fri, 24 Jul 2020 12:16:47 +0000 (12:16 +0000)]
Auto merge of #74710 - JohnTitor:rollup-bdz4oee, r=JohnTitor

Rollup of 12 pull requests

Successful merges:

 - #74361 (Improve doc theme logo display)
 - #74504 (Add right border bar to Dark and Light theme)
 - #74572 (Internally unify rustc_deprecated and deprecated)
 - #74601 (Clean up E0724 explanation)
 - #74623 (polymorphize GlobalAlloc::Function)
 - #74665 (Don't ICE on unconstrained anonymous lifetimes inside associated types.)
 - #74666 (More BTreeMap test cases, some exposing undefined behaviour)
 - #74669 (Fix typo)
 - #74677 (Remove needless unsafety from BTreeMap::drain_filter)
 - #74680 (Add missing backticks in diagnostics note)
 - #74694 (Clean up E0727 explanation)
 - #74703 (Fix ICE while building MIR with type errors)

Failed merges:

r? @ghost

3 years agoRollup merge of #74703 - tmandry:issue-74047, r=oli-obk
Yuki Okushi [Fri, 24 Jul 2020 09:56:43 +0000 (18:56 +0900)]
Rollup merge of #74703 - tmandry:issue-74047, r=oli-obk

Fix ICE while building MIR with type errors

See https://github.com/rust-lang/rust/issues/74047#issuecomment-663290913 for background. Replacing a binding with `PatKind::Wild` (introduced in #51789 and later refactored in #67439) caused an ICE downstream while building MIR.

I noticed that taking this code out no longer triggers the ICEs it was added to prevent. I'm not sure what else changed, or if this change is _correct_, but it does seem to be passing ui tests at least.

r? @oli-obk
cc @estebank

Fixes #74047.

3 years agoRollup merge of #74694 - GuillaumeGomez:cleanup-e0727, r=Dylan-DPC
Yuki Okushi [Fri, 24 Jul 2020 09:56:42 +0000 (18:56 +0900)]
Rollup merge of #74694 - GuillaumeGomez:cleanup-e0727, r=Dylan-DPC

Clean up E0727 explanation

r? @Dylan-DPC

3 years agoRollup merge of #74680 - JohnTitor:missing-backticks, r=lcnr
Yuki Okushi [Fri, 24 Jul 2020 09:56:40 +0000 (18:56 +0900)]
Rollup merge of #74680 - JohnTitor:missing-backticks, r=lcnr

Add missing backticks in diagnostics note

3 years agoRollup merge of #74677 - ssomers:btree_cleanup_2, r=Amanieu
Yuki Okushi [Fri, 24 Jul 2020 09:56:38 +0000 (18:56 +0900)]
Rollup merge of #74677 - ssomers:btree_cleanup_2, r=Amanieu

Remove needless unsafety from BTreeMap::drain_filter

Remove one piece of unsafe code in the iteration over the iterator returned by BTreeMap::drain_filter.
- Changes an explicitly unspecified part of the API: when the user-supplied predicate (or some of BTreeMap's code) panicked, and the caller tries to use the iterator again, we no longer offer the same key/value pair to the predicate again but pretend the iterator has finished. Note that Miri does not find UB in the test case added here with the unsafe code (or without).
- Makes the code a little easier on the eyes.
- Makes the code a little harder on the CPU:
```
benchcmp c0 c2 --threshold 3
 name                                         c0 ns/iter  c2 ns/iter  diff ns/iter  diff %  speedup
 btree::set::clone_100_and_drain_all          2,794       2,900                106   3.79%   x 0.96
 btree::set::clone_100_and_drain_half         2,604       2,964                360  13.82%   x 0.88
 btree::set::clone_10k_and_drain_half         287,770     322,755           34,985  12.16%   x 0.89
```
r? @Amanieu

3 years agoRollup merge of #74669 - Homarechan:fix_typo, r=lcnr
Yuki Okushi [Fri, 24 Jul 2020 09:56:36 +0000 (18:56 +0900)]
Rollup merge of #74669 - Homarechan:fix_typo, r=lcnr

Fix typo

3 years agoRollup merge of #74666 - ssomers:btree_cleanup_1, r=Mark-Simulacrum
Yuki Okushi [Fri, 24 Jul 2020 09:56:34 +0000 (18:56 +0900)]
Rollup merge of #74666 - ssomers:btree_cleanup_1, r=Mark-Simulacrum

More BTreeMap test cases, some exposing undefined behaviour

Gathered from other ongoing PRs and all either blessed or ignored by Miri

r? @Mark-Simulacrum

3 years agoRollup merge of #74665 - smmalis37:issue-62200, r=davidtwco
Yuki Okushi [Fri, 24 Jul 2020 09:56:32 +0000 (18:56 +0900)]
Rollup merge of #74665 - smmalis37:issue-62200, r=davidtwco

Don't ICE on unconstrained anonymous lifetimes inside associated types.

Fixes #62200. The change here is inspired (copied) by how this case is handled on bare fns at https://github.com/rust-lang/rust/blob/e8b55a4ad230ebec762fdfc4f241ba98a98560af/src/librustc_typeck/astconv.rs#L3083-L3106.

3 years agoRollup merge of #74623 - lcnr:polymorphize-functions, r=eddyb
Yuki Okushi [Fri, 24 Jul 2020 09:56:31 +0000 (18:56 +0900)]
Rollup merge of #74623 - lcnr:polymorphize-functions, r=eddyb

polymorphize GlobalAlloc::Function

this sadly does not change #74614

r? @eddyb

3 years agoRollup merge of #74601 - GuillaumeGomez:cleanup-e0724, r=jyn514
Yuki Okushi [Fri, 24 Jul 2020 09:56:29 +0000 (18:56 +0900)]
Rollup merge of #74601 - GuillaumeGomez:cleanup-e0724, r=jyn514

Clean up E0724 explanation

r? @Dylan-DPC

3 years agoRollup merge of #74572 - Mark-Simulacrum:unify-rustc-depr, r=petrochenkov
Yuki Okushi [Fri, 24 Jul 2020 09:56:27 +0000 (18:56 +0900)]
Rollup merge of #74572 - Mark-Simulacrum:unify-rustc-depr, r=petrochenkov

Internally unify rustc_deprecated and deprecated

This PR intentionally tries to be "featureless" in that the behavior is not altered for either attribute, though it more clearly exposes cases where that is the case in the code.

3 years agoRollup merge of #74504 - lzutao:ayu-border-selected-fn, r=GuillaumeGomez
Yuki Okushi [Fri, 24 Jul 2020 09:56:25 +0000 (18:56 +0900)]
Rollup merge of #74504 - lzutao:ayu-border-selected-fn, r=GuillaumeGomez

Add right border bar to Dark and Light theme

Demo:
Light theme: https://github.com/rust-lang/rust/pull/74504#issuecomment-662491120
Dark theme: https://github.com/rust-lang/rust/pull/74504#issuecomment-662522446
Ayu theme: https://github.com/rust-lang/rust/pull/74504#issuecomment-662625685

3 years agoRollup merge of #74361 - GuillaumeGomez:theme-logo, r=Manishearth
Yuki Okushi [Fri, 24 Jul 2020 09:56:22 +0000 (18:56 +0900)]
Rollup merge of #74361 - GuillaumeGomez:theme-logo, r=Manishearth

Improve doc theme logo display

Fixes #74350.

The first commit cleans up the whitespaces and converts them to tabs. We should definitely write a tidy check for this (will do it in another PR).

Screenshots:

![Screenshot from 2020-07-15 14-08-25](https://user-images.githubusercontent.com/3050060/87543748-8581c800-c6a5-11ea-8417-cbf98ebbfd10.png)
![Screenshot from 2020-07-15 14-11-59](https://user-images.githubusercontent.com/3050060/87543747-84e93180-c6a5-11ea-8cea-976b1470e809.png)
![Screenshot from 2020-07-15 14-12-12](https://user-images.githubusercontent.com/3050060/87543745-84509b00-c6a5-11ea-8324-c3c46ab2d9ef.png)

r? @lzutao
cc @Cldfire

3 years agoAdd right border bar to Dark and Light theme
Lzu Tao [Wed, 22 Jul 2020 14:46:33 +0000 (14:46 +0000)]
Add right border bar to Dark and Light theme

Ayu has it. Adding similar rule to other themes makes users less
surprised and makes GUI more consistent.

3 years agoayu: Change to less luminous color
Lzu Tao [Thu, 23 Jul 2020 03:07:26 +0000 (03:07 +0000)]
ayu: Change to less luminous color

Co-authored-by: Cldfire <cldfire@3grid.net>
3 years agoFix ICE while building MIR with type errors
Tyler Mandry [Fri, 24 Jul 2020 00:41:05 +0000 (17:41 -0700)]
Fix ICE while building MIR with type errors

Fixes #74047.

3 years agoadded a test case for reporting mismatched traits
Ayrton [Fri, 24 Jul 2020 00:21:28 +0000 (20:21 -0400)]
added a test case for reporting mismatched traits

3 years agoFix nit
Alexis Bourget [Thu, 23 Jul 2020 21:30:16 +0000 (23:30 +0200)]
Fix nit

3 years agoFix nit and add link for Cow
Alexis Bourget [Thu, 23 Jul 2020 21:19:26 +0000 (23:19 +0200)]
Fix nit and add link for Cow

3 years agofixed error reporting for mismatched traits
Ayrton [Thu, 23 Jul 2020 20:33:50 +0000 (16:33 -0400)]
fixed error reporting for mismatched traits

mismatched traits were previously referred to as types

3 years agoAuto merge of #74685 - ehuss:update-cargo, r=ehuss
bors [Thu, 23 Jul 2020 20:15:28 +0000 (20:15 +0000)]
Auto merge of #74685 - ehuss:update-cargo, r=ehuss

Update cargo

21 commits in 43cf77395cad5b79887b20b7cf19d418bbd703a9..aa6872140ab0fa10f641ab0b981d5330d419e927
2020-07-13 17:35:42 +0000 to 2020-07-23 13:46:27 +0000
- Update features set in CI. (rust-lang/cargo#8530)
- Stabilize -Z crate-versions (rust-lang/cargo#8509)
- Fix typo in docs (rust-lang/cargo#8529)
- Remove unused CompileMode::all_modes (rust-lang/cargo#8526)
- Mask out system core.autocrlf settings before resetting git repos (rust-lang/cargo#8523)
- Flag git zlib errors as spurious errors (rust-lang/cargo#8520)
- Fix the help display for the target-triple option (rust-lang/cargo#8515)
- Check workspace member existence as dir. (rust-lang/cargo#8511)
- Bump to 0.48.0, update changelog (rust-lang/cargo#8508)
- Apply workspace.exclude to workspace.default-members. (rust-lang/cargo#8485)
- Fix nightly tests for intra-doc links. (rust-lang/cargo#8528)
- doc: Replace "regenerate" with "revoke" for API tokens (rust-lang/cargo#8510)
- Add back Manifest::targets_mut (rust-lang/cargo#8494)
- Build host dependencies with opt-level 0 by default (rust-lang/cargo#8500)
- Fix freshness checks for build scripts on renamed dirs (rust-lang/cargo#8497)
- Add a `-Zbuild-std-features` flag (rust-lang/cargo#8490)
- clippy cleanups (rust-lang/cargo#8495)
- Fix self-publish script. (rust-lang/cargo#8492)
- Ensure `unstable.build-std` works like `-Zbuild-std` (rust-lang/cargo#8491)
- Make `cargo metadata` output deterministic (rust-lang/cargo#8489)
- Switch to github actions (rust-lang/cargo#8467)

3 years agoClean up E0724 explanation
Guillaume Gomez [Tue, 21 Jul 2020 19:08:21 +0000 (21:08 +0200)]
Clean up E0724 explanation

3 years agoClean up E0727 explanation
Guillaume Gomez [Thu, 23 Jul 2020 19:11:40 +0000 (21:11 +0200)]
Clean up E0727 explanation

3 years agodelay_span_bug instead of silent ignore
Mark Rousskov [Thu, 23 Jul 2020 15:02:44 +0000 (11:02 -0400)]
delay_span_bug instead of silent ignore

3 years agoBTreeMap::drain_filter: replace needless unsafety and test
Stein Somers [Wed, 22 Jul 2020 20:37:54 +0000 (22:37 +0200)]
BTreeMap::drain_filter: replace needless unsafety and test

3 years agoslightly adapt const prop
Bastian Kauschke [Thu, 23 Jul 2020 15:58:54 +0000 (17:58 +0200)]
slightly adapt const prop

3 years agoUpdate cargo
Eric Huss [Thu, 23 Jul 2020 15:28:50 +0000 (08:28 -0700)]
Update cargo

3 years agoavoid implicitly returning ()
Ralf Jung [Thu, 23 Jul 2020 15:06:33 +0000 (17:06 +0200)]
avoid implicitly returning ()

3 years agoon Windows, use miri_static_root for TLS dtors
Ralf Jung [Thu, 23 Jul 2020 13:49:39 +0000 (15:49 +0200)]
on Windows, use miri_static_root for TLS dtors

3 years agoAuto merge of #74509 - matthewjasper:empty-verify, r=nikomatsakis
bors [Thu, 23 Jul 2020 13:43:42 +0000 (13:43 +0000)]
Auto merge of #74509 - matthewjasper:empty-verify, r=nikomatsakis

Use `ReEmpty(U0)` as the implicit region bound in typeck

Fixes #74429

r? @nikomatsakis

3 years agoAdd missing backticks in diagnostics note
Yuki Okushi [Thu, 23 Jul 2020 12:52:48 +0000 (21:52 +0900)]
Add missing backticks in diagnostics note

3 years agotest usage
Bastian Kauschke [Thu, 23 Jul 2020 12:30:01 +0000 (14:30 +0200)]
test usage

3 years agoadd more complex param order test
Bastian Kauschke [Thu, 23 Jul 2020 11:19:35 +0000 (13:19 +0200)]
add more complex param order test

3 years agoreplace miri_start_panic intrinsic by 'extern fn'
Ralf Jung [Thu, 23 Jul 2020 11:07:21 +0000 (13:07 +0200)]
replace miri_start_panic intrinsic by 'extern fn'

3 years agoAuto merge of #74613 - Mark-Simulacrum:revert-gimli, r=nnethercote
bors [Thu, 23 Jul 2020 11:14:48 +0000 (11:14 +0000)]
Auto merge of #74613 - Mark-Simulacrum:revert-gimli, r=nnethercote

Revert libbacktrace -> gimli

This reverts 4cbd265c119cb1a5eb92e98d2bb93466f05efa46 028f8d7b85898683b99e05564cd2976c7e0d5b43 13db3cc1e8d2fd4b8e7c74d91002274d7b62801b d7a36d8964c927863faef5d3b42da08f37e5896c (and technically 79673d300915f846726c27b9e1974dc451013ee9 but it's made empty by previous reverts).

The current plan is to land this PR as a temporary change, so that we can get a better handle on the regressions introduced by it. Trying to fix/examine them in master is difficult, and we want to be better able to evaluate them without impact to other PRs being landed in the mean time.

That said, it is currently *my* belief that gimli, in one form or another, will need to land sometime soon. I think it's quite likely that it may slip a week or two, but I would personally push for re-landing it then "regardless" of the regressions. We should try to focus efforts on understanding and removing as much of the performance impact as possible, as everyone pretty much agrees that it should be quite minimal (and entirely in the linker, basically).

r? @nnethercote

3 years agocleanup
Bastian Kauschke [Thu, 23 Jul 2020 11:04:44 +0000 (13:04 +0200)]
cleanup

3 years agofix ICE caused by wrongly ordered generic params
Bastian Kauschke [Thu, 23 Jul 2020 10:28:27 +0000 (12:28 +0200)]
fix ICE caused by wrongly ordered generic params

3 years agostop sorting generic params
Bastian Kauschke [Thu, 23 Jul 2020 08:15:02 +0000 (10:15 +0200)]
stop sorting generic params

3 years agoAuto merge of #74667 - Manishearth:rollup-s6k59sw, r=Manishearth
bors [Thu, 23 Jul 2020 08:56:45 +0000 (08:56 +0000)]
Auto merge of #74667 - Manishearth:rollup-s6k59sw, r=Manishearth

Rollup of 8 pull requests

Successful merges:

 - #74141 (libstd/libcore: fix various typos)
 - #74490 (add a Backtrace::disabled function)
 - #74548 (one more Path::with_extension example, to demonstrate behavior)
 - #74587 (Prefer constant over function)
 - #74606 (Remove Linux workarounds for missing CLOEXEC support)
 - #74637 (Make str point to primitive page)
 - #74654 (require type defaults to be after const generic parameters)
 - #74659 (Improve codegen for unchecked float casts on wasm)

Failed merges:

r? @ghost

3 years agoFix typo
kanimum [Thu, 23 Jul 2020 08:29:52 +0000 (17:29 +0900)]
Fix typo

3 years agoDowngrade glibc to 2.11.1 for ppc, ppc64 and s390x
Martin Sirringhaus [Wed, 22 Jul 2020 15:49:15 +0000 (17:49 +0200)]
Downgrade glibc to 2.11.1 for ppc, ppc64 and s390x

3 years agoRollup merge of #74659 - alexcrichton:wasm-codegen, r=varkor
Manish Goregaokar [Thu, 23 Jul 2020 07:42:20 +0000 (00:42 -0700)]
Rollup merge of #74659 - alexcrichton:wasm-codegen, r=varkor

Improve codegen for unchecked float casts on wasm

This commit improves codegen for unchecked casts on WebAssembly targets
to use the singluar `iNN.trunc_fMM_{u,s}` instructions. Previously rustc
would codegen a bare `fptosi` and `fptoui` for float casts but for
WebAssembly targets the codegen for these instructions is quite large.
This large codegen is due to the fact that LLVM can speculate these
instructions so the trapping behavior of WebAssembly needs to be
protected against in case they're speculated.

The change here is to update the codegen for the unchecked cast
intrinsics to have a wasm-specific case where they call the appropriate
LLVM intrinsic to generate the right wasm instruction. The intrinsic is
explicitly opting-in to undefined behavior so a trap here for
out-of-bounds inputs on wasm should be acceptable.

cc #73591

3 years agoRollup merge of #74654 - lcnr:default-no-more, r=varkor
Manish Goregaokar [Thu, 23 Jul 2020 07:42:18 +0000 (00:42 -0700)]
Rollup merge of #74654 - lcnr:default-no-more, r=varkor

require type defaults to be after const generic parameters

From current discussions it seems like the goal here is for type and const parameters to be unordered and allow things like `struct Foo<const N: usize, T = u32>(T)` and `struct Foo<T, const N: usize = 7>` this way.

Note: This means that using `min_const_generics` it will not be possible for an adt to have both type defaults and const parameters.

closes #70471

r? @varkor @eddyb

3 years agoRollup merge of #74637 - lzutao:str-primitive-links, r=jyn514
Manish Goregaokar [Thu, 23 Jul 2020 07:42:16 +0000 (00:42 -0700)]
Rollup merge of #74637 - lzutao:str-primitive-links, r=jyn514

Make str point to primitive page

Currently str in String page points to str module page.

3 years agoRollup merge of #74606 - cuviper:cloexec, r=sfackler
Manish Goregaokar [Thu, 23 Jul 2020 07:42:14 +0000 (00:42 -0700)]
Rollup merge of #74606 - cuviper:cloexec, r=sfackler

Remove Linux workarounds for missing CLOEXEC support

Now that #74163 updated the minimum Linux kernel to 2.6.32, we can
assume the availability of APIs that open file descriptors that are
already set to close on exec, including the flags `O_CLOEXEC`,
`SOCK_CLOEXEC`, and `F_DUPFD_CLOEXEC`.

Closes #74519.

3 years agoRollup merge of #74587 - lzutao:consts, r=dtolnay
Manish Goregaokar [Thu, 23 Jul 2020 07:42:12 +0000 (00:42 -0700)]
Rollup merge of #74587 - lzutao:consts, r=dtolnay

Prefer constant over function

Just that I prefer constants over functions that can be made const.

3 years agoRollup merge of #74548 - tshepang:one-more-example, r=dtolnay
Manish Goregaokar [Thu, 23 Jul 2020 07:42:10 +0000 (00:42 -0700)]
Rollup merge of #74548 - tshepang:one-more-example, r=dtolnay

one more Path::with_extension example, to demonstrate behavior

3 years agoRollup merge of #74490 - yaahc:disabled-bt, r=dtolnay
Manish Goregaokar [Thu, 23 Jul 2020 07:42:07 +0000 (00:42 -0700)]
Rollup merge of #74490 - yaahc:disabled-bt, r=dtolnay

add a Backtrace::disabled function

Based upon @dtolnay's suggestion here: https://github.com/dtolnay/anyhow/pull/97#issuecomment-647172942

3 years agoRollup merge of #74141 - euclio:typos, r=steveklabnik
Manish Goregaokar [Thu, 23 Jul 2020 07:42:01 +0000 (00:42 -0700)]
Rollup merge of #74141 - euclio:typos, r=steveklabnik

libstd/libcore: fix various typos

3 years agoAuto merge of #74611 - Mark-Simulacrum:revert-74069-bad-niche, r=eddyb
bors [Thu, 23 Jul 2020 07:11:01 +0000 (07:11 +0000)]
Auto merge of #74611 - Mark-Simulacrum:revert-74069-bad-niche, r=eddyb

Revert "Compare tagged/niche-filling layout and pick the best one"

Reverts rust-lang/rust#74069. It caused a performance regression, see https://github.com/rust-lang/rust/pull/74069#issuecomment-662166827. perf: https://perf.rust-lang.org/compare.html?start=d3df8512d2c2afc6d2e7d8b5b951dd7f2ad77b02&end=cfade73820883adf654fe34fd6b0b03a99458a51

r? @eddyb

cc @nnethercote

3 years agoRearrange the pipeline of `pow` to gain efficiency
Neutron3529 [Wed, 15 Jul 2020 14:39:39 +0000 (22:39 +0800)]
Rearrange the pipeline of `pow` to gain efficiency

The check of the `exp` parameter seems useless if we execute the while-loop more than once.
The original implementation of `pow` function using one more comparison if the `exp==0` and may break the pipeline of the cpu, which may generate a slower code.
The performance gap between the old and the new implementation may be small, but IMO, at least the newer one looks more beautiful.

---

bench prog:
```
extern crate test;
($a:expr)=>{let time=std::time::Instant::now();{$a;}print!("{:?} ",time.elapsed())};
($a:expr,$b:literal)=>{let time=std::time::Instant::now();let mut a=0;for _ in 0..$b{a^=$a;}print!("{:?} {} ",time.elapsed(),a)}
}
pub fn pow_rust(x:i64, mut exp: u32) -> i64 {
    let mut base = x;
    let mut acc = 1;
    while exp > 1 {
        if (exp & 1) == 1 {
            acc = acc * base;
        }
        exp /= 2;
        base = base * base;
    }
    if exp == 1 {
        acc = acc * base;
    }
    acc
}
pub fn pow_new(x:i64, mut exp: u32) -> i64 {
    if exp==0{
        1
    }else{
        let mut base = x;
        let mut acc = 1;
        while exp > 1 {
            if (exp & 1) == 1 {
                acc = acc * base;
            }
            exp >>= 1;
            base = base * base;
        }
        acc * base
    }
}

fn main(){
let a=2i64;
let b=1_u32;
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
timing!(test::black_box(a).pow(test::black_box(b)),100000000);
timing!(pow_new(test::black_box(a),test::black_box(b)),100000000);
timing!(pow_rust(test::black_box(a),test::black_box(b)),100000000);
println!();
}
```
bench in my laptop:
```
neutron@Neutron:/me/rust$ rc commit.rs
rustc commit.rs  && ./commit

3.978419716s 0 4.079765171s 0 3.964630622s 0
3.997127013s 0 4.260304804s 0 3.997638211s 0
3.963195544s 0 4.11657718s 0 4.176054164s 0
3.830128579s 0 3.980396122s 0 3.937258567s 0
3.986055948s 0 4.127804162s 0 4.018943411s 0
4.185568857s 0 4.217512517s 0 3.98313603s 0
3.863018225s 0 4.030447988s 0 3.694878237s 0
4.206987927s 0 4.137608047s 0 4.115564664s 0
neutron@Neutron:/me/rust$ rc commit.rs -O
rustc commit.rs -O && ./commit

162.111993ms 0 165.107125ms 0 166.26924ms 0
175.20479ms 0 205.062565ms 0 176.278791ms 0
174.408975ms 0 166.526899ms 0 201.857604ms 0
146.190062ms 0 168.592821ms 0 154.61411ms 0
199.678912ms 0 168.411598ms 0 162.129996ms 0
147.420765ms 0 209.759326ms 0 154.807907ms 0
165.507134ms 0 188.476239ms 0 157.351524ms 0
121.320123ms 0 126.401229ms 0 114.86428ms 0
```

delete an unnecessary semicolon...

Sorry for the typo.

delete trailing whitespace

Sorry, too..

Sorry for the missing...

I checked all the implementations, and finally found that there is one function that does not check whether `exp == 0`

add extra tests

add extra tests.

finished adding the extra tests to prevent further typo

add pow(2) to negative exp

add whitespace.

add whitespace

add whitespace

delete extra line

3 years agoInclude the note in the test.
Steven Malis [Thu, 23 Jul 2020 06:19:38 +0000 (23:19 -0700)]
Include the note in the test.

3 years agotweak wording
Bastian Kauschke [Thu, 23 Jul 2020 06:06:42 +0000 (08:06 +0200)]
tweak wording

Co-authored-by: varkor <github@varkor.com>
3 years agoDon't ICE on unconstrained anonymous lifetimes inside associated types.
Steven Malis [Thu, 23 Jul 2020 05:54:06 +0000 (22:54 -0700)]
Don't ICE on unconstrained anonymous lifetimes inside associated types.

3 years agoPrefer constant over function
Lzu Tao [Thu, 23 Jul 2020 02:49:40 +0000 (02:49 +0000)]
Prefer constant over function

3 years agoPrefer type@str
Lzu Tao [Thu, 23 Jul 2020 02:42:37 +0000 (02:42 +0000)]
Prefer type@str

3 years agoMake str point to primitive page
Lzu Tao [Wed, 22 Jul 2020 15:17:50 +0000 (15:17 +0000)]
Make str point to primitive page

3 years agoAuto merge of #74662 - Manishearth:rollup-jdt7t71, r=Manishearth
bors [Thu, 23 Jul 2020 00:37:58 +0000 (00:37 +0000)]
Auto merge of #74662 - Manishearth:rollup-jdt7t71, r=Manishearth

Rollup of 9 pull requests

Successful merges:

 - #73783 (Detect when `'static` obligation might come from an `impl`)
 - #73868 (Advertise correct stable version for const control flow)
 - #74460 (rustdoc: Always warn when linking from public to private items)
 - #74538 (Guard against non-monomorphized type_id intrinsic call)
 - #74541 (Add the aarch64-apple-darwin target )
 - #74600 (Enable perf try builder)
 - #74618 (Do not ICE on assoc type with bad placeholder)
 - #74631 (rustc_target: Add a target spec option for disabling `--eh-frame-hdr`)
 - #74643 (build: Remove unnecessary `cargo:rerun-if-env-changed` annotations)

Failed merges:

r? @ghost

3 years agoUpdate src/libstd/backtrace.rs
Jane Lusby [Thu, 23 Jul 2020 00:19:02 +0000 (17:19 -0700)]
Update src/libstd/backtrace.rs

Co-authored-by: David Tolnay <dtolnay@gmail.com>
3 years agoone more Path::with_extension example, to demonstrate behavior
Tshepang Lekhonkhobe [Mon, 20 Jul 2020 10:25:12 +0000 (12:25 +0200)]
one more Path::with_extension example, to demonstrate behavior

3 years agoMove the pipe2 call behind a hard target `#[cfg]`
Josh Stone [Wed, 22 Jul 2020 23:38:58 +0000 (16:38 -0700)]
Move the pipe2 call behind a hard target `#[cfg]`

3 years agoRollup merge of #74643 - petrochenkov:noenvrerun, r=Mark-Simulacrum
Manish Goregaokar [Wed, 22 Jul 2020 23:34:50 +0000 (16:34 -0700)]
Rollup merge of #74643 - petrochenkov:noenvrerun, r=Mark-Simulacrum

build: Remove unnecessary `cargo:rerun-if-env-changed` annotations

... and a couple of related cleanups.

rustc and cargo now track the majority of env var dependencies automatically (https://github.com/rust-lang/cargo/pull/8421), so the annotations are no longer necessary.

3 years agoRollup merge of #74631 - petrochenkov:ehdr2, r=jonas-schievink
Manish Goregaokar [Wed, 22 Jul 2020 23:34:48 +0000 (16:34 -0700)]
Rollup merge of #74631 - petrochenkov:ehdr2, r=jonas-schievink

rustc_target: Add a target spec option for disabling `--eh-frame-hdr`

Disable `--eh-frame-hdr` for targets that use an `ld`-like linker, but don't support that option.
Do it through a target spec option rather than through hard-coding in `linker.rs`.
The option is still enabled by default though.

cc https://github.com/rust-lang/rust/pull/73564
Fixes https://github.com/rust-lang/rust/pull/73564#issuecomment-657011004
Fixes https://github.com/rust-lang/rust/pull/74625
Fixes https://github.com/rust-embedded/msp430-rt/issues/12

3 years agoRollup merge of #74618 - JohnTitor:no-more-bad-placeholder, r=estebank
Manish Goregaokar [Wed, 22 Jul 2020 23:34:46 +0000 (16:34 -0700)]
Rollup merge of #74618 - JohnTitor:no-more-bad-placeholder, r=estebank

Do not ICE on assoc type with bad placeholder

Fixes #74612
r? @estebank

3 years agoRollup merge of #74600 - Mark-Simulacrum:try-perf, r=pietroalbini
Manish Goregaokar [Wed, 22 Jul 2020 23:34:44 +0000 (16:34 -0700)]
Rollup merge of #74600 - Mark-Simulacrum:try-perf, r=pietroalbini

Enable perf try builder

This adds a dedicated branch for perf to use for CI, intended to allow perf to
enqueue builds without needing to use bors. bors is great, but bors requires an
open PR to work, and we want to invoke perf on closed PRs sometimes (in
particular, rollups).

3 years agoRollup merge of #74541 - shepmaster:aarch64-apple-darwin-target, r=nagisa
Manish Goregaokar [Wed, 22 Jul 2020 23:34:43 +0000 (16:34 -0700)]
Rollup merge of #74541 - shepmaster:aarch64-apple-darwin-target, r=nagisa

Add the aarch64-apple-darwin target

This is a basic copy-paste-modify from the existing
x86_64-apple-darwin target.

3 years agoRollup merge of #74538 - nbdd0121:issue-73976, r=lcnr
Manish Goregaokar [Wed, 22 Jul 2020 23:34:41 +0000 (16:34 -0700)]
Rollup merge of #74538 - nbdd0121:issue-73976, r=lcnr

Guard against non-monomorphized type_id intrinsic call

This PR checks whether the type is sufficient monomorphized when calling type_id or type_name intrinsics. If the type is not sufficiently monomorphized, e.g. used in a pattern, the code will be rejected.

Fixes #73976

3 years agoRollup merge of #74460 - dennis-hamester:rustdoc-warn-pub-to-priv, r=jyn514
Manish Goregaokar [Wed, 22 Jul 2020 23:34:39 +0000 (16:34 -0700)]
Rollup merge of #74460 - dennis-hamester:rustdoc-warn-pub-to-priv, r=jyn514

rustdoc: Always warn when linking from public to private items

Change the logic such that linking from a public to a private item always triggers `intra_doc_link_resolution_failure`.
Previously, the warning was not emitted when `--document-private-items` is passed.

This came up during the discussion in https://github.com/rust-lang/rust/pull/74147#discussion_r452597901.

3 years agoRollup merge of #73868 - ecstatic-morse:fix-stable-version, r=jonas-schievink
Manish Goregaokar [Wed, 22 Jul 2020 23:34:37 +0000 (16:34 -0700)]
Rollup merge of #73868 - ecstatic-morse:fix-stable-version, r=jonas-schievink

Advertise correct stable version for const control flow

#72437 was opened before the 1.45 release but merged afterwards. These will be stable in 1.46.

3 years agoRollup merge of #73783 - estebank:impl-dyn-trait-static-lifetime, r=nikomatsakis
Manish Goregaokar [Wed, 22 Jul 2020 23:34:36 +0000 (16:34 -0700)]
Rollup merge of #73783 - estebank:impl-dyn-trait-static-lifetime, r=nikomatsakis

Detect when `'static` obligation might come from an `impl`

Partly address #71341.

3 years agorename arguments to highlight_if_we_can_match_hir_ty
SNCPlay42 [Wed, 22 Jul 2020 23:07:57 +0000 (00:07 +0100)]
rename arguments to highlight_if_we_can_match_hir_ty

3 years agomove highlight_if_we_can_match_hir_ty call
SNCPlay42 [Wed, 22 Jul 2020 21:31:18 +0000 (22:31 +0100)]
move highlight_if_we_can_match_hir_ty call

out of highlight_if_we_can_match_hir_ty_from_argument, which is then
renamed

3 years agodecouple highlight_if_we_cannot_match_hir_ty
SNCPlay42 [Wed, 22 Jul 2020 21:04:02 +0000 (22:04 +0100)]
decouple highlight_if_we_cannot_match_hir_ty

3 years agoclean up give_name_if_anonymous_region_appears_in_arguments
SNCPlay42 [Wed, 22 Jul 2020 19:38:44 +0000 (20:38 +0100)]
clean up give_name_if_anonymous_region_appears_in_arguments

3 years agorename functions
SNCPlay42 [Wed, 22 Jul 2020 19:17:10 +0000 (20:17 +0100)]
rename functions

3 years agochange returns to RegionNameHighlight
SNCPlay42 [Wed, 22 Jul 2020 19:10:39 +0000 (20:10 +0100)]
change returns to RegionNameHighlight

3 years agoextract RegionNameHighlight
SNCPlay42 [Wed, 22 Jul 2020 18:44:33 +0000 (19:44 +0100)]
extract RegionNameHighlight

3 years agoadd RegionName::span
SNCPlay42 [Tue, 21 Jul 2020 21:50:56 +0000 (22:50 +0100)]
add RegionName::span

3 years agoImprove codegen for unchecked float casts on wasm
Alex Crichton [Wed, 22 Jul 2020 21:51:12 +0000 (14:51 -0700)]
Improve codegen for unchecked float casts on wasm

This commit improves codegen for unchecked casts on WebAssembly targets
to use the singluar `iNN.trunc_fMM_{u,s}` instructions. Previously rustc
would codegen a bare `fptosi` and `fptoui` for float casts but for
WebAssembly targets the codegen for these instructions is quite large.
This large codegen is due to the fact that LLVM can speculate these
instructions so the trapping behavior of WebAssembly needs to be
protected against in case they're speculated.

The change here is to update the codegen for the unchecked cast
intrinsics to have a wasm-specific case where they call the appropriate
LLVM intrinsic to generate the right wasm instruction. The intrinsic is
explicitly opting-in to undefined behavior so a trap here for
out-of-bounds inputs on wasm should be acceptable.

cc #73591

3 years agoAuto merge of #74404 - lcnr:ty-dep-path-cleanup-aaaaa, r=eddyb
bors [Wed, 22 Jul 2020 21:50:21 +0000 (21:50 +0000)]
Auto merge of #74404 - lcnr:ty-dep-path-cleanup-aaaaa, r=eddyb

remove some const arg in ty dep path boilerplate

followup to #74113, together with #74376, this closes #74360.

r? @eddyb

3 years agoMore BTreeMap test cases, some exposing undefined behaviour
Stein Somers [Tue, 14 Jul 2020 09:32:50 +0000 (11:32 +0200)]
More BTreeMap test cases, some exposing undefined behaviour

3 years agorequire type defaults to be after const generic parameters
Bastian Kauschke [Wed, 22 Jul 2020 20:58:54 +0000 (22:58 +0200)]
require type defaults to be after const generic parameters

as if this is currently possible. HA!

3 years agoChange error code number
Esteban Küber [Mon, 20 Jul 2020 20:56:50 +0000 (13:56 -0700)]
Change error code number