| Age | Commit message (Collapse) | Author | Lines |
|
Help suggests non-existent package std::os::ext::process::CommandExt
Fixes #39175.
|
|
In order to output a path that could actually be imported (valid and
visible), we need to handle re-exports correctly.
For example, take `std::os::unix::process::CommandExt`, this trait is
actually defined at `std::sys::unix::ext::process::CommandExt` (at time
of writing).
`std::os::unix` rexports the contents of `std::sys::unix::ext`.
`std::sys` is private so the "true" path to `CommandExt` isn't accessible.
In this case, the visible parent map will look something like this:
(child) -> (parent)
`std::sys::unix::ext::process::CommandExt` -> `std::sys::unix::ext::process`
`std::sys::unix::ext::process` -> `std::sys::unix::ext`
`std::sys::unix::ext` -> `std::os`
This is correct, as the visible parent of `std::sys::unix::ext` is in fact
`std::os`.
When printing the path to `CommandExt` and looking at the current
segment that corresponds to `std::sys::unix::ext`, we would normally
print `ext` and then go to the parent - resulting in a mangled path like
`std::os::ext::process::CommandExt`.
Instead, we must detect that there was a re-export and instead print `unix`
(which is the name `std::sys::unix::ext` was re-exported as in `std::os`).
|
|
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #54300 (Updated RELEASES.md for 1.30.0)
- #55013 ([NLL] Propagate bounds from generators)
- #55071 (Fix ICE and report a human readable error)
- #55144 (Cleanup resolve)
- #55166 (Don't warn about parentheses on `match (return)`)
- #55169 (Add a `copysign` function to f32 and f64)
- #55178 (Stabilize slice::chunks_exact(), chunks_exact_mut(), rchunks(), rchunks_mut(), rchunks_exact(), rchunks_exact_mut())
|
|
Fix ICE and report a human readable error
fixes #55063
r? @RalfJung
|
|
|
|
Replace `ParamEnv` with a new type in chalk context.
I left a few FIXMEs.
r? @nikomatsakis
|
|
Deduplicate some code and compile-time values around vtables
r? @RalfJung
|
|
|
|
|
|
|
|
resolve: Scale back hard-coded extern prelude additions on 2015 edition
https://github.com/rust-lang/rust/pull/54404 stabilized `feature(extern_prelude)` on 2015 edition, including the hard-coded parts not passed with `--extern`.
First of all, I'd want to confirm that this is intended stabilization, rather than a part of the "extended beta" scheme that's going to be reverted before releasing stable.
(EDIT: to clarify - this is a question, I'm \*asking\* for confirmation, rather than give it.)
Second, on 2015 edition extern prelude is not so fundamentally tied to imports and is a mere convenience, so this PR scales them back to the uncontroversial subset.
The "uncontroversial subset" means that if libcore is injected it brings `core` into prelude, if libstd is injected it brings `std` and `core` into prelude.
On 2015 edition this can be implemented through the library prelude (rather than hard-coding in the compiler) right now, I'll do it in a follow-up PR.
UPDATE: The change is done for both 2015 and 2018 editions now as discussed below.
Closes https://github.com/rust-lang/rust/issues/53166
|
|
r=pnkfelix
nll type annotations in multisegment path
This turned out to be sort of tricky. The problem is that if you have a path like
```
<Foo<&'static u32>>::bar
```
and it comes from an impl like `impl<T> Foo<T>` then the self-type the user gave doesn't *directly* map to the substitutions that the impl wants. To handle this, then, we have to preserve not just the "user-given substs" we used to do, but also a "user-given self-ty", which we have to apply later. This PR makes those changes.
It also removes the code from NLL relate-ops that handled canonical variables and moves to use normal inference variables instead. This simplifies a few things and gives us a bit more flexibility (for example, I predict we are going to have to start normalizing at some point, and it would be easy now).
r? @matthewjasper -- you were just touching this code, do you feel comfortable reviewing this?
Fixes #54574
|
|
|
|
r=petrochenkov
A few iterator-related improvements
- typeck: don't collect into a vector when unnecessary
- create only one vector when winnowing candidates
- change a cloning map to `into_iter`
|
|
|
|
|
|
Instead, we talk about:
- creating the "next" universe
- universes "extending" one another
- and `u1.can_name(u2)`, meaning that `u1` contains all names from `u2`
|
|
|
|
The only name was silly. U1 can contain everything from U0 *plus* more
things.
|
|
`Result` really sounds like the rustc result type
|
|
r=Mark-Simulacrum
Check the invariant for `principal` inside the method
r? @Mark-Simulacrum
|
|
|
|
|
|
|
|
|
|
add a macro for static (compile-time) assertions
Cc @oli-obk
|
|
Fixes #47311.
r? @nrc
|
|
|
|
|
|
|
|
|
|
oli-obk:mögen_konstante_funktionen_doch_bitte_endlich_stabil_sein, r=Centril
Stabilize `min_const_fn`
tracking issue: #53555
r? @Centril
|
|
Rollup of 11 pull requests
Successful merges:
- #54078 (Expand the documentation for the `std::sync` module)
- #54717 (Cleanup rustc/ty part 1)
- #54781 (Add examples to `TyKind::FnDef` and `TyKind::FnPtr` docs)
- #54787 (Only warn about unused `mut` in user-written code)
- #54804 (add suggestion for inverted function parameters)
- #54812 (Regression test for #32382.)
- #54833 (make `Parser::parse_foreign_item()` return a foreign item or error)
- #54834 (rustdoc: overflow:auto doesn't work nicely on small screens)
- #54838 (Fix typo in src/libsyntax/parse/parser.rs)
- #54851 (Fix a regression in 1.30 by reverting #53564)
- #54853 (Remove unneccessary error from test, revealing NLL error.)
Failed merges:
r? @ghost
|
|
Add examples to `TyKind::FnDef` and `TyKind::FnPtr` docs
This adds two examples to the docs of `TyKind::FnDef` and `TyKind::FnPtr`.
I found these two types a bit confusing when I learned about them and I think adding these examples might help others.
|
|
Cleanup rustc/ty part 1
Part 2 will follow soon; I wouldn't want these changes to rot too quickly.
- improve stack shifting and remove related allocations
- move a faster early return up
- improve allocations
- use Cow<str> where applicable
- simplify common patterns
- whitespace fixes
|
|
Cleanup rustc/ty part 2
The second part of cleanups and minor improvements for rustc/ty.
- improve allocations
- calculate span after a possible early continue
- simplify some patterns
- mark a comment as FIXME
- whitespace fixes
The PR is independent from from the first part.
|
|
|
|
error message when trying to move from an Rc or Arc is ungreat
Fixes #52086.
r? @nikomatsakis
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|