| Age | Commit message (Collapse) | Author | Lines |
|
Closes #35668
|
|
re-add accidentally removed line in wfcheck
Fixes #36299, introduced in #36119.
r? @eddyb
|
|
resolve: Suggest `use self` when import resolves
Improves errors messages by replacing "Maybe a missing `extern crate`" messages
with "Did you mean `self::...`" when the `self` import would succeed.
Fixes #34191.
Thank you for the help @jseyfried!
|
|
Count and report time taken by MIR passes
There’s some desire for deeper introspectability into what MIR passes cost us.
-Z time-passes after this PR:
```
Compiling test_shim v0.1.0 (file:///home/nagisa/Documents/rust/rust/src/rustc/test_shim)
time: 0.000; rss: 29MB parsing
time: 0.000; rss: 29MB configuration
time: 0.000; rss: 29MB recursion limit
time: 0.000; rss: 29MB crate injection
time: 0.000; rss: 29MB plugin loading
time: 0.000; rss: 29MB plugin registration
time: 0.032; rss: 54MB expansion
time: 0.000; rss: 54MB maybe building test harness
time: 0.000; rss: 54MB assigning node ids
time: 0.000; rss: 54MB checking for inline asm in case the target doesn't support it
time: 0.000; rss: 54MB complete gated feature checking
time: 0.000; rss: 54MB collecting defs
time: 0.004; rss: 54MB external crate/lib resolution
time: 0.000; rss: 54MB early lint checks
time: 0.000; rss: 54MB AST validation
time: 0.001; rss: 54MB name resolution
time: 0.000; rss: 54MB lowering ast -> hir
time: 0.000; rss: 56MB indexing hir
time: 0.000; rss: 56MB attribute checking
time: 0.000; rss: 56MB language item collection
time: 0.000; rss: 56MB lifetime resolution
time: 0.000; rss: 56MB looking for entry point
time: 0.000; rss: 56MB looking for plugin registrar
time: 0.000; rss: 56MB region resolution
time: 0.000; rss: 56MB loop checking
time: 0.000; rss: 56MB static item recursion checking
time: 0.000; rss: 56MB compute_incremental_hashes_map
time: 0.000; rss: 56MB load_dep_graph
time: 0.000; rss: 56MB type collecting
time: 0.000; rss: 56MB variance inference
time: 0.011; rss: 59MB coherence checking
time: 0.000; rss: 59MB wf checking
time: 0.000; rss: 59MB item-types checking
time: 0.000; rss: 59MB item-bodies checking
time: 0.000; rss: 59MB drop-impl checking
time: 0.000; rss: 59MB const checking
time: 0.000; rss: 59MB privacy checking
time: 0.000; rss: 59MB stability index
time: 0.000; rss: 59MB intrinsic checking
time: 0.000; rss: 59MB effect checking
time: 0.000; rss: 59MB match checking
time: 0.000; rss: 59MB liveness checking
time: 0.000; rss: 59MB rvalue checking
time: 0.000; rss: 59MB MIR dump
time: 0.000; rss: 59MB SimplifyCfg
time: 0.000; rss: 59MB QualifyAndPromoteConstants
time: 0.000; rss: 59MB TypeckMir
time: 0.000; rss: 59MB SimplifyBranches
time: 0.000; rss: 59MB SimplifyCfg
time: 0.000; rss: 59MB MIR passes
time: 0.000; rss: 59MB borrow checking
time: 0.000; rss: 59MB reachability checking
time: 0.000; rss: 59MB death checking
time: 0.000; rss: 59MB stability checking
time: 0.000; rss: 59MB unused lib feature checking
time: 0.000; rss: 59MB lint checking
time: 0.000; rss: 59MB resolving dependency formats
time: 0.000; rss: 59MB NoLandingPads
time: 0.000; rss: 59MB SimplifyCfg
time: 0.000; rss: 59MB EraseRegions
time: 0.000; rss: 59MB AddCallGuards
time: 0.000; rss: 59MB ElaborateDrops
time: 0.000; rss: 59MB NoLandingPads
time: 0.000; rss: 59MB SimplifyCfg
time: 0.000; rss: 59MB Deaggregator
time: 0.000; rss: 59MB AddCallGuards
time: 0.000; rss: 59MB PreTrans
time: 0.000; rss: 59MB Prepare MIR codegen passes
time: 0.000; rss: 59MB write metadata
time: 0.000; rss: 61MB translation item collection
time: 0.000; rss: 61MB codegen unit partitioning
time: 0.000; rss: 61MB internalize symbols
time: 0.007; rss: 61MB translation
time: 0.000; rss: 61MB assert dep graph
time: 0.000; rss: 61MB serialize dep graph
time: 0.000; rss: 61MB llvm function passes [2]
time: 0.000; rss: 61MB llvm function passes [3]
time: 0.000; rss: 61MB llvm function passes [1]
time: 0.000; rss: 61MB llvm function passes [0]
time: 0.000; rss: 61MB llvm module passes [2]
time: 0.000; rss: 61MB llvm module passes [1]
time: 0.000; rss: 61MB llvm module passes [0]
time: 0.000; rss: 61MB llvm module passes [3]
time: 0.001; rss: 62MB codegen passes [1]
time: 0.001; rss: 62MB codegen passes [2]
time: 0.001; rss: 62MB codegen passes [0]
time: 0.001; rss: 62MB codegen passes [3]
time: 0.001; rss: 63MB codegen passes [1]
time: 0.005; rss: 63MB LLVM passes
time: 0.000; rss: 63MB serialize work products
time: 0.001; rss: 63MB linking
```
r? @eddyb or @nikomatsakis
cc @nrc, @Mark-Simulacrum
|
|
Fix "field is never used" warning to take unions into account
When compiling code containing a union with an unused field, rustc says
"struct field is never used".
Rather than saying "struct or union", or adding logic to determine the
type of the item, just change the message to "field is never used",
dropping the "struct".
Update tests accordingly.
|
|
Rollup of 8 pull requests
- Successful merges: #36121, #36128, #36241, #36243, #36263, #36267, #36273, #36298
- Failed merges:
|
|
incr. comp.: Take spans into account for ICH
This PR makes the ICH (incr. comp. hash) take spans into account when debuginfo is enabled.
A side-effect of this is that the SVH (which is based on the ICHs of all items in the crate) becomes sensitive to the tiniest change in a code base if debuginfo is enabled. Since we are not trying to model ABI compatibility via the SVH anymore (this is done via the crate disambiguator now), this should be not be a problem.
Fixes #33888.
Fixes #32753.
|
|
|
|
Add missing urls
r? @steveklabnik
|
|
Remove mention of `unsafe_no_drop_flag` from Reference and Nomicon
|
|
Updated E0559 to new format
Refactored a method that printed one suggested field name,
into a method that returns an `Option` of a suggestion
(Updated test cases accordingly)
r? @jonathandturner
Closes #36197
|
|
Clean up thread-local storage docs
`std` no longer contains an implementation of scoped TLS.
r? @steveklabnik
|
|
Add missing urls
r? @steveklabnik
|
|
Update Error format for E0516, E0517, E0518
- E0518 Update error format #36111
- E0517 Update error format #36109
- E0516 Update error format #36108
- Part of #35233
r? @jonathandturner
|
|
Updated E0527 to new error format
* Closes #36113
|
|
|
|
save-analysis: some refinement to the value string for variables
|
|
|
|
|
|
resolve: Fix unused import false positive with `item_like_imports`
Fixes #36249.
r? @nrc
|
|
rustdoc: Fix associated consts in search results
Associated consts can appear in none trait impls so need to be treated
like methods when generating the search index.
Fixes #36031
|
|
|
|
|
|
|
|
|
|
|
|
Improves errors messages by replacing "Maybe a missing `extern crate`" messages
with "Did you mean `self::...`" when the `self` import would succeed.
|
|
|
|
Rollup of 6 pull requests
- Successful merges: #35845, #35983, #36065, #36102, #36242, #36245
- Failed merges:
|
|
Indicate where `core::result::IntoIter` is created.
None
|
|
Fix issue #36036.
Fix #36036.
We were treating an associated type as unsized even when the concrete instantiation was actually sized. Fix is to normalize before checking if it is sized.
|
|
* Closes #36113
|
|
|
|
Fix incorrect LLVM Linkage enum
Followup of #33994 to actually work.
The `Linkage` enum in librustc_llvm got out of sync with the version in LLVM and it caused two variants of the `#[linkage=""]` attribute to break.
This adds the functions `LLVMRustGetLinkage` and `LLVMRustSetLinkage` which convert between the Rust Linkage enum and the LLVM one, which should stop this from breaking every time LLVM changes it.
Possible remaining concerns:
1. There could be a codegen test to make sure that the attributes are applied correctly (I don't know how to do this).
2. ~~The test does not exercise the `appending` linkage. I can't figure out how to make a global static raw pointer to an array. This might not even be possible? If not we should probably remove appending linkage as its unusable in rust.~~ Appending linkage is not 'emittable' anyway.
3. The test only runs on Linux.
Fixes #33992
r? @alexcrichton
|
|
- Fixes #36111
- Part of #35233
|
|
- Fixes #36109
- Part of #35233
|
|
- fixes #36108
- part of #35233
|
|
Typecheck refactor for `!`
Ping @nikomatsakis @eddyb. This is the PR for the typeck refactor for `!`. Is this what you guys had in mind? Is there anything else that needs doing on it?
|
|
We were treating an associated type as unsized even when the concrete
instantiation was actually sized. Fix is to normalize before checking
if it is sized.
|
|
Add back feature accidentally removed
This feature was accidentally removed in
https://github.com/rust-lang/rust/pull/35957.
|
|
Update E0496 to new format
Fixes #36000.
Part of #35233.
r? @GuillaumeGomez
|
|
E0060 and E0061 improvement
Fixes #35290.
r? @jonathandturner
|
|
Indicate where `core::result::IntoIter` is created.
None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|