Auto merge of #138114 - compiler-errors:rollup-7xr4b69, r=compiler-errors
Rollup of 25 pull requests Successful merges: - #135733 (Implement `&pin const self` and `&pin mut self` sugars) - #135895 (Document workings of successors more clearly) - #136922 (Pattern types: Avoid having to handle an Option for range ends in the type system or the HIR) - #137303 (Remove `MaybeForgetReturn` suggestion) - #137327 (Undeprecate env::home_dir) - #137358 (Match Ergonomics 2024: add context and examples to the unstable book) - #137534 ([rustdoc] hide item that is not marked as doc(inline) and whose src is doc(hidden)) - #137565 (Try to point of macro expansion from resolver and method errors if it involves macro var) - #137637 (Check dyn flavor before registering upcast goal on wide pointer cast in MIR typeck) - #137643 (Add DWARF test case for non-C-like `repr128` enums) - #137744 (Re-add `Clone`-derive on `Thir`) - #137758 (fix usage of ty decl macro fragments in attributes) - #137764 (Ensure that negative auto impls are always applicable) - #137772 (Fix char count in `Display` for `ByteStr`) - #137798 (ci: use ubuntu 24 on arm large runner) - #137802 (miri native-call support: all previously exposed provenance is accessible to the callee) - #137805 (adjust Layout debug printing to match the internal field name) - #137808 (Do not require that unsafe fields lack drop glue) - #137820 (Clarify why InhabitedPredicate::instantiate_opt exists) - #137825 (Provide more context on resolve error caused from incorrect RTN) - #137834 (rustc_fluent_macro: use CARGO_CRATE_NAME instead of CARGO_PKG_NAME) - #137868 (Add minimal platform support documentation for powerpc-unknown-linux-gnuspe) - #137910 (Improve error message for `AsyncFn` trait failure for RPIT) - #137920 (interpret/provenance_map: consistently use range_is_empty) - #138038 (Update `compiler-builtins` to 0.1.151) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
98a48781fe
169 changed files with 2261 additions and 1107 deletions
|
@ -1173,6 +1173,8 @@ pub enum DesugaringKind {
|
|||
BoundModifier,
|
||||
/// Calls to contract checks (`#[requires]` to precond, `#[ensures]` to postcond)
|
||||
Contract,
|
||||
/// A pattern type range start/end
|
||||
PatTyRange,
|
||||
}
|
||||
|
||||
impl DesugaringKind {
|
||||
|
@ -1190,6 +1192,7 @@ impl DesugaringKind {
|
|||
DesugaringKind::WhileLoop => "`while` loop",
|
||||
DesugaringKind::BoundModifier => "trait bound modifier",
|
||||
DesugaringKind::Contract => "contract check",
|
||||
DesugaringKind::PatTyRange => "pattern type",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1057,6 +1057,37 @@ impl Span {
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns the `Span` within the syntax context of "within". This is useful when
|
||||
/// "self" is an expansion from a macro variable, since this can be used for
|
||||
/// providing extra macro expansion context for certain errors.
|
||||
///
|
||||
/// ```text
|
||||
/// macro_rules! m {
|
||||
/// ($ident:ident) => { ($ident,) }
|
||||
/// }
|
||||
///
|
||||
/// m!(outer_ident);
|
||||
/// ```
|
||||
///
|
||||
/// If "self" is the span of the outer_ident, and "within" is the span of the `($ident,)`
|
||||
/// expr, then this will return the span of the `$ident` macro variable.
|
||||
pub fn within_macro(self, within: Span, sm: &SourceMap) -> Option<Span> {
|
||||
match Span::prepare_to_combine(self, within) {
|
||||
// Only return something if it doesn't overlap with the original span,
|
||||
// and the span isn't "imported" (i.e. from unavailable sources).
|
||||
// FIXME: This does limit the usefulness of the error when the macro is
|
||||
// from a foreign crate; we could also take into account `-Zmacro-backtrace`,
|
||||
// which doesn't redact this span (but that would mean passing in even more
|
||||
// args to this function, lol).
|
||||
Ok((self_, _, parent))
|
||||
if self_.hi < self.lo() || self.hi() < self_.lo && !sm.is_imported(within) =>
|
||||
{
|
||||
Some(Span::new(self_.lo, self_.hi, self_.ctxt, parent))
|
||||
}
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn from_inner(self, inner: InnerSpan) -> Span {
|
||||
let span = self.data();
|
||||
Span::new(
|
||||
|
|
|
@ -308,6 +308,9 @@ symbols! {
|
|||
RangeFull,
|
||||
RangeInclusive,
|
||||
RangeInclusiveCopy,
|
||||
RangeMax,
|
||||
RangeMin,
|
||||
RangeSub,
|
||||
RangeTo,
|
||||
RangeToInclusive,
|
||||
Rc,
|
||||
|
@ -1522,6 +1525,7 @@ symbols! {
|
|||
pattern_complexity_limit,
|
||||
pattern_parentheses,
|
||||
pattern_type,
|
||||
pattern_type_range_trait,
|
||||
pattern_types,
|
||||
permissions_from_mode,
|
||||
phantom_data,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue