| Age | Commit message (Collapse) | Author | Lines |
|
Also moves formatting to use edition 2018, and to be done in parallel.
This brings near-linear speed ups (at least with a small amount of
cores).
|
|
Utilize rust-lang/rust commit hashes in toolstate
When moving the script out of CI configuration and into a proper script
we lost track of the current directory changing (and as such the
parameters of the script needing to be different now).
|
|
Document why Any is not an unsafe trait
The added documentation is not public (i.e., not in a doc comment) but that seems appropriate for this sort of low-level detail.
Fixes #62303
|
|
Fix typo in path parser name
It appears that a little typo crept into the name of a path parsing method.
|
|
Remove iter_private.rs
The contents of this file have been moved in #56932 (520e8b0) and the file should have been removed as well.
|
|
Misc MIR building cleanups
r? @matthewjasper
|
|
Rustdoc mutability removal
Fixes #67470.
As discussed in another PR, the `clean::Mutability` type in rustdoc is useless. So let's remove it!
r? @Centril
|
|
Add `ImmTy::try_from_(u)int` methods
r? @RalfJung
|
|
Add simpler entry points to const eval for common usages.
I found the `tcx.const_eval` API to be complex/awkward to work with, because of the inherent complexity from all of the different situations it is called from. Though it mainly used in one of the following ways:
- Evaluates the value of a constant without any substitutions, e.g. evaluating a static, discriminant, etc.
- Evaluates the value of a resolved instance of a constant. this happens when evaluating unevaluated constants or normalising trait constants.
- Evaluates a promoted constant.
This PR adds three new functions `const_eval_mono`, `const_eval_resolve`, and `const_eval_promoted` to `TyCtxt`, which each cater to one of the three ways `tcx.const_eval`
is normally used.
|
|
When moving the script out of CI configuration and into a proper script
we lost track of the current directory changing (and as such the
parameters of the script needing to be different now).
|
|
Enable incremental rustfmt adoption
Enables an incremental rollout of rustfmt usage within the compiler via a granular ignore configuration and automated enforcement. The decision to format the repository was approved in https://github.com/rust-lang/compiler-team/issues/80#issuecomment-491324079.
This PR includes:
* an `[ignore]` section to `rustfmt.toml` including most of the repository
* `./x.py` downloads rustfmt from a specific nightly (we do not pin to beta or stable as we need unstable features)
* an `./x.py fmt [--check]` command which runs cargo-fmt
* `./x.py fmt --check` runs during the same test step as `src/tools/tidy`, on master, but not on beta or stable as we don't want to depend on nightly rustfmt there.
* a commit to format `src/librustc_fs_util` as an initial target and to ensure enforcement is working from the start
|
|
|
|
|
|
distcheck (and generally publishing tarballs) will not package
rustfmt.toml and we for now still support running tidy etc in those
tarballs.
|
|
|
|
Allocate HIR on an arena 1/4
This PR is the first in a series of 4, aiming at allocating the HIR on an arena, as a memory optimisation.
1. This first PR lays the groundwork and migrates some low-hanging fruits.
2. The second PR will migrate `hir::Expr`, `hir::Pat` and related.
3. The third PR will migrate `hir::Ty` and related.
4. The final PR will be dedicated to eventual cleanups.
In order to make the transition as gradual as possible, some lowering routines receive `Box`-allocated data and move it into the arena. This is a bit wasteful, but hopefully temporary.
Nonetheless, special care should be taken to avoid double arena allocations.
Work mentored by @Zoxc.
|
|
Rollup of 6 pull requests
Successful merges:
- #67148 ( Refactor type & bounds parsing thoroughly)
- #67410 (Reenable static linking of libstdc++ on windows-gnu)
- #67439 (Cleanup `lower_pattern_unadjusted` & Improve slice pat typeck)
- #67480 (Require issue = "none" over issue = "0" in unstable attributes)
- #67500 (Tweak non_shorthand_field_patterns' suggestion)
- #67504 (Warn against relying on ?Sized being last)
Failed merges:
r? @ghost
|
|
|
|
submodules: update clippy from 69f99e74 to acbc609a
Changes:
````
rustup "Merge `ast::Mutability` and `mir::Mutability`"
rustup https://github.com/rust-lang/rust/pull/67130
rustup https://github.com/rust-lang/rust/pull/67455
Update lints for `iterator_step_by_zero` changes
Fix 'redudant' spelling in redundant_clone docs
Fix documentation example for unnecessary_filter_map.
Fix `expect_fun_call` false negative on references
Fix `iterator_step_by_zero` description in declaration
Fix `iterator_step_by_zero` definition
Correct `iterator_step_by_zero` documentation
Update iterator_step_by_zero
Prevent `cmp_nan` when inside constants
Detect comparisons with NAN constants
Fix clippy build failure
````
r? @oli-obk @Manishearth
|
|
Warn against relying on ?Sized being last
Fixes #62522
|
|
Tweak non_shorthand_field_patterns' suggestion
Fixes #66434
r? @estebank
|
|
Require issue = "none" over issue = "0" in unstable attributes
These changes make the use of `issue = "none"` required in unstable attributes throughout the compiler.
Notes:
- #66299 is now in beta so `issue = "none"` is accepted.
- The `tidy` tool now fails on `issue = "0"`.
- Tests that used `issue = "0"` were changed to use `issue = "none"`, except for _one_ that asserts `issue = "0"` can still be used.
- The compiler still allows `issue = "0"` because some submodules require it, this could be disallowed once these are updated.
Resolves #41260
r? @varkor
|
|
Cleanup `lower_pattern_unadjusted` & Improve slice pat typeck
Following up on https://github.com/rust-lang/rust/pull/67318, in this PR, the HAIR lowering of patterns (`lower_pattern_unadjusted`) is cleaned up with a focus on slice patterns (in particular, some dead code is removed). Moreover, `check_pat_slice` is refactored some more.
r? @matthewjasper
|
|
Reenable static linking of libstdc++ on windows-gnu
Fixes https://github.com/rust-lang/rust/issues/67408
Verified locally that `rustc_driver` is now statically linked to libstdc++.
|
|
Refactor type & bounds parsing thoroughly
PR is based on https://github.com/rust-lang/rust/pull/67131 with first one from this PR being ` extract parse_ty_tuple_or_parens`.
Also fixes #67146.
r? @estebank
|
|
|
|
This replaces cargo-fmt with rustfmt with --skip-children which should
allow us to format code without running into rust-lang/rustfmt#3930.
This also bumps up the version of rustfmt used to a more recent one.
|
|
|
|
In total it's about 100 lines of code and has received less than 5 commits in 2019 -- a good starting point.
|
|
|
|
Co-Authored-By: Mark Rousskov <mark.simulacrum@gmail.com>
|
|
Revamp `// run-fail` wrt. `--pass` & support `// build-fail` & `// check-fail`
Revamp how `// run-fail` tests work internally by having a separate `FailMode` that does not interfere with `PassMode`. In particular, `--pass check` will now have no effect on `// *-fail` tests. Moreover, new test annotations `// check-fail` (the default) and `// build-fail` are added. The latter is useful to distinguish post-monomorphization failures from pre-monomorphization failures as seen throughout the PR. Finally, ensure that non-`Ui` tests do not listen to `--pass check` such that the flag can be used with e.g. `./x.py test --pass check` directly.
Fixes #66929.
Fixes #67128.
r? @petrochenkov
cc @RalfJung @ninjasource
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|