| Age | Commit message (Collapse) | Author | Lines |
|
test: Ignore some problematic tests on powerpc and powerpc64*
This updates the list of tests which can be safely ignored on powerpc and powerpc64*.
|
|
|
|
r=petrochenkov
refactor: create multiple HIR items for imports
When lowering `use` statements into HIR, they get a `Def` of the thing they're pointing at. This is great for things that need to know what was just pulled into scope. However, this is a bit misleading, because a `use` statement can pull things from multiple namespaces if their names collide. This is a problem for rustdoc, because if there are a module and a function with the same name (for example) then it will only document the module import, because that's that the lowered `use` statement points to.
The current version of this PR does the following:
* Whenever the resolver comes across a `use` statement, it loads the definitions into a new `import_map` instead of the existing `def_map`. This keeps the resolutions per-namespace so that all the target definitions are available.
* When lowering `use` statements, it looks up the resolutions in the `import_map` and creates multiple `Item`s if there is more than one resolution.
* To ensure the `NodeId`s are properly tracked in the lowered module, they need to be created in the AST, and pulled out as needed if multiple resolutions are available.
Fixes https://github.com/rust-lang/rust/issues/34843
|
|
Add lint for intra link resolution failure
This PR is almost done, just remains this note:
```
note: requested on the command line with `-W intra-link-resolution-failure`
```
I have no idea why my lint is considered as being passed through command line and wasn't able to find where it was set. If anyone has an idea, it'd be very helpful!
cc @QuietMisdreavus
|
|
rustc_codegen_llvm: don't treat i1 as signed, even for #[repr(i8)] enums.
Fixes #51582. r? @nagisa cc @nox @oli-obk
|
|
rustdoc: process cross-crate glob re-exports
Turns out, we were deliberately ignoring glob re-exports when they were occurring across crates, even though we were fully processing them for local re-exports. This will at least bring the two into parity.
Fixes https://github.com/rust-lang/rust/issues/51252
|
|
|
|
Stabilize #[repr(transparent)]
Tracking issue FCP: https://github.com/rust-lang/rust/issues/43036#issuecomment-394094318
Reference PR: https://github.com/rust-lang-nursery/reference/pull/353
|
|
rustc: rename ty::maps to ty::query.
Should've never been `maps` but "query system/engine" didn't fully settle from the start.
r? @michaelwoerister or @nikomatsakis
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix for $crate var normalization in proc macro for externally defined macros
Fixes #51331, a bug that has existed in at least *some* form for a year and a half.
The PR includes the addition of a `fold_qpath` method to `syntax::fold::Folder`. Overriding this method is useful for folds that modify paths in a way that invalidates indices (insertion or removal of a component), as it provides the opportunity to update `qself.position` in `<A as B>::C` paths. I added it because the bugfix is messy without it.
(unfortunately, grepping around the codebase, I did not see anything else that could use it.)
|
|
|
|
Tracking issue FCP: https://github.com/rust-lang/rust/issues/43036#issuecomment-394094318
Reference PR: https://github.com/rust-lang-nursery/reference/pull/353
|
|
|
|
Fixes https://github.com/rust-lang/rust/issues/27389
|
|
|
|
|
|
|
|
|
|
Enable fall through past $:lifetime matcher
```rust
macro_rules! is_lifetime {
($lifetime:lifetime) => { true };
($other:tt) => { false };
}
fn main() {
println!("{}", is_lifetime!('lifetime));
println!("{}", is_lifetime!(@));
}
```
Before this fix, the `is_lifetime!` invocation would fail to compile with:
```
error: expected a lifetime, found `@`
--> src/main.rs:8:33
|
8 | println!("{}", is_lifetime!(@));
| ^
```
Fixes #50903.
Fixes #51477.
r? @kennytm
|
|
create separate dep-nodes for predicates_of and explicit_predicates_of
Fix for https://github.com/rust-lang/rust/issues/51409
- added incremental compilation test for infer_outlives_requirements
- created separate dep-node for explicit_predicates_of
|
|
Fix error codes
|
|
|
|
r=petrochenkov
Include parens to type parameter
The motivation of this PR is to fix a bug in rustfmt (cc https://github.com/rust-lang-nursery/rustfmt/issues/2630).
|
|
|
|
Implement RFC 2421, 'Keyword unreservations (pure, sizeof, alignof, offsetof)
On my local machine I was getting failures in `test/ui-fulldeps`, but I was also getting them again after reverting the change, so I'm hoping that this works.
I removed the test because that's what the other PR that unreserved a keyword did and I feel that it doesn't make sense/keep value to keep a test for something removed years ago.
|
|
|
|
Stabilize Iterator::step_by
Fixes #27741
|
|
|
|
|
|
|
|
|
|
parser: Split `+=` into `+` and `=` where `+` is explicitly requested (such as generics)
Added functions in tokens to check whether a token leads with `+`. Used them when parsing to allow for token splitting of `+=` into `+` and `=`.
Fixes https://github.com/rust-lang/rust/issues/47856
|
|
|
|
Increase number of usages of `u8` in weird expressions u8 test
|
|
Re-enable trivial bounds
cc #50825
Remove implementations from global bounds in winnowing when there is ambiguity.
This results in the reverse of #24066 happening sometimes. I'm not sure if anything can be done about that though.
cc #48214
r? @nikomatsakis
|
|
Rollup of 13 pull requests
Successful merges:
- #50143 (Add deprecation lint for duplicated `macro_export`s)
- #51099 (Fix Issue 38777)
- #51276 (Dedup auto traits in trait objects.)
- #51298 (Stabilize unit tests with non-`()` return type)
- #51360 (Suggest parentheses when a struct literal needs them)
- #51391 (Use spans pointing at the inside of a rustdoc attribute)
- #51394 (Use scope tree depths to speed up `nearest_common_ancestor`.)
- #51396 (Make the size of Option<NonZero*> a documented guarantee.)
- #51401 (Warn on `repr` without hints)
- #51412 (Avoid useless Vec clones in pending_obligations().)
- #51427 (compiletest: autoremove duplicate .nll.* files (#51204))
- #51436 (Do not require stage 2 compiler for rustdoc)
- #51437 (rustbuild: generate full list of dependencies for metadata)
Failed merges:
|
|
Warn on `repr` without hints
Fix #51376.
|
|
Use spans pointing at the inside of a rustdoc attribute
Follow up to #51111.
Point to the link in a rustdoc attribute where intralink resolution failed, instead of the full rustdoc attribute's span.
r? @GuillaumeGomez cc @kennytm
|
|
Suggest parentheses when a struct literal needs them
When writing a struct literal in an expression that expects a block to
be started afterwards (like an `if` statement), do not suggest using the
same struct literal:
```
did you mean `S { /* fields * /}`?
```
Instead, suggest surrounding the expression with parentheses:
```
did you mean `(S { /* fields * /})`?
```
Fix #47360, #50090. Leaving #42982 open to come back to this problem with a better solution.
|
|
Stabilize unit tests with non-`()` return type
References #48854
|