Skip to content

Commit 64b6b5b

Browse files
committed
hir: Simplify hir_owner_nodes query
The query accept arbitrary DefIds, not just owner DefIds. The return can be an `Option` because if there are no nodes, then it doesn't matter whether it's due to NonOwner or Phantom. Also rename the query to `opt_hir_owner_nodes`.
1 parent c401f09 commit 64b6b5b

40 files changed

+862
-867
lines changed

compiler/rustc_incremental/src/assert_dep_graph.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ impl<'tcx> IfThisChanged<'tcx> {
131131
None => DepNode::from_def_path_hash(
132132
self.tcx,
133133
def_path_hash,
134-
dep_kinds::hir_owner_nodes,
134+
dep_kinds::opt_hir_owner_nodes,
135135
),
136136
Some(n) => {
137137
match DepNode::from_label_string(self.tcx, n.as_str(), def_path_hash) {

compiler/rustc_incremental/src/persist/dirty_clean.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ const BASE_FN: &[&str] = &[
5757

5858
/// DepNodes for Hir, which is pretty much everything
5959
const BASE_HIR: &[&str] = &[
60-
// hir_owner_nodes should be computed for all nodes
61-
label_strs::hir_owner_nodes,
60+
// opt_hir_owner_nodes should be computed for all nodes
61+
label_strs::opt_hir_owner_nodes,
6262
];
6363

6464
/// `impl` implementation of struct/trait

compiler/rustc_middle/src/hir/map/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,12 @@ impl<'hir> Iterator for ParentOwnerIterator<'hir> {
135135
impl<'tcx> TyCtxt<'tcx> {
136136
#[inline]
137137
fn hir_owner(self, owner: OwnerId) -> Option<OwnerNode<'tcx>> {
138-
Some(self.hir_owner_nodes(owner).as_owner()?.node())
138+
Some(self.opt_hir_owner_nodes(owner.def_id)?.node())
139139
}
140140

141141
/// Retrieves the `hir::Node` corresponding to `id`, returning `None` if cannot be found.
142142
pub fn opt_hir_node(self, id: HirId) -> Option<Node<'tcx>> {
143-
let owner = self.hir_owner_nodes(id.owner).as_owner()?;
143+
let owner = self.opt_hir_owner_nodes(id.owner)?;
144144
let node = owner.nodes[id.local_id].as_ref()?;
145145
Some(node.node)
146146
}
@@ -213,7 +213,7 @@ impl<'hir> Map<'hir> {
213213
if id.local_id == ItemLocalId::from_u32(0) {
214214
Some(self.tcx.hir_owner_parent(id.owner))
215215
} else {
216-
let owner = self.tcx.hir_owner_nodes(id.owner).as_owner()?;
216+
let owner = self.tcx.opt_hir_owner_nodes(id.owner)?;
217217
let node = owner.nodes[id.local_id].as_ref()?;
218218
let hir_id = HirId { owner: id.owner, local_id: node.parent };
219219
// HIR indexing should have checked that.
@@ -266,7 +266,7 @@ impl<'hir> Map<'hir> {
266266
}
267267

268268
pub fn body(self, id: BodyId) -> &'hir Body<'hir> {
269-
self.tcx.hir_owner_nodes(id.hir_id.owner).unwrap().bodies[&id.hir_id.local_id]
269+
self.tcx.opt_hir_owner_nodes(id.hir_id.owner).unwrap().bodies[&id.hir_id.local_id]
270270
}
271271

272272
#[track_caller]

compiler/rustc_middle/src/hir/mod.rs

+2-7
Original file line numberDiff line numberDiff line change
@@ -135,13 +135,8 @@ pub fn provide(providers: &mut Providers) {
135135
MaybeOwner::NonOwner(hir_id) => hir_id,
136136
})
137137
};
138-
providers.hir_owner_nodes = |tcx, id| {
139-
if let Some(i) = tcx.hir_crate(()).owners.get(id.def_id) {
140-
i.map(|i| &i.nodes)
141-
} else {
142-
MaybeOwner::Phantom
143-
}
144-
};
138+
providers.opt_hir_owner_nodes =
139+
|tcx, id| tcx.hir_crate(()).owners.get(id)?.as_owner().map(|i| &i.nodes);
145140
providers.hir_owner_parent = |tcx, id| {
146141
// Accessing the local_parent is ok since its value is hashed as part of `id`'s DefPathHash.
147142
tcx.opt_local_parent(id.def_id).map_or(CRATE_HIR_ID, |parent| {

compiler/rustc_middle/src/query/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,11 @@ rustc_queries! {
190190
desc { |tcx| "getting HIR parent of `{}`", tcx.def_path_str(key) }
191191
}
192192

193-
/// Gives access to the HIR nodes and bodies inside the HIR owner `key`.
193+
/// Gives access to the HIR nodes and bodies inside `key` if it's a HIR owner.
194194
///
195195
/// This can be conveniently accessed by methods on `tcx.hir()`.
196196
/// Avoid calling this query directly.
197-
query hir_owner_nodes(key: hir::OwnerId) -> hir::MaybeOwner<&'tcx hir::OwnerNodes<'tcx>> {
197+
query opt_hir_owner_nodes(key: LocalDefId) -> Option<&'tcx hir::OwnerNodes<'tcx>> {
198198
desc { |tcx| "getting HIR owner items in `{}`", tcx.def_path_str(key) }
199199
}
200200

compiler/rustc_mir_transform/src/coverage/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ fn get_body_span<'tcx>(
452452
fn hash_mir_source<'tcx>(tcx: TyCtxt<'tcx>, hir_body: &'tcx rustc_hir::Body<'tcx>) -> u64 {
453453
// FIXME(cjgillot) Stop hashing HIR manually here.
454454
let owner = hir_body.id().hir_id.owner;
455-
tcx.hir_owner_nodes(owner)
455+
tcx.opt_hir_owner_nodes(owner)
456456
.unwrap()
457457
.opt_hash_including_bodies
458458
.unwrap()

src/tools/clippy/clippy_lints/src/min_ident_chars.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ impl Visitor<'_> for IdentVisitor<'_, '_> {
9393
// reimplement it even if we wanted to
9494
cx.tcx.opt_hir_node(hir_id)
9595
} else {
96-
let Some(owner) = cx.tcx.hir_owner_nodes(hir_id.owner).as_owner() else {
96+
let Some(owner) = cx.tcx.opt_hir_owner_nodes(hir_id.owner) else {
9797
return;
9898
};
9999
owner.nodes.get(hir_id.local_id).copied().flatten().map(|p| p.node)

tests/incremental/dirty_clean.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ mod y {
2626
use x;
2727

2828
#[rustc_clean(
29-
except="hir_owner_nodes,generics_of,predicates_of,type_of,fn_sig",
29+
except="opt_hir_owner_nodes,generics_of,predicates_of,type_of,fn_sig",
3030
cfg="cfail2",
3131
)]
3232
pub fn y() {
33-
//[cfail2]~^ ERROR `hir_owner_nodes(y)` should be dirty but is not
33+
//[cfail2]~^ ERROR `opt_hir_owner_nodes(y)` should be dirty but is not
3434
//[cfail2]~| ERROR `generics_of(y)` should be dirty but is not
3535
//[cfail2]~| ERROR `predicates_of(y)` should be dirty but is not
3636
//[cfail2]~| ERROR `type_of(y)` should be dirty but is not

tests/incremental/hash-module-order.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
#![feature(rustc_attrs)]
1313

1414
#[cfg(rpass1)]
15-
#[rustc_clean(cfg="rpass1",except="hir_owner_nodes")]
15+
#[rustc_clean(cfg="rpass1",except="opt_hir_owner_nodes")]
1616
mod foo {
1717
struct First;
1818
struct Second;
1919
}
2020

2121
#[cfg(rpass2)]
22-
#[rustc_clean(cfg="rpass2",except="hir_owner_nodes")]
22+
#[rustc_clean(cfg="rpass2",except="opt_hir_owner_nodes")]
2323
mod foo {
2424
struct Second;
2525
struct First;

tests/incremental/hashes/call_expressions.rs

+19-19
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ pub fn change_callee_function() {
2828
}
2929

3030
#[cfg(not(any(cfail1,cfail4)))]
31-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir,typeck")]
31+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,optimized_mir,typeck")]
3232
#[rustc_clean(cfg="cfail3")]
33-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir,typeck")]
33+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,optimized_mir,typeck")]
3434
#[rustc_clean(cfg="cfail6")]
3535
pub fn change_callee_function() {
3636
callee2(1, 2)
@@ -45,9 +45,9 @@ pub fn change_argument_function() {
4545
}
4646

4747
#[cfg(not(any(cfail1,cfail4)))]
48-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir")]
48+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,optimized_mir")]
4949
#[rustc_clean(cfg="cfail3")]
50-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir")]
50+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,optimized_mir")]
5151
#[rustc_clean(cfg="cfail6")]
5252
pub fn change_argument_function() {
5353
callee1(1, 3)
@@ -62,9 +62,9 @@ mod change_callee_indirectly_function {
6262
#[cfg(not(any(cfail1,cfail4)))]
6363
use super::callee2 as callee;
6464

65-
#[rustc_clean(except="hir_owner_nodes,typeck", cfg="cfail2")]
65+
#[rustc_clean(except="opt_hir_owner_nodes,typeck", cfg="cfail2")]
6666
#[rustc_clean(cfg="cfail3")]
67-
#[rustc_clean(except="hir_owner_nodes,typeck", cfg="cfail5")]
67+
#[rustc_clean(except="opt_hir_owner_nodes,typeck", cfg="cfail5")]
6868
#[rustc_clean(cfg="cfail6")]
6969
pub fn change_callee_indirectly_function() {
7070
callee(1, 2)
@@ -86,9 +86,9 @@ pub fn change_callee_method() {
8686
}
8787

8888
#[cfg(not(any(cfail1,cfail4)))]
89-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir,typeck")]
89+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,optimized_mir,typeck")]
9090
#[rustc_clean(cfg="cfail3")]
91-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir,typeck")]
91+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,optimized_mir,typeck")]
9292
#[rustc_clean(cfg="cfail6")]
9393
pub fn change_callee_method() {
9494
let s = Struct;
@@ -105,9 +105,9 @@ pub fn change_argument_method() {
105105
}
106106

107107
#[cfg(not(any(cfail1,cfail4)))]
108-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir")]
108+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,optimized_mir")]
109109
#[rustc_clean(cfg="cfail3")]
110-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir")]
110+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,optimized_mir")]
111111
#[rustc_clean(cfg="cfail6")]
112112
pub fn change_argument_method() {
113113
let s = Struct;
@@ -124,9 +124,9 @@ pub fn change_ufcs_callee_method() {
124124
}
125125

126126
#[cfg(not(any(cfail1,cfail4)))]
127-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir,typeck")]
127+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,optimized_mir,typeck")]
128128
#[rustc_clean(cfg="cfail3")]
129-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir,typeck")]
129+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,optimized_mir,typeck")]
130130
#[rustc_clean(cfg="cfail6")]
131131
pub fn change_ufcs_callee_method() {
132132
let s = Struct;
@@ -143,9 +143,9 @@ pub fn change_argument_method_ufcs() {
143143
}
144144

145145
#[cfg(not(any(cfail1,cfail4)))]
146-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir")]
146+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,optimized_mir")]
147147
#[rustc_clean(cfg="cfail3")]
148-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir")]
148+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,optimized_mir")]
149149
#[rustc_clean(cfg="cfail6")]
150150
pub fn change_argument_method_ufcs() {
151151
let s = Struct;
@@ -162,11 +162,11 @@ pub fn change_to_ufcs() {
162162
}
163163

164164
#[cfg(not(any(cfail1,cfail4)))]
165-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,typeck")]
165+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,typeck")]
166166
#[rustc_clean(cfg="cfail3")]
167-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir,typeck")]
167+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,optimized_mir,typeck")]
168168
#[rustc_clean(cfg="cfail6")]
169-
// One might think this would be expanded in the hir_owner_nodes/Mir, but it actually
169+
// One might think this would be expanded in the opt_hir_owner_nodes/Mir, but it actually
170170
// results in slightly different hir_owner/Mir.
171171
pub fn change_to_ufcs() {
172172
let s = Struct;
@@ -186,9 +186,9 @@ pub mod change_ufcs_callee_indirectly {
186186
#[cfg(not(any(cfail1,cfail4)))]
187187
use super::Struct2 as Struct;
188188

189-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir,typeck")]
189+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,optimized_mir,typeck")]
190190
#[rustc_clean(cfg="cfail3")]
191-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir,typeck")]
191+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,optimized_mir,typeck")]
192192
#[rustc_clean(cfg="cfail6")]
193193
pub fn change_ufcs_callee_indirectly() {
194194
let s = Struct;

tests/incremental/hashes/closure_expressions.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ pub fn change_closure_body() {
2424
}
2525

2626
#[cfg(not(any(cfail1,cfail4)))]
27-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes")]
27+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes")]
2828
#[rustc_clean(cfg="cfail3")]
29-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes")]
29+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes")]
3030
#[rustc_clean(cfg="cfail6")]
3131
pub fn change_closure_body() {
3232
let _ = || 3u32;
@@ -42,9 +42,9 @@ pub fn add_parameter() {
4242
}
4343

4444
#[cfg(not(any(cfail1,cfail4)))]
45-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes, typeck")]
45+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes, typeck")]
4646
#[rustc_clean(cfg="cfail3")]
47-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes, typeck")]
47+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes, typeck")]
4848
#[rustc_clean(cfg="cfail6")]
4949
pub fn add_parameter() {
5050
let x = 0u32;
@@ -60,9 +60,9 @@ pub fn change_parameter_pattern() {
6060
}
6161

6262
#[cfg(not(any(cfail1,cfail4)))]
63-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes, typeck")]
63+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes, typeck")]
6464
#[rustc_clean(cfg="cfail3")]
65-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes, typeck")]
65+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes, typeck")]
6666
#[rustc_clean(cfg="cfail6")]
6767
pub fn change_parameter_pattern() {
6868
let _ = |(x,): (u32,)| x;
@@ -77,9 +77,9 @@ pub fn add_move() {
7777
}
7878

7979
#[cfg(not(any(cfail1,cfail4)))]
80-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes")]
80+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes")]
8181
#[rustc_clean(cfg="cfail3")]
82-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes")]
82+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes")]
8383
#[rustc_clean(cfg="cfail6")]
8484
pub fn add_move() {
8585
let _ = move || 1;
@@ -95,9 +95,9 @@ pub fn add_type_ascription_to_parameter() {
9595
}
9696

9797
#[cfg(not(any(cfail1,cfail4)))]
98-
#[rustc_clean(cfg = "cfail2", except = "hir_owner_nodes, typeck")]
98+
#[rustc_clean(cfg = "cfail2", except = "opt_hir_owner_nodes, typeck")]
9999
#[rustc_clean(cfg = "cfail3")]
100-
#[rustc_clean(cfg = "cfail5", except = "hir_owner_nodes, typeck")]
100+
#[rustc_clean(cfg = "cfail5", except = "opt_hir_owner_nodes, typeck")]
101101
#[rustc_clean(cfg = "cfail6")]
102102
pub fn add_type_ascription_to_parameter() {
103103
let closure = |x: u32| x + 1u32;
@@ -114,9 +114,9 @@ pub fn change_parameter_type() {
114114
}
115115

116116
#[cfg(not(any(cfail1,cfail4)))]
117-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes, optimized_mir, typeck")]
117+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes, optimized_mir, typeck")]
118118
#[rustc_clean(cfg="cfail3")]
119-
#[rustc_clean(cfg="cfail5", except="hir_owner_nodes, optimized_mir, typeck")]
119+
#[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes, optimized_mir, typeck")]
120120
#[rustc_clean(cfg="cfail6")]
121121
pub fn change_parameter_type() {
122122
let closure = |x: u16| (x as u64) + 1;

tests/incremental/hashes/consts.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
const CONST_VISIBILITY: u8 = 0;
2020

2121
#[cfg(not(cfail1))]
22-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes")]
22+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes")]
2323
#[rustc_clean(cfg="cfail3")]
2424
pub const CONST_VISIBILITY: u8 = 0;
2525

@@ -29,7 +29,7 @@ pub const CONST_VISIBILITY: u8 = 0;
2929
const CONST_CHANGE_TYPE_1: i32 = 0;
3030

3131
#[cfg(not(cfail1))]
32-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,type_of")]
32+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,type_of")]
3333
#[rustc_clean(cfg="cfail3")]
3434
const CONST_CHANGE_TYPE_1: u32 = 0;
3535

@@ -39,13 +39,13 @@ const CONST_CHANGE_TYPE_1: u32 = 0;
3939
const CONST_CHANGE_TYPE_2: Option<u32> = None;
4040

4141
#[cfg(not(cfail1))]
42-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,type_of")]
42+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,type_of")]
4343
#[rustc_clean(cfg="cfail3")]
4444
const CONST_CHANGE_TYPE_2: Option<u64> = None;
4545

4646

4747
// Change value between simple literals
48-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes")]
48+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes")]
4949
#[rustc_clean(cfg="cfail3")]
5050
const CONST_CHANGE_VALUE_1: i16 = {
5151
#[cfg(cfail1)]
@@ -57,7 +57,7 @@ const CONST_CHANGE_VALUE_1: i16 = {
5757

5858

5959
// Change value between expressions
60-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes")]
60+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes")]
6161
#[rustc_clean(cfg="cfail3")]
6262
const CONST_CHANGE_VALUE_2: i16 = {
6363
#[cfg(cfail1)]
@@ -67,7 +67,7 @@ const CONST_CHANGE_VALUE_2: i16 = {
6767
{ 1 + 2 }
6868
};
6969

70-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes")]
70+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes")]
7171
#[rustc_clean(cfg="cfail3")]
7272
const CONST_CHANGE_VALUE_3: i16 = {
7373
#[cfg(cfail1)]
@@ -77,7 +77,7 @@ const CONST_CHANGE_VALUE_3: i16 = {
7777
{ 2 * 3 }
7878
};
7979

80-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes")]
80+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes")]
8181
#[rustc_clean(cfg="cfail3")]
8282
const CONST_CHANGE_VALUE_4: i16 = {
8383
#[cfg(cfail1)]
@@ -99,11 +99,11 @@ mod const_change_type_indirectly {
9999
#[cfg(not(cfail1))]
100100
use super::ReferencedType2 as Type;
101101

102-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,type_of")]
102+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,type_of")]
103103
#[rustc_clean(cfg="cfail3")]
104104
const CONST_CHANGE_TYPE_INDIRECTLY_1: Type = Type;
105105

106-
#[rustc_clean(cfg="cfail2", except="hir_owner_nodes,type_of")]
106+
#[rustc_clean(cfg="cfail2", except="opt_hir_owner_nodes,type_of")]
107107
#[rustc_clean(cfg="cfail3")]
108108
const CONST_CHANGE_TYPE_INDIRECTLY_2: Option<Type> = None;
109109
}

0 commit comments

Comments
 (0)