-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 12 pull requests #78904
Rollup of 12 pull requests #78904
Conversation
and give return of async fn a better span
- Add more well-known traits - Use the correct binders when lowering trait objects - Use correct substs when lowering trait objects - Use the correct binders for opaque_ty_data - Lower negative impls with the correct polarity - Supply associated type values - Use `predicates_defined_on` for where clauses
While technically the i686-unknown-freebsd target has been a tier 2 development platform for a long time, with full toolchain tarballs available on static.rust-lang.org, due to a bug in the manifest generation the target was never available for download through rustup. The infrastructure team privately inquired the FreeBSD package maintainers, and they weren't relying on those tarballs either, so it's a fair assumption to say practically nobody is using those tarballs. This PR then removes the CI builder that produces full tarballs for the target, and moves the compilation of rust-std for the target in dist-various-2. The x86_64-unknown-freebsd target is *not* affected.
This fixes ongoing issues where x.py will detect the wrong host triple between MSVC and GNU. - Add line to changelog
This wasn't necessary until MIR inliner started to consider drop glue as a candidate for inlining; introducing for the first time a generic use of size-of operation. No test at this point since this only happens with a custom inlining threshold.
The inliner does not support inlining of divering calls. Reject them early on and turn `inline_call` into an infallible operation.
When examining candidates for inlining, reject those that are determined to be recursive either because of self-recursive calls or calls to any instances already inlined.
…orse Add `#[cfg(panic = '...')]` This PR adds conditional compilation according to the panic strategy. I've come across a need for a flag like this a couple of times while writing tests: rust-lang#74301 , rust-lang#73670 (comment) I'm not sure if I need to add a feature gate for this flag?
…mulacrum Improve lifetime name annotations for closures & async functions * Don't refer to async functions as "generators" in error output * Where possible, emit annotations pointing exactly at the `&` in the return type of closures (when they have explicit return types) and async functions, like we do for arguments. Addresses rust-lang#74072, but I wouldn't call that *closed* until annotations are identical for async and non-async functions. * Emit a better annotation when the lifetime doesn't appear in the full name type, which currently happens for opaque types like `impl Future`. Addresses rust-lang#74497, but further improves could probably be made (why *doesn't* it appear in the type as `impl Future + '1`?) This is included in the same PR because the changes to `give_name_if_anonymous_region_appears_in_output` would introduce ICE otherwise (it would return `None` in cases where it didn't previously, which then gets `unwrap`ped)
…troalbini Test clippy on PR CI on changes This runs the tools builder (which builds and tests tools, including clippy) when the clippy submodule changes. This essentially returns us to the prior state when clippy was a submodule; it makes sense for us to test it on CI when it changes. It might make sense for it to be tested regardless of changing but it is somewhat rare for it to fail and we don't want to add to CI time for the majority of PRs which don't affect it. Fixes rust-lang#76999.
BTreeMap: fix pointer provenance rules Fixes rust-lang#78477 and includes rust-lang#78476 r? `@Mark-Simulacrum`
Update Chalk to 0.36.0 This PR updates Chalk and fixes a number of bugs in the chalk integration code. cc `@rust-lang/wg-traits` r? `@nikomatsakis`
…ulacrum Infer the default host target from the host toolchain if possible - `beta-x86_64-unknown-linux-gnu` has beta stripped - `rustc2` is ignored This fixes ongoing issues where x.py will detect the wrong host triple between MSVC and GNU. I don't think this will break anyone's workflow - I'd be very surprised if you a) had no `[build]` section in `config.toml`, b) had rustc installed, and c) expected the default target to be something other than the default target used by `rustc`. But I could be wrong - I'm happy to hear user stories :) Fixes rust-lang#78150. r? ``@Mark-Simulacrum`` cc ``@Lokathor``
Enable LLVM Polly via llvm-args. I think doing it this way is better than in rust-lang#51061. Polly has other useful options and we probably don't want to create a `-Z` flag for each one of them. ![results](https://user-images.githubusercontent.com/7283601/97695555-338f7180-1adf-11eb-82bd-5130e0e6fa89.png) [Benchmark](https://gist.github.com/JRF63/9a6268b91720958e90dbe7abffe20298) I noticed that `-lto` seems to interfere with polly in this specific microbenchmark, as enabling it causes the perf to drop to that of non-polly builds. Other related PRs: rust-lang#75615
inliner: Break inlining cycles Keep track of all instances inlined so far. When examining a new call sites from an inlined body, skip those where callee had been inlined already to avoid potential inlining cycles. Fixes rust-lang#78573.
rustc_ast: Do not panic by default when visiting macro calls Panicking by default made sense when we didn't have HIR or MIR and everything worked on AST, but now all AST visitors run early and majority of them have to deal with macro calls, often by ignoring them. The second commit renames `visit_mac` to `visit_mac_call`, the corresponding structures were renamed earlier in rust-lang#69589.
…imulacrum Demote i686-unknown-freebsd to tier 2 compiler target While technically the `i686-unknown-freebsd` target has been a tier 2 development platform for a long time, with full toolchain tarballs available on static.rust-lang.org, due to a bug in the manifest generation the target was never available for download through rustup. The infrastructure team privately inquired the FreeBSD package maintainers, and they weren't relying on those tarballs either, so it's a fair assumption to say practically nobody is using those tarballs. This PR then removes the CI builder that produces full tarballs for the target, and moves the compilation of `rust-std` for the target in `dist-various-2`. The `x86_64-unknown-freebsd` target is *not* affected. cc `@rust-lang/infra` `@rust-lang/compiler` `@rust-lang/release` r? `@Mark-Simulacrum`
fix `super_visit_with` for `Terminator` fixes rust-lang#78182 (comment) r? `@oli-obk` cc `@LeSeulArtichaut`
Monomorphize a type argument of size-of operation during codegen This wasn't necessary until MIR inliner started to consider drop glue as a candidate for inlining; introducing for the first time a generic use of size-of operation. No test at this point since this only happens with a custom inlining threshold.
@bors r+ p=5 rollup=never |
📌 Commit c150b93 has been approved by |
⌛ Testing commit c150b93 with merge 02d1551aa2fe7d0bf4bc214d57e6f08da1854e2c... |
Closing tree as aarch64 runner isn't starting. @bors treeclosed=100 cc @rust-lang/infra |
💥 Test timed out |
@bors retry treeclosed- |
⌛ Testing commit c150b93 with merge dc0f670529ec51db158502f334dba44216256fbb... |
@bors retry |
☀️ Test successful - checks-actions |
Successful merges:
#[cfg(panic = '...')]
#74754 (Add#[cfg(panic = '...')]
)super_visit_with
forTerminator
#78830 (fixsuper_visit_with
forTerminator
)Failed merges:
r? @ghost
@rustbot modify labels: rollup
Create a similar rollup