|
4 | 4 | //! def-path. This is used for unit testing the code that generates
|
5 | 5 | //! paths etc in all kinds of annoying scenarios.
|
6 | 6 |
|
| 7 | +use crate::errors::{AltInvalidTraitItem, InvalidDefPath, InvalidSymbolName, InvalidTraitItem}; |
7 | 8 | use rustc_hir::def_id::LocalDefId;
|
8 | 9 | use rustc_middle::ty::print::with_no_trimmed_paths;
|
9 | 10 | use rustc_middle::ty::{subst::InternalSubsts, Instance, TyCtxt};
|
@@ -59,16 +60,27 @@ impl SymbolNamesTest<'_> {
|
59 | 60 | tcx.erase_regions(InternalSubsts::identity_for_item(tcx, def_id)),
|
60 | 61 | );
|
61 | 62 | let mangled = tcx.symbol_name(instance);
|
62 |
| - tcx.sess.span_err(attr.span, &format!("symbol-name({})", mangled)); |
| 63 | + tcx.sess.emit_err(InvalidSymbolName { |
| 64 | + span: attr.span, |
| 65 | + mangled_formatted: format!("{mangled}"), |
| 66 | + }); |
63 | 67 | if let Ok(demangling) = rustc_demangle::try_demangle(mangled.name) {
|
64 |
| - tcx.sess.span_err(attr.span, &format!("demangling({})", demangling)); |
65 |
| - tcx.sess.span_err(attr.span, &format!("demangling-alt({:#})", demangling)); |
| 68 | + tcx.sess.emit_err(InvalidTraitItem { |
| 69 | + span: attr.span, |
| 70 | + demangling_formatted: format!("{demangling}"), |
| 71 | + }); |
| 72 | + tcx.sess.emit_err(AltInvalidTraitItem { |
| 73 | + span: attr.span, |
| 74 | + alt_demangling_formatted: format!("{:#}", demangling), |
| 75 | + }); |
66 | 76 | }
|
67 | 77 | }
|
68 | 78 |
|
69 | 79 | for attr in tcx.get_attrs(def_id.to_def_id(), DEF_PATH) {
|
70 |
| - let path = with_no_trimmed_paths!(tcx.def_path_str(def_id.to_def_id())); |
71 |
| - tcx.sess.span_err(attr.span, &format!("def-path({})", path)); |
| 80 | + tcx.sess.emit_err(InvalidDefPath { |
| 81 | + span: attr.span, |
| 82 | + def_path: with_no_trimmed_paths!(tcx.def_path_str(def_id.to_def_id())), |
| 83 | + }); |
72 | 84 | }
|
73 | 85 | }
|
74 | 86 | }
|
0 commit comments