summaryrefslogtreecommitdiffstats
path: root/src/test/ui/consts/const_constructor/const-construct-call.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/consts/const_constructor/const-construct-call.rs')
-rw-r--r--src/test/ui/consts/const_constructor/const-construct-call.rs110
1 files changed, 0 insertions, 110 deletions
diff --git a/src/test/ui/consts/const_constructor/const-construct-call.rs b/src/test/ui/consts/const_constructor/const-construct-call.rs
deleted file mode 100644
index cb735d7b3..000000000
--- a/src/test/ui/consts/const_constructor/const-construct-call.rs
+++ /dev/null
@@ -1,110 +0,0 @@
-// Test that constructors are considered to be const fns
-
-// run-pass
-
-// Ctor(..) is transformed to Ctor { 0: ... } in THIR lowering, so directly
-// calling constructors doesn't require them to be const.
-
-type ExternalType = std::panic::AssertUnwindSafe<(Option<i32>, Result<i32, bool>)>;
-
-const fn call_external_constructors_in_local_vars() -> ExternalType {
- let f = Some;
- let g = Err;
- let h = std::panic::AssertUnwindSafe;
- let x = f(5);
- let y = g(false);
- let z = h((x, y));
- z
-}
-
-const CALL_EXTERNAL_CONSTRUCTORS_IN_LOCAL_VARS: ExternalType = {
- let f = Some;
- let g = Err;
- let h = std::panic::AssertUnwindSafe;
- let x = f(5);
- let y = g(false);
- let z = h((x, y));
- z
-};
-
-const fn call_external_constructors_in_temps() -> ExternalType {
- let x = { Some }(5);
- let y = (*&Err)(false);
- let z = [std::panic::AssertUnwindSafe][0]((x, y));
- z
-}
-
-const CALL_EXTERNAL_CONSTRUCTORS_IN_TEMPS: ExternalType = {
- let x = { Some }(5);
- let y = (*&Err)(false);
- let z = [std::panic::AssertUnwindSafe][0]((x, y));
- z
-};
-
-#[derive(Debug, PartialEq)]
-enum LocalOption<T> {
- Some(T),
- _None,
-}
-
-#[derive(Debug, PartialEq)]
-enum LocalResult<T, E> {
- _Ok(T),
- Err(E),
-}
-
-#[derive(Debug, PartialEq)]
-struct LocalAssertUnwindSafe<T>(T);
-
-type LocalType = LocalAssertUnwindSafe<(LocalOption<i32>, LocalResult<i32, bool>)>;
-
-const fn call_local_constructors_in_local_vars() -> LocalType {
- let f = LocalOption::Some;
- let g = LocalResult::Err;
- let h = LocalAssertUnwindSafe;
- let x = f(5);
- let y = g(false);
- let z = h((x, y));
- z
-}
-
-const CALL_LOCAL_CONSTRUCTORS_IN_LOCAL_VARS: LocalType = {
- let f = LocalOption::Some;
- let g = LocalResult::Err;
- let h = LocalAssertUnwindSafe;
- let x = f(5);
- let y = g(false);
- let z = h((x, y));
- z
-};
-
-const fn call_local_constructors_in_temps() -> LocalType {
- let x = { LocalOption::Some }(5);
- let y = (*&LocalResult::Err)(false);
- let z = [LocalAssertUnwindSafe][0]((x, y));
- z
-}
-
-const CALL_LOCAL_CONSTRUCTORS_IN_TEMPS: LocalType = {
- let x = { LocalOption::Some }(5);
- let y = (*&LocalResult::Err)(false);
- let z = [LocalAssertUnwindSafe][0]((x, y));
- z
-};
-
-fn main() {
- assert_eq!(
- (
- call_external_constructors_in_local_vars().0,
- call_external_constructors_in_temps().0,
- call_local_constructors_in_local_vars(),
- call_local_constructors_in_temps(),
- ),
- (
- CALL_EXTERNAL_CONSTRUCTORS_IN_LOCAL_VARS.0,
- CALL_EXTERNAL_CONSTRUCTORS_IN_TEMPS.0,
- CALL_LOCAL_CONSTRUCTORS_IN_LOCAL_VARS,
- CALL_LOCAL_CONSTRUCTORS_IN_TEMPS,
- )
- );
-}