Matthias Krüger
33e9f25e91
Rollup merge of #127092 - compiler-errors:rtn-dots-redux, r=estebank
...
Change return-type-notation to use `(..)`
Aligns the syntax with the current wording of [RFC 3654](https://github.com/rust-lang/rfcs/pull/3654 ). Also implements rustfmt support (along with making a match exhaustive).
Tracking:
* https://github.com/rust-lang/rust/issues/109417
2024-07-03 23:30:07 +02:00
Michael Goulet
82b4af7511
Make sure we deny unimplemented RTN on qpath segments
2024-06-28 14:20:44 -04:00
Michael Goulet
b1a0c0b123
Change RTN to use .. again
2024-06-28 14:20:43 -04:00
Deadbeef
72e8244e64
implement new effects desugaring
2024-06-28 10:57:35 +00:00
León Orell Valerian Liehr
34c56c45cf
Rename HIR TypeBinding
to AssocItemConstraint
and related cleanup
2024-05-30 22:52:33 +02:00
Nicholas Nethercote
6341935a13
Remove extern crate tracing
from numerous crates.
2024-04-30 16:47:49 +10:00
Michael Goulet
99df5a2b42
Simplify ImplTraitContext
2024-03-08 02:10:11 +00:00
Michael Goulet
cd21b1d036
No need to take ImplTraitContext by ref
2024-02-07 19:30:32 +00:00
Matthias Krüger
3731acc714
Rollup merge of #120609 - petrochenkov:nousestem2, r=compiler-errors
...
hir: Stop keeping prefixes for most of `use` list stems
And make sure all other imports have non-empty resolution lists.
Addresses one of FIXMEs in https://github.com/rust-lang/rust/pull/120206 .
2024-02-06 19:40:08 +01:00
Vadim Petrochenkov
f5d6eb30a8
hir: Stop keeping prefixes for most of use
list stems
...
And make sure all other imports have non-empty resolution lists.
2024-02-03 14:41:46 +03:00
Michael Goulet
3913c9a0ca
Error on incorrect item kind in async bound
2024-01-31 16:59:19 +00:00
Michael Goulet
0eb2adb7e8
Add async bound modifier to enable async Fn bounds
2024-01-31 16:59:19 +00:00
León Orell Valerian Liehr
3eb48a35c8
Introduce const Trait
(always-const trait bounds)
2023-12-27 12:51:32 +01:00
Nicholas Nethercote
99472c7049
Remove Session
methods that duplicate DiagCtxt
methods.
...
Also add some `dcx` methods to types that wrap `TyCtxt`, for easier
access.
2023-12-24 08:05:28 +11:00
bors
e004adb556
Auto merge of #119069 - matthiaskrgr:rollup-xxk4m30, r=matthiaskrgr
...
Rollup of 5 pull requests
Successful merges:
- #118852 (coverage: Skip instrumenting a function if no spans were extracted from MIR)
- #118905 ([AIX] Fix XCOFF metadata)
- #118967 (Add better ICE messages for some undescriptive panics)
- #119051 (Replace `FileAllocationInfo` with `FileEndOfFileInfo`)
- #119059 (Deny `~const` trait bounds in inherent impl headers)
r? `@ghost`
`@rustbot` modify labels: rollup
2023-12-18 08:03:22 +00:00
Nicholas Nethercote
09af8a667c
Rename Session::span_diagnostic
as Session::dcx
.
2023-12-18 16:06:21 +11:00
Ross Smyth
663bea5a96
Add better ICE messages for some undescriptive panics
2023-12-15 00:50:55 -05:00
Michael Goulet
a208bae00e
Support async gen fn
2023-12-08 17:23:26 +00:00
Eric Holk
50ef8006eb
Address code review feedback
2023-12-04 14:33:46 -08:00
Eric Holk
c104f3b629
Lower return types for gen fn to impl Iterator
2023-12-04 11:23:05 -08:00
Nicholas Nethercote
61f93563d8
Inline and remove LoweringContext::handler()
.
...
It has a single call site.
2023-12-02 09:01:35 +11:00
Nilstrieb
21a870515b
Fix clippy::needless_borrow
in the compiler
...
`x clippy compiler -Aclippy::all -Wclippy::needless_borrow --fix`.
Then I had to remove a few unnecessary parens and muts that were exposed
now.
2023-11-21 20:13:40 +01:00
Deadbeef
92f4c59e48
lower impl const to bind to host effect param
2023-08-06 13:34:53 +00:00
Nicholas Nethercote
6b62f37402
Restrict From<S>
for {D,Subd}iagnosticMessage
.
...
Currently a `{D,Subd}iagnosticMessage` can be created from any type that
impls `Into<String>`. That includes `&str`, `String`, and `Cow<'static,
str>`, which are reasonable. It also includes `&String`, which is pretty
weird, and results in many places making unnecessary allocations for
patterns like this:
```
self.fatal(&format!(...))
```
This creates a string with `format!`, takes a reference, passes the
reference to `fatal`, which does an `into()`, which clones the
reference, doing a second allocation. Two allocations for a single
string, bleh.
This commit changes the `From` impls so that you can only create a
`{D,Subd}iagnosticMessage` from `&str`, `String`, or `Cow<'static,
str>`. This requires changing all the places that currently create one
from a `&String`. Most of these are of the `&format!(...)` form
described above; each one removes an unnecessary static `&`, plus an
allocation when executed. There are also a few places where the existing
use of `&String` was more reasonable; these now just use `clone()` at
the call site.
As well as making the code nicer and more efficient, this is a step
towards possibly using `Cow<'static, str>` in
`{D,Subd}iagnosticMessage::{Str,Eager}`. That would require changing
the `From<&'a str>` impls to `From<&'static str>`, which is doable, but
I'm not yet sure if it's worthwhile.
2023-05-03 08:44:39 +10:00
Michael Goulet
24cbf81b85
Remove ..
from return type notation
2023-04-10 22:19:46 +00:00
Michael Goulet
8b592db27a
Add (..)
syntax for RTN
2023-03-28 01:14:28 +00:00
Michael Goulet
f50c1e1f05
ParenthesizedGenericArgs::{Ok -> ParenSugar}
2023-03-28 01:02:15 +00:00
Josh Stone
e9dd59131b
Add help for #![feature(impl_trait_in_fn_trait_return)]
...
This adds a new variant `ImplTraitContext::FeatureGated`, so we can
generalize the help for `return_position_impl_trait_in_trait` to also
work for `impl_trait_in_fn_trait_return`.
2022-12-06 17:53:50 -08:00
Vadim Petrochenkov
1f259ae679
rustc_hir: Change representation of import paths to support multiple resolutions
2022-12-01 18:51:05 +03:00
Camille GILLOT
1c737d6997
Use kw::Empty for elided lifetimes in path.
2022-11-24 17:48:59 +00:00
Maybe Waffle
b97ec3924d
rustc_ast_lowering
: remove ref
patterns
2022-11-22 18:49:29 +00:00
Nicholas Nethercote
6b7ca2fcf2
Box ExprKind::{Closure,MethodCall}
, and QSelf
in expressions, types, and patterns.
2022-11-17 13:45:59 +11:00
Maybe Waffle
e93982a78f
adopt to compiler changes
2022-10-25 13:47:43 +00:00
Maybe Waffle
cc752f5665
Feature gate impl_trait_in_fn_trait_return
2022-10-25 13:25:52 +00:00
Maybe Waffle
8b494f427c
Allow impl Fn() -> impl Trait
in return position
...
This allows writing the following function signatures:
```rust
fn f0() -> impl Fn() -> impl Trait;
fn f3() -> &'static dyn Fn() -> impl Trait;
```
These signatures were already allowed for common traits and associated
types, there is no reason why `Fn*` traits should be special in this
regard.
2022-10-25 13:25:51 +00:00
Vadim Petrochenkov
1a8f177772
rustc_hir: Less error-prone methods for accessing PartialRes
resolution
2022-10-11 09:04:52 +04:00
Santiago Pastorino
861055094c
Pass ImplTraitContext as &, there's no need for that to be &mut
2022-09-14 17:39:52 -03:00
Santiago Pastorino
2166a36245
Pass ImplTraitContext as &mut to avoid the need of ImplTraitContext::reborrow later on
2022-09-06 15:22:16 -03:00
bors
2dc703fd6e
Auto merge of #101228 - nnethercote:simplify-hir-PathSegment, r=petrochenkov
...
Simplify `hir::PathSegment`
r? `@petrochenkov`
2022-09-05 13:36:54 +00:00
Dylan DPC
5d55009b79
Rollup merge of #101142 - nnethercote:improve-hir-stats, r=davidtwco
...
Improve HIR stats
#100398 improve the AST stats collection done by `-Zhir-stats`. This PR does the same for HIR stats collection.
r? `@davidtwco`
2022-09-05 14:15:51 +05:30
Nicholas Nethercote
bb0ae3c446
Make hir::PathSegment::hir_id
non-optional.
2022-09-05 14:20:25 +10:00
Nicholas Nethercote
6d850d936b
Make hir::PathSegment::res
non-optional.
2022-09-05 14:20:25 +10:00
Oli Scherer
ee3c835018
Always import all tracing macros for the entire crate instead of piecemeal by module
2022-09-01 14:54:27 +00:00
Nicholas Nethercote
a847d5e4ce
Use &'hir Ty
everywhere.
...
For consistency, and because it makes HIR measurement simpler and more
accurate.
2022-08-29 06:35:14 +10:00
Jean CASPAR
73ae38bac1
Migrate ast_lowering::path to SessionDiagnostic
2022-08-22 19:19:58 +02:00
Camille GILLOT
8fc3deb1b4
Remove sess
field from LoweringContext.
2022-07-06 23:15:57 +02:00
Camille GILLOT
32af719b07
Always create parameters for functions-like types.
2022-06-21 21:13:41 +02:00
bors
3a8b0144c8
Auto merge of #98106 - cjgillot:split-definitions, r=michaelwoerister
...
Split up `Definitions` and `ResolverAstLowering`.
Split off https://github.com/rust-lang/rust/pull/95573
r? `@michaelwoerister`
2022-06-17 10:00:11 +00:00
EdwinRy
71a98e1a4e
Refactor path segment parameter error
2022-06-15 02:50:34 +01:00
Camille GILLOT
603746a35e
Make ResolverAstLowering a struct.
2022-06-14 22:44:27 +02:00