1
Fork 0

Auto merge of #94477 - matthiaskrgr:rollup-8h29qek, r=matthiaskrgr

Rollup of 3 pull requests

Successful merges:

 - #94359 (Fix inconsistent symbol mangling of integers constants with -Zverbose)
 - #94465 (6 - Make more use of `let_chains`)
 - #94470 (⬆️ rust-analyzer)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
This commit is contained in:
bors 2022-03-01 11:24:10 +00:00
commit f0c4da4998
17 changed files with 1435 additions and 220 deletions

View file

@ -116,9 +116,8 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
// it is usually better to focus on `the_value` rather // it is usually better to focus on `the_value` rather
// than the entirety of block(s) surrounding it. // than the entirety of block(s) surrounding it.
let adjusted_span = (|| { let adjusted_span = (|| {
if let ExprKind::Block { body } = &expr.kind { if let ExprKind::Block { body } = &expr.kind && let Some(tail_ex) = body.expr {
if let Some(tail_expr) = body.expr { let mut expr = &this.thir[tail_ex];
let mut expr = &this.thir[tail_expr];
while let ExprKind::Block { while let ExprKind::Block {
body: Block { expr: Some(nested_expr), .. }, body: Block { expr: Some(nested_expr), .. },
} }
@ -132,7 +131,6 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
}); });
return Some(expr.span); return Some(expr.span);
} }
}
None None
})(); })();

View file

@ -1597,14 +1597,12 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
} }
// Insert a Shallow borrow of any places that is switched on. // Insert a Shallow borrow of any places that is switched on.
if let Some(fb) = fake_borrows { if let Some(fb) = fake_borrows && let Ok(match_place_resolved) =
if let Ok(match_place_resolved) =
match_place.clone().try_upvars_resolved(self.tcx, self.typeck_results) match_place.clone().try_upvars_resolved(self.tcx, self.typeck_results)
{ {
let resolved_place = match_place_resolved.into_place(self.tcx, self.typeck_results); let resolved_place = match_place_resolved.into_place(self.tcx, self.typeck_results);
fb.insert(resolved_place); fb.insert(resolved_place);
} }
}
// perform the test, branching to one of N blocks. For each of // perform the test, branching to one of N blocks. For each of
// those N possible outcomes, create a (initially empty) // those N possible outcomes, create a (initially empty)

View file

@ -877,8 +877,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
let arg_local = self.local_decls.push(LocalDecl::with_source_info(ty, source_info)); let arg_local = self.local_decls.push(LocalDecl::with_source_info(ty, source_info));
// If this is a simple binding pattern, give debuginfo a nice name. // If this is a simple binding pattern, give debuginfo a nice name.
if let Some(arg) = arg_opt { if let Some(arg) = arg_opt && let Some(ident) = arg.pat.simple_ident() {
if let Some(ident) = arg.pat.simple_ident() {
self.var_debug_info.push(VarDebugInfo { self.var_debug_info.push(VarDebugInfo {
name: ident.name, name: ident.name,
source_info, source_info,
@ -886,7 +885,6 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
}); });
} }
} }
}
let tcx = self.tcx; let tcx = self.tcx;
let tcx_hir = tcx.hir(); let tcx_hir = tcx.hir();

View file

