Skip to content

Commit 9767050

Browse files
authored
Merge pull request #21935 from ChayimFriedman2/array-elem-cfg
fix: Support cfg-ing array elements
2 parents 6c7412a + 8b38679 commit 9767050

2 files changed

Lines changed: 30 additions & 1 deletion

File tree

crates/hir-def/src/expr_store/lower.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1465,7 +1465,15 @@ impl<'db> ExprCollector<'db> {
14651465

14661466
match kind {
14671467
ArrayExprKind::ElementList(e) => {
1468-
let elements = e.map(|expr| self.collect_expr(expr)).collect();
1468+
let elements = e
1469+
.filter_map(|expr| {
1470+
if self.check_cfg(&expr) {
1471+
Some(self.collect_expr(expr))
1472+
} else {
1473+
None
1474+
}
1475+
})
1476+
.collect();
14691477
self.alloc_expr(Expr::Array(Array::ElementList { elements }), syntax_ptr)
14701478
}
14711479
ArrayExprKind::Repeat { initializer, repeat } => {

crates/hir-def/src/expr_store/tests/body.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,3 +660,24 @@ async fn main(&self, param1: i32, ref mut param2: i32, _: i32, param4 @ _: i32,
660660
}"#]],
661661
)
662662
}
663+
664+
#[test]
665+
fn array_element_cfg() {
666+
pretty_print(
667+
r#"
668+
fn foo() {
669+
[
670+
(),
671+
#[cfg(false)]
672+
()
673+
];
674+
}
675+
"#,
676+
expect![[r#"
677+
fn foo() {
678+
[
679+
(),
680+
];
681+
}"#]],
682+
);
683+
}

0 commit comments

Comments
 (0)