Closed
Conversation
Currently mirrors are stored in the rust-lang-ci2 S3 bucket along with CI toolchains. This is problematic for multiple reasons: - CI IAM credentials are allowed to both edit and delete those files. A malicious user gaining access to those credentials would be able to change our mirrored dependencies, possibly backdooring the compiler. - Contents of the rust-lang-ci2 bucket are disposable except for the mirrors' content. When we implement backups for S3 buckets we'd have to replicate just that part of the bucket, complicating the backup logic and increasing the chance of mistakes. A standalone bucket will be way easier to backup. This commit switches our CI to use the new rust-lang-ci-mirrors bucket.
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
This commit prohibits return position `impl Trait` types that "inherit lifetimes" from the parent scope. The intent is to forbid cases that are challenging until they can be addressed properly.
This allows us to record "fresh" lifetime names for cases like `impl Foo<'_>`.
We now always make fresh lifetimne parameters for all elided
lifetimes, whether they are in the inputs or outputs. But then
we generate `'_` in the case of elided lifetimes from the outputs.
Example:
```rust
async fn foo<'a>(x: &'a u32) -> &u32 { .. }
```
becomes
```rust
type Foo<'a, 'b> = impl Future<Output = &'b u32>;
fn foo<'a>(x: &'a u32) -> Foo<'a, '_>
```
This was causing us to incorrectly think the lifetimes were already declared on the scope for the nested item, when in fact they are not inherited.
The slash and quotes in ?/“Kleene” appeared to define “Kleene” as the name for the ? operator, which is not the case. Rust has three Kleene operators *, +, ?. (Pointed out by /u/Sharlinator on Reddit.) Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This is needed to permit us building core_arch which is a submodule dep (so we can't snap it to the new beta compiler).
…imes, r=nikomatsakis typeck: Prohibit RPIT types that inherit lifetimes Part of rust-lang#61949. This PR prohibits return position `impl Trait` types that "inherit lifetimes" from the parent scope. The intent is to forbid cases that are challenging until they can be addressed properly. cc @nikomatsakis
…s, r=nikomatsakis `async fn` lifetime elision tests Add `async fn` version of the tests in rust-lang#61207 per the first checkbox in rust-lang#62121 (comment). Works towards resolving blockers in rust-lang#63209. r? @nikomatsakis cc @cramertj
Implement Clone, Display for ascii::EscapeDefault This will mimic the same behaviour as the `char` version; `Display`ing the iterator will give its string representation without advancing it.
syntax: account for CVarArgs being in the argument list. Fixes rust-lang#63430 by testing for `1` argument (the `CVarArgs` itself) instead of `0`. Note that the error has basically been impossible to trigger since the change that caused rust-lang#63430, so perhaps we need an audit of untested errors. Also, this check probably belongs in AST validation/HIR lowering, but I'd rather fix it in place for now. r? @petrochenkov cc @dlrobertson
Bring back suggestion for splitting `<-` into `< -` Closes rust-lang#62632
…lexcrichton ci: move mirrors to their standalone bucket Currently mirrors are stored in the rust-lang-ci2 S3 bucket along with CI toolchains. This is problematic for multiple reasons: - CI IAM credentials are allowed to both edit and delete those files. A malicious user gaining access to those credentials would be able to change our mirrored dependencies, possibly compromising the compiler. - Contents of the rust-lang-ci2 bucket are disposable except for the mirrors' content. When we implement backups for S3 buckets we'd have to replicate just that part of the bucket, complicating the backup logic and increasing the chance of mistakes. A standalone bucket will be way easier to backup. This commit switches our CI to use the new rust-lang-ci-mirrors bucket. r? @alexcrichton
…inaryheap, r=Centril Document `From` trait for `BinaryHeap` This PR solves part of rust-lang#51430. (cc @skade) The comments described allocation and time complexity of the conversion from Vec to BinaryHeap The complexity description of BinaryHeap operations is available at mod level: https://doc.rust-lang.org/alloc/collections/binary_heap/index.html But it doesn't show up at BinaryHeap page: https://doc.rust-lang.org/alloc/collections/binary_heap/struct.BinaryHeap.html
…om-src/libcore/hash, r=Centril Remove unneeded comment in src/libcore/hash/mod.rs Split out from larger PR rust-lang#63347 - other sections in there require further discussion. r? @Centril
…elision-self-mut-self, r=cramertj
handle elision in async fn correctly
We now always make fresh lifetimne parameters for all elided
lifetimes, whether they are in the inputs or outputs. But then
we generate `'_` in the case of elided lifetimes from the outputs.
Example:
```rust
async fn foo<'a>(x: &'a u32) -> &u32 { .. }
```
becomes
```rust
type Foo<'a, 'b> = impl Future<Output = &'b u32>;
fn foo<'a>(x: &'a u32) -> Foo<'a, '_>
```
Fixes rust-lang#63388
…-impl-lifetime, r=cramertj use `ParamName` to track in-scope lifetimes instead of Ident Also, clear in-scope lifetimes when visiting nested items. Fixes rust-lang#63500. Fixes rust-lang#63225. Fixes rust-lang#52532. r? @cramertj
Provide map_ok and map_err method for Poll<Option<Result<T, E>>> Currently `map_ok` and `map_err` methods are given for `Poll<Result<T, E>>`. This PR adds these methods for `Poll<Option<Result<T, E>>>` as they are helpful in stream building code.
…tril RELEASES.md: ? is one of three Kleene operators The slash and quotes in ?/“Kleene” appeared to define “Kleene” as the name for the `?` operator, which is not the case. Rust has three Kleene operators `*`, `+`, `?`. ([Pointed out](https://www.reddit.com/r/rust/comments/cprt0z/rust_1370_prerelease_testing/ewr90y3/) by /u/Sharlinator on Reddit.)
Fix typo in error message.
Contributor
Author
|
@bors r+ p=16 rollup=never |
Collaborator
|
📌 Commit f5b0572 has been approved by |
Contributor
Author
|
@bors p=200 |
Collaborator
|
⌛ Testing commit f5b0572 with merge 4dc51d1c3f866a238b2e59e3051cafe7180ad08c... |
Collaborator
|
💔 Test failed - checks-azure |
Contributor
|
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Successful merges:
librustc_mir#62760 (Deduplicate error messages inlibrsctc_mir)async fnlifetime elision tests #63383 (async fnlifetime elision tests)<-into< -#63475 (Bring back suggestion for splitting<-into< -)Fromtrait forBinaryHeap#63486 (DocumentFromtrait forBinaryHeap)ParamNameto track in-scope lifetimes instead of Ident #63501 (useParamNameto track in-scope lifetimes instead of Ident)Failed merges:
r? @ghost