@ -416,8 +416,7 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for UnsafetyVisitor<'a, 'tcx> {
} }
ExprKind::Field { lhs, .. } => { ExprKind::Field { lhs, .. } => {
let lhs = &self.thir[lhs]; let lhs = &self.thir[lhs];
if let ty::Adt(adt_def, _) = lhs.ty.kind() { if let ty::Adt(adt_def, _) = lhs.ty.kind() && adt_def.is_union() {
if adt_def.is_union() {
if let Some((assigned_ty, assignment_span)) = self.assignment_info { if let Some((assigned_ty, assignment_span)) = self.assignment_info {
// To avoid semver hazard, we only consider `Copy` and `ManuallyDrop` non-dropping. // To avoid semver hazard, we only consider `Copy` and `ManuallyDrop` non-dropping.
if !(assigned_ty if !(assigned_ty
@ -435,7 +434,6 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for UnsafetyVisitor<'a, 'tcx> {
} }
} }
} }
}
ExprKind::Assign { lhs, rhs } | ExprKind::AssignOp { lhs, rhs, .. } => { ExprKind::Assign { lhs, rhs } | ExprKind::AssignOp { lhs, rhs, .. } => {
let lhs = &self.thir[lhs]; let lhs = &self.thir[lhs];
// First, check whether we are mutating a layout constrained field // First, check whether we are mutating a layout constrained field
@ -476,12 +474,10 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for UnsafetyVisitor<'a, 'tcx> {
} }
ExprKind::Let { expr: expr_id, .. } => { ExprKind::Let { expr: expr_id, .. } => {
let let_expr = &self.thir[expr_id]; let let_expr = &self.thir[expr_id];
if let ty::Adt(adt_def, _) = let_expr.ty.kind() { if let ty::Adt(adt_def, _) = let_expr.ty.kind() && adt_def.is_union() {
if adt_def.is_union() {
self.requires_unsafe(expr.span, AccessToUnionField); self.requires_unsafe(expr.span, AccessToUnionField);
} }
} }
}
_ => {} _ => {}
} }
visit::walk_expr(self, expr); visit::walk_expr(self, expr);

View file

@ -1,15 +1,16 @@
//! Construction of MIR from HIR. //! Construction of MIR from HIR.
//! //!
//! This crate also contains the match exhaustiveness and usefulness checking. //! This crate also contains the match exhaustiveness and usefulness checking.
#![allow(rustc::potential_query_instability)]
#![feature(bool_to_option)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(control_flow_enum)] #![feature(control_flow_enum)]
#![feature(crate_visibility_modifier)] #![feature(crate_visibility_modifier)]
#![feature(bool_to_option)] #![feature(let_chains)]
#![feature(let_else)] #![feature(let_else)]
#![feature(once_cell)]
#![feature(min_specialization)] #![feature(min_specialization)]
#![feature(once_cell)]
#![recursion_limit = "256"] #![recursion_limit = "256"]
#![allow(rustc::potential_query_instability)]
#[macro_use] #[macro_use]
extern crate tracing; extern crate tracing;

View file

@ -315,13 +315,12 @@ fn check_for_bindings_named_same_as_variants(
rf: RefutableFlag, rf: RefutableFlag,
) { ) {
pat.walk_always(|p| { pat.walk_always(|p| {
if let hir::PatKind::Binding(_, _, ident, None) = p.kind { if let hir::PatKind::Binding(_, _, ident, None) = p.kind
if let Some(ty::BindByValue(hir::Mutability::Not)) = && let Some(ty::BindByValue(hir::Mutability::Not)) =
cx.typeck_results.extract_binding_mode(cx.tcx.sess, p.hir_id, p.span) cx.typeck_results.extract_binding_mode(cx.tcx.sess, p.hir_id, p.span)
{ && let pat_ty = cx.typeck_results.pat_ty(p).peel_refs()
let pat_ty = cx.typeck_results.pat_ty(p).peel_refs(); && let ty::Adt(edef, _) = pat_ty.kind()
if let ty::Adt(edef, _) = pat_ty.kind() { && edef.is_enum()
if edef.is_enum()
&& edef.variants.iter().any(|variant| { && edef.variants.iter().any(|variant| {
variant.ident(cx.tcx) == ident && variant.ctor_kind == CtorKind::Const variant.ident(cx.tcx) == ident && variant.ctor_kind == CtorKind::Const
}) })
@ -354,9 +353,6 @@ fn check_for_bindings_named_same_as_variants(
}, },
) )
} }
}
}
}
}); });
} }
@ -622,11 +618,9 @@ fn maybe_point_at_variant<'a, 'p: 'a, 'tcx: 'a>(
let mut covered = vec![]; let mut covered = vec![];
for pattern in patterns { for pattern in patterns {
if let Variant(variant_index) = pattern.ctor() { if let Variant(variant_index) = pattern.ctor() {
if let ty::Adt(this_def, _) = pattern.ty().kind() { if let ty::Adt(this_def, _) = pattern.ty().kind() && this_def.did != def.did {
if this_def.did != def.did {
continue; continue;
} }
}
let sp = def.variants[*variant_index].ident(cx.tcx).span; let sp = def.variants[*variant_index].ident(cx.tcx).span;
if covered.contains(&sp) { if covered.contains(&sp) {
// Don't point at variants that have already been covered due to other patterns to avoid // Don't point at variants that have already been covered due to other patterns to avoid

View file

@ -680,8 +680,7 @@ impl<'tcx> Constructor<'tcx> {
/// ///
/// This means that the variant has a stdlib unstable feature marking it. /// This means that the variant has a stdlib unstable feature marking it.
pub(super) fn is_unstable_variant(&self, pcx: PatCtxt<'_, '_, 'tcx>) -> bool { pub(super) fn is_unstable_variant(&self, pcx: PatCtxt<'_, '_, 'tcx>) -> bool {
if let Constructor::Variant(idx) = self { if let Constructor::Variant(idx) = self && let ty::Adt(adt, _) = pcx.ty.kind() {
if let ty::Adt(adt, _) = pcx.ty.kind() {
let variant_def_id = adt.variants[*idx].def_id; let variant_def_id = adt.variants[*idx].def_id;
// Filter variants that depend on a disabled unstable feature. // Filter variants that depend on a disabled unstable feature.
return matches!( return matches!(
@ -689,19 +688,16 @@ impl<'tcx> Constructor<'tcx> {
EvalResult::Deny { .. } EvalResult::Deny { .. }
); );
} }
}
false false
} }
/// Checks if the `Constructor` is a `Constructor::Variant` with a `#[doc(hidden)]` /// Checks if the `Constructor` is a `Constructor::Variant` with a `#[doc(hidden)]`
/// attribute. /// attribute.
pub(super) fn is_doc_hidden_variant(&self, pcx: PatCtxt<'_, '_, 'tcx>) -> bool { pub(super) fn is_doc_hidden_variant(&self, pcx: PatCtxt<'_, '_, 'tcx>) -> bool {
if let Constructor::Variant(idx) = self { if let Constructor::Variant(idx) = self && let ty::Adt(adt, _) = pcx.ty.kind() {
if let ty::Adt(adt, _) = pcx.ty.kind() {
let variant_def_id = adt.variants[*idx].def_id; let variant_def_id = adt.variants[*idx].def_id;
return pcx.cx.tcx.is_doc_hidden(variant_def_id); return pcx.cx.tcx.is_doc_hidden(variant_def_id);
} }
}
false false
} }

View file

@ -790,8 +790,7 @@ crate fn compare_const_vals<'tcx>(
}; };
} }
if let ty::Str = ty.kind() { if let ty::Str = ty.kind() && let (
if let (
ty::ConstKind::Value(a_val @ ConstValue::Slice { .. }), ty::ConstKind::Value(a_val @ ConstValue::Slice { .. }),
ty::ConstKind::Value(b_val @ ConstValue::Slice { .. }), ty::ConstKind::Value(b_val @ ConstValue::Slice { .. }),
) = (a.val(), b.val()) ) = (a.val(), b.val())
@ -800,6 +799,5 @@ crate fn compare_const_vals<'tcx>(
let b_bytes = get_slice_bytes(&tcx, b_val); let b_bytes = get_slice_bytes(&tcx, b_val);
return from_bool(a_bytes == b_bytes); return from_bool(a_bytes == b_bytes);
} }
}
fallback() fallback()
} }

