diff --git a/ices/93688.sh b/ices/93688.sh new file mode 100755 index 00000000..0947a1cd --- /dev/null +++ b/ices/93688.sh @@ -0,0 +1,36 @@ +rustc -Zmir-opt-level=3 --emit=mir -Zdump-mir=all - 2>&1 << EOF + +// run-pass + +#![allow(dead_code, unused_imports)] +#![feature(no_core)] +#![no_core] +// edition:2018 + +extern crate std; +extern crate core; +use core::{prelude::v1::*, *}; + +fn foo() { + for _ in &[()] {} +} + +fn bar() -> Option<()> { + None? +} + +fn main() {} + + +fn bar2() -> Option<()> { + None? +} + +fn bar3() { + match Option::>::None { + Some(v) => {} + None => {} + } +} + +EOF diff --git a/ices/93760.rs b/ices/93760.rs new file mode 100644 index 00000000..98d5a7f0 --- /dev/null +++ b/ices/93760.rs @@ -0,0 +1,5 @@ +extern "C" { + static FOO: [usize; usize::MAX]; +} + +pub fn main() {} diff --git a/ices/93775.rs b/ices/93775.rs new file mode 100644 index 00000000..e8bb9cc8 --- /dev/null +++ b/ices/93775.rs @@ -0,0 +1,24 @@ +#![recursion_limit = "1000"] + +use std::marker::PhantomData; + +struct Z; +struct S(PhantomData); + +type Nested = S>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; + +trait AsNum { + const NUM: u32; +} + +impl AsNum for Z { + const NUM: u32 = 0; +} + +impl AsNum for S { + const NUM: u32 = T::NUM + 1; +} + +fn main() { + println!("{}", Nested::NUM); +} diff --git a/ices/93788.rs b/ices/93788.rs new file mode 100644 index 00000000..8286ce49 --- /dev/null +++ b/ices/93788.rs @@ -0,0 +1,25 @@ +struct D; + +trait Tr { + type It; + fn foo(self) -> Option; +} + +impl<'a> Tr for &'a D { + type It = (); + fn foo(self) -> Option<()> { None } +} + +fn run(f: F) + where for<'a> &'a D: Tr, + F: Fn(<&D as Tr>::It), +{ + let d = &D; + while let Some(i) = d.foo() { + f(i); + } +} + +fn main() { + run(|_| {}); +} diff --git a/ices/93835.rs b/ices/93835.rs new file mode 100644 index 00000000..36a328df --- /dev/null +++ b/ices/93835.rs @@ -0,0 +1,3 @@ +fn e() { + p:a> +}