| //! Test that `#![no_core]` doesn't break modern Rust syntax in edition 2018. |
| //! |
| //! When you use `#![no_core]`, you lose the automatic prelude, but you can still |
| //! get everything back by manually importing `use core::{prelude::v1::*, *}`. |
| //! This test makes sure that after doing that, things like `for` loops and the |
| //! `?` operator still work as expected. |
| |
| //@ run-pass |
| //@ edition:2018 |
| |
| #![allow(dead_code, unused_imports)] |
| #![feature(no_core)] |
| #![no_core] |
| |
| extern crate core; |
| extern crate std; |
| use core::prelude::v1::*; |
| use core::*; |
| |
| fn test_for_loop() { |
| for _ in &[()] {} |
| } |
| |
| fn test_question_mark_operator() -> Option<()> { |
| None? |
| } |
| |
| fn main() {} |