View file

@ -216,7 +216,7 @@ impl<'tcx> Printer<'tcx> for &mut SymbolPrinter<'tcx> {
Ok(self) Ok(self)
} }
fn print_type(self, ty: Ty<'tcx>) -> Result<Self::Type, Self::Error> { fn print_type(mut self, ty: Ty<'tcx>) -> Result<Self::Type, Self::Error> {
match *ty.kind() { match *ty.kind() {
// Print all nominal types as paths (unlike `pretty_print_type`). // Print all nominal types as paths (unlike `pretty_print_type`).
ty::FnDef(def_id, substs) ty::FnDef(def_id, substs)
@ -224,6 +224,24 @@ impl<'tcx> Printer<'tcx> for &mut SymbolPrinter<'tcx> {
| ty::Projection(ty::ProjectionTy { item_def_id: def_id, substs }) | ty::Projection(ty::ProjectionTy { item_def_id: def_id, substs })
| ty::Closure(def_id, substs) | ty::Closure(def_id, substs)
| ty::Generator(def_id, substs, _) => self.print_def_path(def_id, substs), | ty::Generator(def_id, substs, _) => self.print_def_path(def_id, substs),
// The `pretty_print_type` formatting of array size depends on
// -Zverbose flag, so we cannot reuse it here.
ty::Array(ty, size) => {
self.write_str("[")?;
self = self.print_type(ty)?;
self.write_str("; ")?;
if let Some(size) = size.val().try_to_bits(self.tcx().data_layout.pointer_size) {
write!(self, "{}", size)?
} else if let ty::ConstKind::Param(param) = size.val() {
self = param.print(self)?
} else {
self.write_str("_")?
}
self.write_str("]")?;
Ok(self)
}
_ => self.pretty_print_type(ty), _ => self.pretty_print_type(ty),
} }
} }
@ -245,12 +263,22 @@ impl<'tcx> Printer<'tcx> for &mut SymbolPrinter<'tcx> {
fn print_const(self, ct: ty::Const<'tcx>) -> Result<Self::Const, Self::Error> { fn print_const(self, ct: ty::Const<'tcx>) -> Result<Self::Const, Self::Error> {
// only print integers // only print integers
if let ty::ConstKind::Value(ConstValue::Scalar(Scalar::Int { .. })) = ct.val() { match (ct.val(), ct.ty().kind()) {
if ct.ty().is_integral() { (
return self.pretty_print_const(ct, true); ty::ConstKind::Value(ConstValue::Scalar(Scalar::Int(scalar))),
ty::Int(_) | ty::Uint(_),
) => {
// The `pretty_print_const` formatting depends on -Zverbose
// flag, so we cannot reuse it here.
let signed = matches!(ct.ty().kind(), ty::Int(_));
write!(
self,
"{:#?}",
ty::ConstInt::new(scalar, signed, ct.ty().is_ptr_sized_integral())
)?;
} }
_ => self.write_str("_")?,
} }
self.write_str("_")?;
Ok(self) Ok(self)
} }

View file

