Skip to main content

rustc_dump_def_parents

Attribute rustc_dump_def_parents 

Source
Expand description

Dumps the parents of the annotated item and of any anonymous constants contained within it.

See also opt_parent.

See AttributeKind::RustcDumpDefParents for the internal representation of this attribute.

§Example

//@ dont-require-annotations: ERROR
//@ compile-flags: --crate-type lib -Z ui-testing=no

#![feature(rustc_attrs)]

fn parent() {
    #[rustc_dump_def_parents]
    fn child() {}
}

struct Struct<const N: usize>;

const CONST: Struct<42> = Struct::<
    {
        #[rustc_dump_def_parents]
        fn baby() {}

        42
    },
>;

produces:

error: rustc_dump_def_parents: DefId(0:4 ~ rustc_dump_def_parents[9c2e]::parent::child)
 --> $DIR/rustc_dump_def_parents.rs:8:5
  |
8 |     fn child() {}
  |     ^^^^^^^^^^
  |
note: DefId(0:3 ~ rustc_dump_def_parents[9c2e]::parent)
 --> $DIR/rustc_dump_def_parents.rs:6:1
  |
6 | fn parent() {
  | ^^^^^^^^^^^
note: DefId(0:0 ~ rustc_dump_def_parents[9c2e])
 --> $DIR/rustc_dump_def_parents.rs:4:1
  |
4 | / #![feature(rustc_attrs)]
5 | |
6 | | fn parent() {
7 | |     #[rustc_dump_def_parents]
...  |
19 | |     },
20 | | >;
  | |__^

error: rustc_dump_def_parents: DefId(0:11 ~ rustc_dump_def_parents[9c2e]::CONST::{constant#1}::baby)
 --> $DIR/rustc_dump_def_parents.rs:16:9
  |
16 |         fn baby() {}
  |         ^^^^^^^^^
  |
note: DefId(0:10 ~ rustc_dump_def_parents[9c2e]::CONST::{constant#1})
 --> $DIR/rustc_dump_def_parents.rs:14:5
  |
14 | /     {
15 | |         #[rustc_dump_def_parents]
16 | |         fn baby() {}
...  |
19 | |     },
  | |_____^
note: DefId(0:8 ~ rustc_dump_def_parents[9c2e]::CONST)
 --> $DIR/rustc_dump_def_parents.rs:13:1
  |
13 | const CONST: Struct<42> = Struct::<
  | ^^^^^^^^^^^^^^^^^^^^^^^
note: DefId(0:0 ~ rustc_dump_def_parents[9c2e])
 --> $DIR/rustc_dump_def_parents.rs:4:1
  |
4 | / #![feature(rustc_attrs)]
5 | |
6 | | fn parent() {
7 | |     #[rustc_dump_def_parents]
...  |
19 | |     },
20 | | >;
  | |__^

error: aborting due to 2 previous errors