| Age | Commit message (Collapse) | Author | Lines |
|
Taking inspiration from `-Zmacro-stats`:
- Use "{prefix}" consistently.
- Use names for column widths.
- Write output in a single `eprint!` call, in an attempt to minimize
interleaving of output from different rustc processes.
- Use `repeat` for the long `---` banners.
|
|
Rollup of 10 pull requests
Successful merges:
- rust-lang/rust#142458 (Merge unboxed trait object error suggestion into regular dyn incompat error)
- rust-lang/rust#142593 (Add a warning to LateContext::get_def_path)
- rust-lang/rust#142594 (Add DesugaringKind::FormatLiteral)
- rust-lang/rust#142740 (Clean-up `FnCtxt::is_destruct_assignment_desugaring`)
- rust-lang/rust#142780 (Port `#[must_use]` to new attribute parsing infrastructure)
- rust-lang/rust#142798 (Don't fail to parse a struct if a semicolon is used to separate fields)
- rust-lang/rust#142856 (Add a few inline directives in rustc_serialize.)
- rust-lang/rust#142868 (remove few allow(dead_code))
- rust-lang/rust#142874 (cranelift: fix target feature name typo: "fxsr")
- rust-lang/rust#142877 (Document why tidy checks if `eslint` is installed via `npm`)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
yotamofek:pr/rustdoc/comment-eslint-installation-req, r=GuillaumeGomez
Document why tidy checks if `eslint` is installed via `npm`
Discussion here: rust-lang/rust#142851
|
|
cranelift: fix target feature name typo: "fxsr"
Fix a typo introduced in 71b698c0b81c2e35c852ebcdf1f5cbe9e9162a50
CC: `@clubby789` `@bjorn3`
|
|
remove few allow(dead_code)
Few from serial/parallel compiler leftovers and few from bootstrap.
|
|
Add a few inline directives in rustc_serialize.
I see `debug_strict_add` and `debug_strict_sub` appearing in callgrind output. This bothers me. This PR should make them disappear.
|
|
Don't fail to parse a struct if a semicolon is used to separate fields
The first commit is a small refactor.
|
|
Port `#[must_use]` to new attribute parsing infrastructure
Ports `must_use` to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971353197
r? `@jdonszelmann`
|
|
Clean-up `FnCtxt::is_destruct_assignment_desugaring`
I noticed the docstring thing and fixed that; then I thought I'd rewrite the method using let-chains while I'm at it, since that seemed appropriate. But I don't feel too strongly about the second change, so let me know if I should remove it
|
|
Add DesugaringKind::FormatLiteral
Implements `DesugaringKind::FormatLiteral` to mark the FormatArgs desugaring of format literals. The main use for this is to stop yapping about about formatting parameters if we're not anywhere near a format literal. The other use case is to fix suggestions such as https://github.com/rust-lang/rust/issues/141350. It might also be useful for new or existing diagnostics that check whether they're in a format-like macro.
cc `@xizheyin` `@fmease`
|
|
r=compiler-errors
Add a warning to LateContext::get_def_path
Preventing anyone from doing the same error as https://github.com/rust-lang/rust-clippy/pull/15043 fixed
|
|
Merge unboxed trait object error suggestion into regular dyn incompat error
Another hir-walker removed from the well-formed queries. This error was always a duplicate of another, but it was able to provide more information because it could invoke `is_dyn_compatible` without worrying about cycle errors. That's also the reason we can't put the error directly into hir_ty_lowering when lowering a `dyn Trait` within an associated item signature. So instead I packed it into the error handling of wf obligation checking.
|
|
|
|
|
|
completely deduplicate `Visitor` and `MutVisitor`
r? oli-obk
This closes rust-lang/rust#127615.
### Discussion
> * Give every `MutVisitor::visit_*` method a corresponding `flat_map_*` method.
Not every AST node exists in a location where they can be mapped to multiple instances of themselves. Not every AST node exists in a location where they can be removed from existence (e.g. `filter_map_expr`). I don't think this is doable.
> * Give every `MutVisitor::visit_*` method a corresponding `Visitor` method and vice versa
The only three remaining method-level asymmetries after this PR are `visit_stmt` and `visit_nested_use_tree` (only on `Visitor`) and `visit_span` (only on `MutVisitor`).
`visit_stmt` doesn't seem applicable to `MutVisitor` because `walk_flat_map_stmt_kind` will ask `flat_map_item` / `filter_map_expr` to potentially turn a single `Stmt` to multiple based on what a visitor wants. So only using `flat_map_stmt` seems appropriate.
`visit_nested_use_tree` is used for `rustc_resolve` to track stuff. Not useful for `MutVisitor` for now.
`visit_span` is currently not used for `MutVisitor` already, it was just kept in case we want to revive rust-lang/rust#127241. cc `@cjgillot` maybe we could remove for now and re-insert later if we find a use-case? It does involve some extra effort to maintain.
* Remaining FIXMEs
`visit_lifetime` has an extra param for `Visitor` that's not in `MutVisitor`. This is again something only used by `rustc_resolve`. I think we can keep that symmetry for now.
|
|
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
|
|
rewrite using let-chains
|
|
|
|
|
|
Rollup of 10 pull requests
Successful merges:
- rust-lang/rust#140254 (Pass -Cpanic=abort for the panic_abort crate)
- rust-lang/rust#142600 (Port `#[rustc_pub_transparent]` to the new attribute system)
- rust-lang/rust#142617 (improve search graph docs, reset `encountered_overflow` between reruns)
- rust-lang/rust#142747 (rustdoc_json: conversion cleanups)
- rust-lang/rust#142776 (All HIR attributes are outer)
- rust-lang/rust#142800 (integer docs: remove extraneous text)
- rust-lang/rust#142841 (Enable fmt-write-bloat for Windows)
- rust-lang/rust#142845 (Enable textrel-on-minimal-lib for Windows)
- rust-lang/rust#142850 (remove asm_goto feature annotation, for it is now stabilized)
- rust-lang/rust#142860 (Notify me on tidy changes)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
Notify me on tidy changes
r? ghost
|
|
remove asm_goto feature annotation, for it is now stabilized
This was stabilized in https://github.com/rust-lang/rust/pull/133870
|
|
Enable textrel-on-minimal-lib for Windows
`bin_name` needs to be used when building a runnable executable.
Addresses item in rust-lang/rust#128602
---
try-job: x86_64-mingw-*
try-job: x86_64-msvc-*
try-job: i686-msvc-*
|
|
Enable fmt-write-bloat for Windows
Seems to be working fine for MSVC once it has the correct binary name.
Addresses item in rust-lang/rust#128602
---
try-job: x86_64-mingw-*
try-job: x86_64-msvc-*
try-job: i686-msvc-*
|
|
integer docs: remove extraneous text
"Basic usage" implies there is an example that shows advanced usage, but these APIs are extra simple.
|
|
All HIR attributes are outer
Fixes https://github.com/rust-lang/rust/issues/142649. Closes https://github.com/rust-lang/rust/pull/142759.
All HIR attributes, including parsed and not yet parsed, will now be rendered as outer attributes by `rustc_hir_pretty`. The original style of the corresponding AST attribute(s) is not relevant for pretty printing, only for diagnostics.
r? ````@jdonszelmann````
|
|
rustdoc_json: conversion cleanups
A bunch of clean-to-types conversion cleanups I found while working on perf-related stuff in rustdoc_json.
r? ```@aDotInTheVoid```
|
|
improve search graph docs, reset `encountered_overflow` between reruns
I think this shouldn't really matter for now. It will be more relevant for my current rework as we otherwise cannot partially reevaluate the root goal in case there has been overflow during the prervious iteration.
r? ````@BoxyUwU````
|
|
r=jdonszelmann
Port `#[rustc_pub_transparent]` to the new attribute system
Very similar to rust-lang/rust#142498.
This is a part of rust-lang/rust#131229, so
r? ````@jdonszelmann````
---
For reference, the `#[rustc_pub_transparent]` attribute was created by me back in rust-lang/rust#129487.
As mentioned back in https://github.com/rust-lang/rust/pull/129487#discussion_r1730120385, this attribute does not check that it is applied to an ADT, because it checks that `#[repr(transparent)]` is also applied to the same item, which, in turn, should check for ADT.
|
|
Pass -Cpanic=abort for the panic_abort crate
The panic_abort crate must be compiled with panic=abort, but cargo doesn't allow setting the panic strategy for a single crate the usual way using `panic="abort"`, but luckily per-package rustflags do allow this. Bootstrap previously handled this in its rustc wrapper, but for example the build systems of cg_clif and cg_gcc don't use the rustc wrapper, so they would either need to add one, patch the standard library or be unable to build a sysroot suitable for both panic=abort and panic=unwind (as is currently the case).
Required for https://github.com/rust-lang/rustc_codegen_cranelift/issues/1567
|
|
Preserve caches in a call to shrink_to_fit
A small follow up to rust-lang/rust#142542.
|
|
r=jieyouxu
forward the bootstrap `runner` to `run-make`
The runner was already forwarded to `compiletest`, this just passes it on to `run-make` and uses it in the `run` functions.
The configuration can look like this
```toml
# in bootstrap.toml
[target.s390x-unknown-linux-gnu]
runner = "qemu-s390x -L /usr/s390x-linux-gnu"
```
Any C compilation automatically sets the correct target. Calls to rustc must use `.target(target())`. Then, a command like below will work by cross-compiling to the given target, and using the given runner for that target to execute the binary:
```
./x test tests/run-make/c-link-to-rust-va-list-fn --target s390x-unknown-linux-gnu
```
The runner can also be used for e.g. running with `valgrind`.
This PR also enables its use in the test case that I care about, hopefully that actually does work on the platforms that CI uses. We should probably run some try jobs to be sure?
r? `@jieyouxu`
try-job: test-various
try-job: armhf-gnu
|
|
|
|
|
|
The runner was already forwarded to `compiletest`, this just passes it on to `run-make` and uses it in the `run` functions.
|
|
r=nnethercote
Avoid a few more allocations in `write_shared.rs`
Inspired by rust-lang/rust#141421 , avoids a few `Vec`, `PathBuf` and `String` allocations in `write_shared.rs`. I don't think these will show up on benchmarks, but are still worthwhile IMHO.
Also includes a few small cleanups.
r? nnethercote - if you'd like :)
|
|
- `convert_static` -> `from_clean_static`
- `from_function` -> `from_clean_function`
To match the pre-existing `from_clean_item` and `FromClean::from_clean`.
I left `JsonRenderer::convert_item` unchanged because it's a bit
different.
|
|
The `FromClean` trait is used a lot for converting to rustdoc-json
format. But it's not used universally; there are still some ad hoc
functions and methods for converting. This commit fixes this
inconsistency by using `FromClean` more.
The commit also introduces `FromClean` for `Box` and `Option`. This lets
a lot of `as_ref` and `map` calls be removed in favour of simple
`into_json` calls.
|
|
It's just replicating exactly what is done by `<Vec<GenericParamDef> as
FromClean>::into_json`
|
|
We currently have both `FromClean<clean::Constant> for Constant` and
`FromClean<clean::ConstantKind> for Constant` which are basically
identical, but the former is unused.
|
|
|
|
|
|
|
|
Only traverse reachable blocks in JumpThreading.
Fixes https://github.com/rust-lang/rust/issues/131451
We only compute loop headers for reachable blocks. We shouldn't try to perform an opt on unreachable blocks anyway.
|
|
|
|
|
|
|
|
|