@ -0,0 +1,74 @@
error: symbol-name(_ZN1c21Unsigned$LT$11_u8$GT$1f17h[HASH]E)
--> $DIR/const-generics-demangling.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(c::Unsigned<11_u8>::f::h[HASH])
--> $DIR/const-generics-demangling.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(c::Unsigned<11_u8>::f)
--> $DIR/const-generics-demangling.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1c22Signed$LT$.152_i16$GT$1f17h[HASH]E)
--> $DIR/const-generics-demangling.rs:26:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(c::Signed<.152_i16>::f::h[HASH])
--> $DIR/const-generics-demangling.rs:26:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(c::Signed<.152_i16>::f)
--> $DIR/const-generics-demangling.rs:26:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1c13Bool$LT$_$GT$1f17h[HASH]E)
--> $DIR/const-generics-demangling.rs:39:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(c::Bool<_>::f::h[HASH])
--> $DIR/const-generics-demangling.rs:39:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(c::Bool<_>::f)
--> $DIR/const-generics-demangling.rs:39:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1c13Char$LT$_$GT$1f17h[HASH]E)
--> $DIR/const-generics-demangling.rs:52:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(c::Char<_>::f::h[HASH])
--> $DIR/const-generics-demangling.rs:52:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(c::Char<_>::f)
--> $DIR/const-generics-demangling.rs:52:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: aborting due to 12 previous errors

View file

@ -1,38 +1,62 @@
// build-fail // build-fail
// compile-flags: -C symbol-mangling-version=v0 --crate-name=c // revisions: legacy v0
// normalize-stderr-test: "c\[.*?\]" -> "c[HASH]" // compile-flags: --crate-name=c
//[legacy]compile-flags: -C symbol-mangling-version=legacy -Z unstable-options
// [v0]compile-flags: -C symbol-mangling-version=v0
//[legacy]normalize-stderr-test: "h[[:xdigit:]]{16}" -> "h[HASH]"
// [v0]normalize-stderr-test: "c\[.*?\]" -> "c[HASH]"
#![feature(rustc_attrs)] #![feature(rustc_attrs)]
pub struct Unsigned<const F: u8>; pub struct Unsigned<const F: u8>;
#[rustc_symbol_name] impl Unsigned<11> {
//~^ ERROR symbol-name(_RMCs #[rustc_symbol_name]
//~| ERROR demangling(<c[ //[v0]~^ ERROR symbol-name(_RNvMCs
//~| ERROR demangling-alt(<c::Unsigned<11>>) //[v0]~| ERROR demangling(<c[
impl Unsigned<11> {} //[v0]~| ERROR demangling-alt(<c::Unsigned<11>>::f)
//[legacy]~^^^^ ERROR symbol-name(_ZN1c21Unsigned$LT$11_u8$GT$
//[legacy]~| ERROR demangling(c::Unsigned<11_u8>::f::
//[legacy]~| ERROR demangling-alt(c::Unsigned<11_u8>::f)
fn f() {}
}
pub struct Signed<const F: i16>; pub struct Signed<const F: i16>;
#[rustc_symbol_name] impl Signed<-152> {
//~^ ERROR symbol-name(_RMs_Cs #[rustc_symbol_name]
//~| ERROR demangling(<c[ //[v0]~^ ERROR symbol-name(_RNvMs_Cs
//~| ERROR demangling-alt(<c::Signed<-152>>) //[v0]~| ERROR demangling(<c[
impl Signed<-152> {} //[v0]~| ERROR demangling-alt(<c::Signed<-152>>::f)
//[legacy]~^^^^ ERROR symbol-name(_ZN1c22Signed$LT$.152_i16$GT$
//[legacy]~| ERROR demangling(c::Signed<.152_i16>::f::
//[legacy]~| ERROR demangling-alt(c::Signed<.152_i16>::f)
fn f() {}
}
pub struct Bool<const F: bool>; pub struct Bool<const F: bool>;
#[rustc_symbol_name] impl Bool<true> {
//~^ ERROR symbol-name(_RMs0_Cs #[rustc_symbol_name]
//~| ERROR demangling(<c[ //[v0]~^ ERROR symbol-name(_RNvMs0_Cs
//~| ERROR demangling-alt(<c::Bool<true>>) //[v0]~| ERROR demangling(<c[
impl Bool<true> {} //[v0]~| ERROR demangling-alt(<c::Bool<true>>::f)
//[legacy]~^^^^ ERROR symbol-name(_ZN1c13Bool$LT$_$GT$
//[legacy]~| ERROR demangling(c::Bool<_>::f::
//[legacy]~| ERROR demangling-alt(c::Bool<_>::f)
fn f() {}
}
pub struct Char<const F: char>; pub struct Char<const F: char>;
#[rustc_symbol_name] impl Char<'∂'> {
//~^ ERROR symbol-name(_RMs1_Cs #[rustc_symbol_name]
//~| ERROR demangling(<c[ //[v0]~^ ERROR symbol-name(_RNvMs1_Cs
//~| ERROR demangling-alt(<c::Char<'∂'>>) //[v0]~| ERROR demangling(<c[
impl Char<'∂'> {} //[v0]~| ERROR demangling-alt(<c::Char<'∂'>>::f)
//[legacy]~^^^^ ERROR symbol-name(_ZN1c13Char$LT$_$GT$
//[legacy]~| ERROR demangling(c::Char<_>::f::
//[legacy]~| ERROR demangling-alt(c::Char<_>::f)
fn f() {}
}
fn main() {} fn main() {}

View file

