Skip to content

Commit c286ad9

Browse files
Add test
1 parent b8a92c1 commit c286ad9

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// known-bug: #103507
2+
// failure-status: 101
3+
// normalize-stderr-test "note: .*\n\n" -> ""
4+
// normalize-stderr-test "thread 'rustc' panicked.*\n" -> ""
5+
// rustc-env:RUST_BACKTRACE=0
6+
7+
#![feature(type_alias_impl_trait)]
8+
#![feature(const_trait_impl)]
9+
#![feature(const_refs_to_cell)]
10+
#![feature(inline_const)]
11+
12+
use std::marker::Destruct;
13+
14+
trait T {
15+
type Item;
16+
}
17+
18+
type Alias<'a> = impl T<Item = &'a ()>;
19+
20+
struct S;
21+
impl<'a> T for &'a S {
22+
type Item = &'a ();
23+
}
24+
25+
const fn filter_positive<'a>() -> &'a Alias<'a> {
26+
&&S
27+
}
28+
29+
const fn with_positive<F: ~const for<'a> Fn(&'a Alias<'a>) + ~const Destruct>(fun: F) {
30+
fun(filter_positive());
31+
}
32+
33+
const fn foo(_: &Alias<'_>) {}
34+
35+
const BAR: () = {
36+
with_positive(foo);
37+
};
38+
39+
fn main() {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
error: internal compiler error: compiler/rustc_middle/src/ty/normalize_erasing_regions.rs:198:90: Failed to normalize <for<'a, 'b> fn(&'a Alias<'b>) {foo} as std::ops::FnOnce<(&&S,)>>::Output, maybe try to call `try_normalize_erasing_regions` instead
2+
3+
query stack during panic:
4+
#0 [eval_to_allocation_raw] const-evaluating + checking `BAR`
5+
#1 [eval_to_const_value_raw] simplifying constant for the type system `BAR`
6+
end of query stack
7+
error: aborting due to previous error
8+

0 commit comments

Comments
 (0)