about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2023-02-06Remove redundant test.Camille GILLOT-2/+1
2023-02-06Auto merge of #107727 - Dylan-DPC:rollup-b1yexcl, r=Dylan-DPCbors-349/+936
Rollup of 5 pull requests Successful merges: - #107553 (Suggest std::ptr::null if literal 0 is given to a raw pointer function argument) - #107580 (Recover from lifetimes with default lifetimes in generic args) - #107669 (rustdoc: combine duplicate rules in ayu CSS) - #107685 (Suggest adding a return type for async functions) - #107687 (Adapt SROA MIR opt for aggregated MIR) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2023-02-06Rollup merge of #107687 - cjgillot:sroa-2, r=oli-obkDylan DPC-313/+589
Adapt SROA MIR opt for aggregated MIR The pass was broken by https://github.com/rust-lang/rust/pull/107267. This PR extends it to replace: ``` x = Struct { 0: a, 1: b } y = move? x ``` by assignment between locals ``` x_0 = a x_1 = b y_0 = move? x_0 y_1 = move? x_1 ``` The improved pass runs to fixpoint, so we can flatten nested field accesses.
2023-02-06Rollup merge of #107685 - jieyouxu:issue-90027, r=compiler-errorsDylan DPC-1/+102
Suggest adding a return type for async functions Fixes #90027.
2023-02-06Rollup merge of #107669 - notriddle:notriddle/ayu-smaller, r=GuillaumeGomezDylan DPC-34/+14
rustdoc: combine duplicate rules in ayu CSS
2023-02-06Rollup merge of #107580 - ↵Dylan DPC-1/+41
lenko-d:default_value_for_a_lifetime_generic_parameter_produces_confusing_diagnostic, r=compiler-errors Recover from lifetimes with default lifetimes in generic args Fixes [#107492](https://github.com/rust-lang/rust/issues/107492)
2023-02-06Rollup merge of #107553 - edward-shen:edward-shen/suggest-null-ptr, ↵Dylan DPC-0/+190
r=WaffleLapkin Suggest std::ptr::null if literal 0 is given to a raw pointer function argument Implementation feels a little sus (we're parsing the span for a `0`) but it seems to fall in line the string-expected-found-char condition right above this check, so I think it's fine. Feedback appreciated on help text? I think it's consistent but it does sound a little awkward maybe? Fixes #107517
2023-02-06Auto merge of #103761 - chenyukang:yukang/fix-103320-must-use, r=compiler-errorsbors-9/+142
Add explanatory message for [#must_use] in ops Fixes #103320
2023-02-06Auto merge of #107667 - cjgillot:no-on-hit, r=lcnr,Zoxcbors-127/+68
Remove `OnHit` callback from query caches. This is not useful now that query results are `Copy`.
2023-02-06Auto merge of #107697 - kiranshila:patch-1, r=the8472bors-1/+1
Fix typo in HashMap::with_capacity
2023-02-06Suggest return type for async function without return type许杰友 Jieyou Xu (Joe)-1/+102
2023-02-06Auto merge of #107141 - notriddle:notriddle/max-lev-distance-2023, ↵bors-74/+108
r=GuillaumeGomez rustdoc: compute maximum Levenshtein distance based on the query Preview: https://notriddle.com/notriddle-rustdoc-demos/search-lev-distance-2023/std/index.html?search=regex The heuristic is pretty close to the name resolver, maxLevDistance = `Math.floor(queryLen / 3)`. Fixes #103357 Fixes #82131 Similar to https://github.com/rust-lang/rust/pull/103710, but following the suggestion in https://github.com/rust-lang/rust/pull/103710#issuecomment-1296360267 to use `floor` instead of `ceil`, and unblocked now that https://github.com/rust-lang/rust/pull/105796 made it so that setting the max lev distance to `0` doesn't cause substring matches to be removed.
2023-02-05Auto merge of #107627 - nnethercote:optimize-fold_ty, r=compiler-errorsbors-99/+104
Optimize `fold_ty` Micro-optimizing the heck out of the important `fold_ty` methods. r? `@oli-obk`
2023-02-06Split and inline `TypeFreshener::fold_ty`.Nicholas Nethercote-68/+61
2023-02-06Split and inline `ShallowResolver::fold_ty`.Nicholas Nethercote-24/+33
2023-02-06Inline `OpportunisticVarResolver::fold_ty`.Nicholas Nethercote-0/+1
2023-02-06Improve early bailout test in `resolve_vars_if_possible`.Nicholas Nethercote-2/+2
`!t.has_non_region_infer()` is the test used in `OpportunisticVarResolver`, and catches a few cases that `!t.needs_infer()` misses.
2023-02-06Put a `ShallowResolver` within `OpportunisticVarResolver`.Nicholas Nethercote-5/+7
So one doesn't have to be constructed every time.
2023-02-05Auto merge of #107526 - obeis:for-missing-iterator, r=estebank,compiler-errorsbors-0/+48
Recover form missing expression in `for` loop Close #78537 r? `@estebank`
2023-02-05Fix typo in HashMap::with_capacityKiran Shila-1/+1
2023-02-05Auto merge of #107663 - matthiaskrgr:107423-point-at-EOF-code, r=compiler-errorsbors-0/+43
don't point at nonexisting code beyond EOF when warning about delims Previously we would show this: ``` warning: unnecessary braces around block return value --> /tmp/bad.rs:1:8 | 1 | fn a(){{{ | ^ ^ | = note: `#[warn(unused_braces)]` on by default help: remove these braces | 1 - fn a(){{{ 1 + fn a(){{ | ``` which is now hidden in this case. We would create a span spanning between the pair of redundant {}s but there is only EOF instead of the `}` so we would previously point at nothing. This would cause the debug assertion ice to trigger. I would have loved to just only point at the second delim and say "you can remove that" but I'm not sure how to do that without refactoring the entire diagnostic which seems tricky. :( But given that this does not seem to regress any other tests we have, I think this edge-casey enough be acceptable. Fixes https://github.com/rust-lang/rust/issues/107423 r? `@compiler-errors`
2023-02-05Add ui test for missing expression in for loopObei Sideg-0/+18
2023-02-05Recover from missing expression in for loopObei Sideg-0/+30
2023-02-05Auto merge of #102842 - rol1510:issue-85566-fix, r=notriddlebors-22/+65
rustdoc: change trait bound formatting Fixes #85566 Before <img width="268" alt="image" src="https://user-images.githubusercontent.com/29011024/208326689-cc9b4bae-529c-473c-81e2-fc5ddb738f07.png"> Now <img width="268" alt="image" src="https://user-images.githubusercontent.com/29011024/216216918-d7923787-3e3b-486d-9735-4cecd2988dba.png">
2023-02-05Bless 32bit tests.Camille GILLOT-19/+21
2023-02-05Simplify ReplacementMap.Camille GILLOT-84/+109
2023-02-05Run SROA to fixpoint.Camille GILLOT-67/+78
2023-02-05Simplify construction of replacement map.Camille GILLOT-160/+196
2023-02-05Introduce helper.Camille GILLOT-24/+23
2023-02-05Make SROA expand assignments.Camille GILLOT-32/+188
2023-02-05Auto merge of #107679 - est31:less_import_overhead, r=compiler-errorsbors-376/+356
Less import overhead for errors This removes huge (3+ lines) import lists found in files that had their error reporting migrated. These lists are bad for developer workflows as adding, removing, or editing a single error's name might cause a chain reaction that bloats the git diff. As the error struct names are long, the likelihood of such chain reactions is high. Follows the suggestion by `@Nilstrieb` in the [zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/147480-t-compiler.2Fwg-diagnostics/topic/massive.20use.20statements) to replace the `use errors::{FooErr, BarErr};` with `use errors;` and then changing to `errors::FooErr` on the usage sites. I have used sed to do most of the changes, i.e. something like: ``` sed -i -E 's/(create_err|create_feature_err|emit_err|create_note|emit_fatal|emit_warning)\(([[:alnum:]]+|[A-Z][[:alnum:]:]*)( \{|\))/\1(errors::\2\3/' path/to/file.rs ``` & then I manually fixed the errors that occured. Most manual changes were required in `compiler/rustc_parse/src/parser/expr.rs`. r? `@compiler-errors`
2023-02-05Fix SROA without deaggregation.Camille GILLOT-127/+174
2023-02-05Auto merge of #107434 - BoxyUwU:nll_const_equate, r=compiler-errorsbors-21/+92
emit `ConstEquate` in `TypeRelating<D>` emitting `ConstEquate` during mir typeck is useful since it can help catch bugs in hir typeck incase our impl of `ConstEquate` is wrong. doing this did actually catch a bug, when relating `Expr::Call` we `==` the types of all the argument consts which spuriously returns false if the type contains const projections/aliases which causes us to fall through to the `expected_found` error arm. Generally its an ICE if the `Const`'s `Ty`s arent equal but `ConstKind::Expr` is kind of special since they are sort of like const items that are `const CALL<F: const Fn(...), const N: F>` though we dont actually explicitly represent the `F` type param explicitly in `Expr::Call` so I just made us relate the `Const`'s ty field to avoid getting ICEs from the tests I added and the following existing test: ```rust // tests/ui/const-generics/generic_const_exprs/different-fn.rs #![feature(generic_const_exprs)] #![allow(incomplete_features)] use std::mem::size_of; use std::marker::PhantomData; struct Foo<T>(PhantomData<T>); fn test<T>() -> [u8; size_of::<T>()] { [0; size_of::<Foo<T>>()] //~^ ERROR unconstrained generic constant //~| ERROR mismatched types } fn main() { test::<u32>(); } ``` which has us relate two `ConstKind::Value` one for the fn item of `size_of::<Foo<T>>` and one for the fn item of `size_of::<T>()`, these only differ by their `Ty` and if we don't relate the `Ty` we'll end up getting an ICE from the checks that ensure the `ty` fields always match. In theory `Expr::UnOp` has the same problem so I added a call to `relate` for the ty's, although I was unable to create a repro test.
2023-02-05emit `ConstEquate` in `TypeRelating<D>`Boxy-21/+92
2023-02-04Suggest null ptr if 0 is given as a raw ptr argEdward Shen-0/+190
2023-02-05rustc_session: remove huge error importsest31-29/+23
2023-02-05rustc_parse: remove huge error importsest31-121/+111
2023-02-05rustc_interface: remove huge error importsest31-18/+16
2023-02-05rustc_passes: remove huge error importsest31-56/+57
2023-02-05rustc_const_eval: remove huge error importsest31-37/+35
2023-02-05rustc_metadata: remove huge error importsest31-92/+89
2023-02-05rustc_expand: remove huge error importsest31-23/+25
2023-02-04Recover from default value for a lifetime in generic parameters.Lenko Donchev-1/+41
2023-02-04Auto merge of #107672 - matthiaskrgr:rollup-7e6dbuk, r=matthiaskrgrbors-284/+139
Rollup of 3 pull requests Successful merges: - #107116 (consolidate bootstrap docs) - #107646 (Provide structured suggestion for binding needing type on E0594) - #107661 (Remove Esteban from review queues for a while) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2023-02-04Rollup merge of #107661 - oli-obk:breathing_room, r=oli-obkMatthias Krüger-6/+3
Remove Esteban from review queues for a while r? `@estebank`
2023-02-04Rollup merge of #107646 - estebank:specific-span, r=compiler-errorsMatthias Krüger-30/+98
Provide structured suggestion for binding needing type on E0594 Partially address #45405.
2023-02-04Rollup merge of #107116 - ozkanonur:consolidate-bootstrap-docs, r=jyn514Matthias Krüger-248/+38
consolidate bootstrap docs With this diff, I tried to consolidate bootstrap documentations and remove the duplicated informations. Coupled with https://github.com/rust-lang/rustc-dev-guide/pull/1563 Resolves #90686 Signed-off-by: ozkanonur <work@onurozkan.dev>
2023-02-04Auto merge of #107549 - Zoxc:rustc-shared, r=jyn514bors-1415/+1437
Move code in `rustc_driver` out to a new `rustc_driver_impl` crate to allow pipelining That adds a `rustc_shared` library which contains all the rustc library crates in a single dylib. It takes over this role from `rustc_driver`. This is done so that `rustc_driver` can be compiled in parallel with other crates. `rustc_shared` is intentionally left empty so it only does linking. An alternative could be to move the code currently in `rustc_driver` into a new crate to avoid changing the name of the distributed library.
2023-02-04rustdoc: trait bound formattingRoland Strasser-22/+65
rustdoc: fix item-spacer rustdoc: use proper comment style rustdoc: change formatting where clauses for traits rustdoc: remove semicolon from provided methods update provided methods formatting
2023-02-04consolidate bootstrap docsozkanonur-248/+38
Signed-off-by: ozkanonur <work@onurozkan.dev>