@ -1,74 +0,0 @@
error: symbol-name(_RMCsCRATE_HASH_1cINtB<REF>_8UnsignedKhb_E)
--> $DIR/const-generics-demangling.rs:8:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<c[HASH]::Unsigned<11u8>>)
--> $DIR/const-generics-demangling.rs:8:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<c::Unsigned<11>>)
--> $DIR/const-generics-demangling.rs:8:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_RMs_CsCRATE_HASH_1cINtB<REF>_6SignedKsn98_E)
--> $DIR/const-generics-demangling.rs:16:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<c[HASH]::Signed<-152i16>>)
--> $DIR/const-generics-demangling.rs:16:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<c::Signed<-152>>)
--> $DIR/const-generics-demangling.rs:16:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_RMs0_CsCRATE_HASH_1cINtB<REF>_4BoolKb1_E)
--> $DIR/const-generics-demangling.rs:24:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<c[HASH]::Bool<true>>)
--> $DIR/const-generics-demangling.rs:24:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<c::Bool<true>>)
--> $DIR/const-generics-demangling.rs:24:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_RMs1_CsCRATE_HASH_1cINtB<REF>_4CharKc2202_E)
--> $DIR/const-generics-demangling.rs:32:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<c[HASH]::Char<'∂'>>)
--> $DIR/const-generics-demangling.rs:32:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<c::Char<'∂'>>)
--> $DIR/const-generics-demangling.rs:32:1
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: aborting due to 12 previous errors

View file

@ -0,0 +1,74 @@
error: symbol-name(_RNvMCsCRATE_HASH_1cINtB<REF>_8UnsignedKhb_E1f)
--> $DIR/const-generics-demangling.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<c[HASH]::Unsigned<11u8>>::f)
--> $DIR/const-generics-demangling.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<c::Unsigned<11>>::f)
--> $DIR/const-generics-demangling.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_RNvMs_CsCRATE_HASH_1cINtB<REF>_6SignedKsn98_E1f)
--> $DIR/const-generics-demangling.rs:26:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<c[HASH]::Signed<-152i16>>::f)
--> $DIR/const-generics-demangling.rs:26:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<c::Signed<-152>>::f)
--> $DIR/const-generics-demangling.rs:26:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_RNvMs0_CsCRATE_HASH_1cINtB<REF>_4BoolKb1_E1f)
--> $DIR/const-generics-demangling.rs:39:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<c[HASH]::Bool<true>>::f)
--> $DIR/const-generics-demangling.rs:39:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<c::Bool<true>>::f)
--> $DIR/const-generics-demangling.rs:39:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_RNvMs1_CsCRATE_HASH_1cINtB<REF>_4CharKc2202_E1f)
--> $DIR/const-generics-demangling.rs:52:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<c[HASH]::Char<'∂'>>::f)
--> $DIR/const-generics-demangling.rs:52:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<c::Char<'∂'>>::f)
--> $DIR/const-generics-demangling.rs:52:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: aborting due to 12 previous errors

View file

@ -0,0 +1,470 @@
error: symbol-name(_ZN1a1b16Type$LT$bool$GT$17h[HASH]E)
--> $DIR/types.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<bool>::h[HASH])
--> $DIR/types.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<bool>)
--> $DIR/types.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b16Type$LT$char$GT$17h[HASH]E)
--> $DIR/types.rs:19:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<char>::h[HASH])
--> $DIR/types.rs:19:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<char>)
--> $DIR/types.rs:19:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b14Type$LT$i8$GT$17h[HASH]E)
--> $DIR/types.rs:25:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<i8>::h[HASH])
--> $DIR/types.rs:25:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<i8>)
--> $DIR/types.rs:25:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$i16$GT$17h[HASH]E)
--> $DIR/types.rs:31:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<i16>::h[HASH])
--> $DIR/types.rs:31:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<i16>)
--> $DIR/types.rs:31:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$i32$GT$17h[HASH]E)
--> $DIR/types.rs:37:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<i32>::h[HASH])
--> $DIR/types.rs:37:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<i32>)
--> $DIR/types.rs:37:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$i64$GT$17h[HASH]E)
--> $DIR/types.rs:43:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<i64>::h[HASH])
--> $DIR/types.rs:43:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<i64>)
--> $DIR/types.rs:43:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b14Type$LT$u8$GT$17h[HASH]E)
--> $DIR/types.rs:49:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<u8>::h[HASH])
--> $DIR/types.rs:49:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<u8>)
--> $DIR/types.rs:49:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$u16$GT$17h[HASH]E)
--> $DIR/types.rs:55:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<u16>::h[HASH])
--> $DIR/types.rs:55:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<u16>)
--> $DIR/types.rs:55:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$u32$GT$17h[HASH]E)
--> $DIR/types.rs:61:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<u32>::h[HASH])
--> $DIR/types.rs:61:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<u32>)
--> $DIR/types.rs:61:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$u64$GT$17h[HASH]E)
--> $DIR/types.rs:67:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<u64>::h[HASH])
--> $DIR/types.rs:67:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<u64>)
--> $DIR/types.rs:67:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$f32$GT$17h[HASH]E)
--> $DIR/types.rs:73:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<f32>::h[HASH])
--> $DIR/types.rs:73:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<f32>)
--> $DIR/types.rs:73:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$f64$GT$17h[HASH]E)
--> $DIR/types.rs:79:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<f64>::h[HASH])
--> $DIR/types.rs:79:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<f64>)
--> $DIR/types.rs:79:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$str$GT$17h[HASH]E)
--> $DIR/types.rs:85:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<str>::h[HASH])
--> $DIR/types.rs:85:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<str>)
--> $DIR/types.rs:85:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b17Type$LT$$u21$$GT$17h[HASH]E)
--> $DIR/types.rs:91:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<!>::h[HASH])
--> $DIR/types.rs:91:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<!>)
--> $DIR/types.rs:91:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:97:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<()>::h[HASH])
--> $DIR/types.rs:97:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<()>)
--> $DIR/types.rs:97:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b25Type$LT$$LP$u8$C$$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:103:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<(u8,)>::h[HASH])
--> $DIR/types.rs:103:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<(u8,)>)
--> $DIR/types.rs:103:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b28Type$LT$$LP$u8$C$u16$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:109:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<(u8,u16)>::h[HASH])
--> $DIR/types.rs:109:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<(u8,u16)>)
--> $DIR/types.rs:109:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b34Type$LT$$LP$u8$C$u16$C$u32$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:115:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<(u8,u16,u32)>::h[HASH])
--> $DIR/types.rs:115:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<(u8,u16,u32)>)
--> $DIR/types.rs:115:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b28Type$LT$$BP$const$u20$u8$GT$17h[HASH]E)
--> $DIR/types.rs:121:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<*const u8>::h[HASH])
--> $DIR/types.rs:121:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<*const u8>)
--> $DIR/types.rs:121:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b26Type$LT$$BP$mut$u20$u8$GT$17h[HASH]E)
--> $DIR/types.rs:127:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<*mut u8>::h[HASH])
--> $DIR/types.rs:127:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<*mut u8>)
--> $DIR/types.rs:127:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$17h[HASH]E)
--> $DIR/types.rs:133:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<&str>::h[HASH])
--> $DIR/types.rs:133:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<&str>)
--> $DIR/types.rs:133:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b27Type$LT$$RF$mut$u20$str$GT$17h[HASH]E)
--> $DIR/types.rs:139:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<&mut str>::h[HASH])
--> $DIR/types.rs:139:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<&mut str>)
--> $DIR/types.rs:139:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b35Type$LT$$u5b$u8$u3b$$u20$0$u5d$$GT$17h[HASH]E)
--> $DIR/types.rs:145:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<[u8; 0]>::h[HASH])
--> $DIR/types.rs:145:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<[u8; 0]>)
--> $DIR/types.rs:145:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b22Type$LT$fn$LP$$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:151:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<fn()>::h[HASH])
--> $DIR/types.rs:151:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<fn()>)
--> $DIR/types.rs:151:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b60Type$LT$unsafe$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:157:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<unsafe extern "C" fn()>::h[HASH])
--> $DIR/types.rs:157:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<unsafe extern "C" fn()>)
--> $DIR/types.rs:157:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b34Type$LT$$u5b$T$u3b$$u20$N$u5d$$GT$17h[HASH]E)
--> $DIR/types.rs:163:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<[T; N]>::h[HASH])
--> $DIR/types.rs:163:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<[T; N]>)
--> $DIR/types.rs:163:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: aborting due to 78 previous errors

View file

@ -0,0 +1,170 @@
// build-fail
// revisions: legacy verbose-legacy
// compile-flags: --crate-name=a -C symbol-mangling-version=legacy -Z unstable-options
//[verbose-legacy]compile-flags: -Zverbose
// normalize-stderr-test: "h[[:xdigit:]]{16}" -> "h[HASH]"
#![feature(never_type)]
#![feature(rustc_attrs)]
pub fn b() {
struct Type<T: ?Sized>(T);
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b16Type$LT$bool$GT$
//~| ERROR demangling(a::b::Type<bool>::
//~| ERROR demangling-alt(a::b::Type<bool>)
impl Type<bool> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b16Type$LT$char$GT$
//~| ERROR demangling(a::b::Type<char>::
//~| ERROR demangling-alt(a::b::Type<char>)
impl Type<char> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b14Type$LT$i8$GT$
//~| ERROR demangling(a::b::Type<i8>::
//~| ERROR demangling-alt(a::b::Type<i8>)
impl Type<i8> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$i16$GT$
//~| ERROR demangling(a::b::Type<i16>::
//~| ERROR demangling-alt(a::b::Type<i16>)
impl Type<i16> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$i32$GT$
//~| ERROR demangling(a::b::Type<i32>::
//~| ERROR demangling-alt(a::b::Type<i32>)
impl Type<i32> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$i64$GT$
//~| ERROR demangling(a::b::Type<i64>::
//~| ERROR demangling-alt(a::b::Type<i64>)
impl Type<i64> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b14Type$LT$u8$GT$
//~| ERROR demangling(a::b::Type<u8>::
//~| ERROR demangling-alt(a::b::Type<u8>)
impl Type<u8> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$u16$GT$
//~| ERROR demangling(a::b::Type<u16>::
//~| ERROR demangling-alt(a::b::Type<u16>)
impl Type<u16> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$u32$GT$
//~| ERROR demangling(a::b::Type<u32>::
//~| ERROR demangling-alt(a::b::Type<u32>)
impl Type<u32> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$u64$GT$
//~| ERROR demangling(a::b::Type<u64>::
//~| ERROR demangling-alt(a::b::Type<u64>)
impl Type<u64> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$f32$GT$
//~| ERROR demangling(a::b::Type<f32>::
//~| ERROR demangling-alt(a::b::Type<f32>)
impl Type<f32> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$f64$GT$
//~| ERROR demangling(a::b::Type<f64>::
//~| ERROR demangling-alt(a::b::Type<f64>)
impl Type<f64> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$str$GT$
//~| ERROR demangling(a::b::Type<str>::
//~| ERROR demangling-alt(a::b::Type<str>)
impl Type<str> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b17Type$LT$$u21$$GT$
//~| ERROR demangling(a::b::Type<!>::
//~| ERROR demangling-alt(a::b::Type<!>)
impl Type<!> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT
//~| ERROR demangling(a::b::Type<()>::
//~| ERROR demangling-alt(a::b::Type<()>)
impl Type<()> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b25Type$LT$$LP$u8$C$$RP$$GT$
//~| ERROR demangling(a::b::Type<(u8,)>::
//~| ERROR demangling-alt(a::b::Type<(u8,)>)
impl Type<(u8,)> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b28Type$LT$$LP$u8$C$u16$RP$$GT$
//~| ERROR demangling(a::b::Type<(u8,u16)>::
//~| ERROR demangling-alt(a::b::Type<(u8,u16)>)
impl Type<(u8,u16)> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b34Type$LT$$LP$u8$C$u16$C$u32$RP$$GT$
//~| ERROR demangling(a::b::Type<(u8,u16,u32)>::
//~| ERROR demangling-alt(a::b::Type<(u8,u16,u32)>)
impl Type<(u8,u16,u32)> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b28Type$LT$$BP$const$u20$u8$GT$
//~| ERROR demangling(a::b::Type<*const u8>::
//~| ERROR demangling-alt(a::b::Type<*const u8>)
impl Type<*const u8> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b26Type$LT$$BP$mut$u20$u8$GT$
//~| ERROR demangling(a::b::Type<*mut u8>::
//~| ERROR demangling-alt(a::b::Type<*mut u8>)
impl Type<*mut u8> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$
//~| ERROR demangling(a::b::Type<&str>::
//~| ERROR demangling-alt(a::b::Type<&str>)
impl Type<&str> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b27Type$LT$$RF$mut$u20$str$GT$
//~| ERROR demangling(a::b::Type<&mut str>::
//~| ERROR demangling-alt(a::b::Type<&mut str>)
impl Type<&mut str> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b35Type$LT$$u5b$u8$u3b$$u20$0$u5d$$GT$
//~| ERROR demangling(a::b::Type<[u8; 0]>::
//~| ERROR demangling-alt(a::b::Type<[u8; 0]>)
impl Type<[u8; 0]> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b22Type$LT$fn$LP$$RP$$GT$
//~| ERROR demangling(a::b::Type<fn()>::
//~| ERROR demangling-alt(a::b::Type<fn()>)
impl Type<fn()> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b60Type$LT$unsafe$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RP$$GT$
//~| ERROR demangling(a::b::Type<unsafe extern "C" fn()>::
//~| ERROR demangling-alt(a::b::Type<unsafe extern "C" fn()>)
impl Type<unsafe extern "C" fn()> {}
#[rustc_symbol_name]
//~^ ERROR symbol-name(_ZN1a1b34Type$LT$$u5b$T$u3b$$u20$N$u5d$$GT$
//~| ERROR demangling(a::b::Type<[T; N]>::
//~| ERROR demangling-alt(a::b::Type<[T; N]>)
impl<const N: usize, T> Type<[T; N]> {}
}
fn main() {}

View file

@ -0,0 +1,470 @@
error: symbol-name(_ZN1a1b16Type$LT$bool$GT$17h[HASH]E)
--> $DIR/types.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<bool>::h[HASH])
--> $DIR/types.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<bool>)
--> $DIR/types.rs:13:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b16Type$LT$char$GT$17h[HASH]E)
--> $DIR/types.rs:19:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<char>::h[HASH])
--> $DIR/types.rs:19:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<char>)
--> $DIR/types.rs:19:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b14Type$LT$i8$GT$17h[HASH]E)
--> $DIR/types.rs:25:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<i8>::h[HASH])
--> $DIR/types.rs:25:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<i8>)
--> $DIR/types.rs:25:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$i16$GT$17h[HASH]E)
--> $DIR/types.rs:31:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<i16>::h[HASH])
--> $DIR/types.rs:31:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<i16>)
--> $DIR/types.rs:31:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$i32$GT$17h[HASH]E)
--> $DIR/types.rs:37:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<i32>::h[HASH])
--> $DIR/types.rs:37:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<i32>)
--> $DIR/types.rs:37:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$i64$GT$17h[HASH]E)
--> $DIR/types.rs:43:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<i64>::h[HASH])
--> $DIR/types.rs:43:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<i64>)
--> $DIR/types.rs:43:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b14Type$LT$u8$GT$17h[HASH]E)
--> $DIR/types.rs:49:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<u8>::h[HASH])
--> $DIR/types.rs:49:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<u8>)
--> $DIR/types.rs:49:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$u16$GT$17h[HASH]E)
--> $DIR/types.rs:55:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<u16>::h[HASH])
--> $DIR/types.rs:55:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<u16>)
--> $DIR/types.rs:55:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$u32$GT$17h[HASH]E)
--> $DIR/types.rs:61:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<u32>::h[HASH])
--> $DIR/types.rs:61:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<u32>)
--> $DIR/types.rs:61:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$u64$GT$17h[HASH]E)
--> $DIR/types.rs:67:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<u64>::h[HASH])
--> $DIR/types.rs:67:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<u64>)
--> $DIR/types.rs:67:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$f32$GT$17h[HASH]E)
--> $DIR/types.rs:73:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<f32>::h[HASH])
--> $DIR/types.rs:73:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<f32>)
--> $DIR/types.rs:73:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$f64$GT$17h[HASH]E)
--> $DIR/types.rs:79:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<f64>::h[HASH])
--> $DIR/types.rs:79:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<f64>)
--> $DIR/types.rs:79:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b15Type$LT$str$GT$17h[HASH]E)
--> $DIR/types.rs:85:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<str>::h[HASH])
--> $DIR/types.rs:85:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<str>)
--> $DIR/types.rs:85:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b17Type$LT$$u21$$GT$17h[HASH]E)
--> $DIR/types.rs:91:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<!>::h[HASH])
--> $DIR/types.rs:91:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<!>)
--> $DIR/types.rs:91:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:97:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<()>::h[HASH])
--> $DIR/types.rs:97:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<()>)
--> $DIR/types.rs:97:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b25Type$LT$$LP$u8$C$$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:103:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<(u8,)>::h[HASH])
--> $DIR/types.rs:103:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<(u8,)>)
--> $DIR/types.rs:103:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b28Type$LT$$LP$u8$C$u16$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:109:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<(u8,u16)>::h[HASH])
--> $DIR/types.rs:109:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<(u8,u16)>)
--> $DIR/types.rs:109:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b34Type$LT$$LP$u8$C$u16$C$u32$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:115:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<(u8,u16,u32)>::h[HASH])
--> $DIR/types.rs:115:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<(u8,u16,u32)>)
--> $DIR/types.rs:115:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b28Type$LT$$BP$const$u20$u8$GT$17h[HASH]E)
--> $DIR/types.rs:121:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<*const u8>::h[HASH])
--> $DIR/types.rs:121:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<*const u8>)
--> $DIR/types.rs:121:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b26Type$LT$$BP$mut$u20$u8$GT$17h[HASH]E)
--> $DIR/types.rs:127:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<*mut u8>::h[HASH])
--> $DIR/types.rs:127:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<*mut u8>)
--> $DIR/types.rs:127:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$17h[HASH]E)
--> $DIR/types.rs:133:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<&str>::h[HASH])
--> $DIR/types.rs:133:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<&str>)
--> $DIR/types.rs:133:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b27Type$LT$$RF$mut$u20$str$GT$17h[HASH]E)
--> $DIR/types.rs:139:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<&mut str>::h[HASH])
--> $DIR/types.rs:139:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<&mut str>)
--> $DIR/types.rs:139:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b35Type$LT$$u5b$u8$u3b$$u20$0$u5d$$GT$17h[HASH]E)
--> $DIR/types.rs:145:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<[u8; 0]>::h[HASH])
--> $DIR/types.rs:145:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<[u8; 0]>)
--> $DIR/types.rs:145:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b22Type$LT$fn$LP$$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:151:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<fn()>::h[HASH])
--> $DIR/types.rs:151:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<fn()>)
--> $DIR/types.rs:151:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b60Type$LT$unsafe$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RP$$GT$17h[HASH]E)
--> $DIR/types.rs:157:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<unsafe extern "C" fn()>::h[HASH])
--> $DIR/types.rs:157:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<unsafe extern "C" fn()>)
--> $DIR/types.rs:157:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN1a1b34Type$LT$$u5b$T$u3b$$u20$N$u5d$$GT$17h[HASH]E)
--> $DIR/types.rs:163:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(a::b::Type<[T; N]>::h[HASH])
--> $DIR/types.rs:163:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(a::b::Type<[T; N]>)
--> $DIR/types.rs:163:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: aborting due to 78 previous errors

@ -1 +1 @@
Subproject commit d6ed146a1caa41c65a831efbc80d79067c8f5955 Subproject commit 4e72700e38421a12993fe5fa5c33d712652bc6c8