Merge remote-tracking branch 'origin/master' into gen
This commit is contained in:
commit
1413253a41
232 changed files with 5063 additions and 2000 deletions
|
|
@ -0,0 +1,27 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// gate-test-allow_internal_unsafe
|
||||
|
||||
#![allow(unused_macros)]
|
||||
|
||||
macro_rules! bar {
|
||||
() => {
|
||||
// more layers don't help:
|
||||
#[allow_internal_unsafe] //~ ERROR allow_internal_unsafe side-steps
|
||||
macro_rules! baz {
|
||||
() => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bar!();
|
||||
|
||||
fn main() {}
|
||||
12
src/test/compile-fail/feature-gate-doc_cfg.rs
Normal file
12
src/test/compile-fail/feature-gate-doc_cfg.rs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#[doc(cfg(unix))] //~ ERROR: #[doc(cfg(...))] is experimental
|
||||
fn main() {}
|
||||
25
src/test/compile-fail/issue-17954.rs
Normal file
25
src/test/compile-fail/issue-17954.rs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(thread_local)]
|
||||
|
||||
#[thread_local]
|
||||
static FOO: u8 = 3;
|
||||
|
||||
fn main() {
|
||||
let a = &FOO;
|
||||
//~^ ERROR borrowed value does not live long enough
|
||||
//~| does not live long enough
|
||||
//~| NOTE borrowed value must be valid for the static lifetime
|
||||
|
||||
std::thread::spawn(move || {
|
||||
println!("{}", a);
|
||||
});
|
||||
} //~ temporary value only lives until here
|
||||
23
src/test/compile-fail/issue-43250.rs
Normal file
23
src/test/compile-fail/issue-43250.rs
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
fn main() {
|
||||
let mut y;
|
||||
const C: u32 = 0;
|
||||
macro_rules! m {
|
||||
($a:expr) => {
|
||||
let $a = 0;
|
||||
}
|
||||
}
|
||||
m!(y);
|
||||
//~^ ERROR arbitrary expressions aren't allowed in patterns
|
||||
m!(C);
|
||||
//~^ ERROR arbitrary expressions aren't allowed in patterns
|
||||
}
|
||||
39
src/test/compile-fail/issue-43733-2.rs
Normal file
39
src/test/compile-fail/issue-43733-2.rs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(const_fn, drop_types_in_const)]
|
||||
#![feature(cfg_target_thread_local, thread_local_internals)]
|
||||
|
||||
// On platforms *without* `#[thread_local]`, use
|
||||
// a custom non-`Sync` type to fake the same error.
|
||||
#[cfg(not(target_thread_local))]
|
||||
struct Key<T> {
|
||||
_data: std::cell::UnsafeCell<Option<T>>,
|
||||
_flag: std::cell::Cell<bool>,
|
||||
}
|
||||
|
||||
#[cfg(not(target_thread_local))]
|
||||
impl<T> Key<T> {
|
||||
const fn new() -> Self {
|
||||
Key {
|
||||
_data: std::cell::UnsafeCell::new(None),
|
||||
_flag: std::cell::Cell::new(false),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_thread_local)]
|
||||
use std::thread::__FastLocalKeyInner as Key;
|
||||
|
||||
static __KEY: Key<()> = Key::new();
|
||||
//~^ ERROR `std::cell::UnsafeCell<std::option::Option<()>>: std::marker::Sync` is not satisfied
|
||||
//~| ERROR `std::cell::Cell<bool>: std::marker::Sync` is not satisfied
|
||||
|
||||
fn main() {}
|
||||
41
src/test/compile-fail/issue-43733.rs
Normal file
41
src/test/compile-fail/issue-43733.rs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(const_fn, drop_types_in_const)]
|
||||
#![feature(cfg_target_thread_local, thread_local_internals)]
|
||||
|
||||
type Foo = std::cell::RefCell<String>;
|
||||
|
||||
#[cfg(target_thread_local)]
|
||||
static __KEY: std::thread::__FastLocalKeyInner<Foo> =
|
||||
std::thread::__FastLocalKeyInner::new();
|
||||
|
||||
#[cfg(not(target_thread_local))]
|
||||
static __KEY: std::thread::__OsLocalKeyInner<Foo> =
|
||||
std::thread::__OsLocalKeyInner::new();
|
||||
|
||||
fn __getit() -> std::option::Option<
|
||||
&'static std::cell::UnsafeCell<
|
||||
std::option::Option<Foo>>>
|
||||
{
|
||||
__KEY.get() //~ ERROR invocation of unsafe method requires unsafe
|
||||
}
|
||||
|
||||
static FOO: std::thread::LocalKey<Foo> =
|
||||
std::thread::LocalKey::new(__getit, Default::default);
|
||||
//~^ ERROR call to unsafe function requires unsafe
|
||||
|
||||
fn main() {
|
||||
FOO.with(|foo| println!("{}", foo.borrow()));
|
||||
std::thread::spawn(|| {
|
||||
FOO.with(|foo| *foo.borrow_mut() += "foo");
|
||||
}).join().unwrap();
|
||||
FOO.with(|foo| println!("{}", foo.borrow()));
|
||||
}
|
||||
38
src/test/compile-fail/thread-local-in-ctfe.rs
Normal file
38
src/test/compile-fail/thread-local-in-ctfe.rs
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(const_fn, thread_local)]
|
||||
|
||||
#[thread_local]
|
||||
static A: u32 = 1;
|
||||
|
||||
static B: u32 = A;
|
||||
//~^ ERROR thread-local statics cannot be accessed at compile-time
|
||||
//~| ERROR cannot refer to other statics by value
|
||||
//~| WARN non-constant path in constant expression
|
||||
|
||||
static C: &u32 = &A;
|
||||
//~^ ERROR thread-local statics cannot be accessed at compile-time
|
||||
|
||||
const D: u32 = A;
|
||||
//~^ ERROR thread-local statics cannot be accessed at compile-time
|
||||
//~| ERROR cannot refer to statics by value
|
||||
//~| WARN non-constant path in constant expression
|
||||
|
||||
const E: &u32 = &A;
|
||||
//~^ ERROR thread-local statics cannot be accessed at compile-time
|
||||
|
||||
const fn f() -> u32 {
|
||||
A
|
||||
//~^ ERROR thread-local statics cannot be accessed at compile-time
|
||||
//~| ERROR cannot refer to statics by value
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
8
src/test/run-make/issues-41478-43796/Makefile
Normal file
8
src/test/run-make/issues-41478-43796/Makefile
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
-include ../tools.mk
|
||||
|
||||
all:
|
||||
# Work in /tmp, because we need to create the `save-analysis-temp` folder.
|
||||
cp a.rs $(TMPDIR)/
|
||||
cd $(TMPDIR) && $(RUSTC) -Zsave-analysis $(TMPDIR)/a.rs 2> $(TMPDIR)/stderr.txt || ( cat $(TMPDIR)/stderr.txt && exit 1 )
|
||||
[ ! -s $(TMPDIR)/stderr.txt ] || ( cat $(TMPDIR)/stderr.txt && exit 1 )
|
||||
[ -f $(TMPDIR)/save-analysis/liba.json ] || ( ls -la $(TMPDIR) && exit 1 )
|
||||
19
src/test/run-make/issues-41478-43796/a.rs
Normal file
19
src/test/run-make/issues-41478-43796/a.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![crate_type = "lib"]
|
||||
pub struct V<S>(S);
|
||||
pub trait An {
|
||||
type U;
|
||||
}
|
||||
pub trait F<A> {
|
||||
}
|
||||
impl<A: An> F<A> for V<<A as An>::U> {
|
||||
}
|
||||
|
|
@ -48,5 +48,10 @@ impl TTMacroExpander for Expander {
|
|||
pub fn plugin_registrar(reg: &mut Registry) {
|
||||
let args = reg.args().to_owned();
|
||||
reg.register_syntax_extension(Symbol::intern("plugin_args"),
|
||||
NormalTT(Box::new(Expander { args: args, }), None, false));
|
||||
NormalTT {
|
||||
expander: Box::new(Expander { args: args, }),
|
||||
def_info: None,
|
||||
allow_internal_unstable: false,
|
||||
allow_internal_unsafe: false,
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,10 +8,13 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(thread_local)]
|
||||
#![feature(cfg_target_thread_local)]
|
||||
#![feature(cfg_target_thread_local, const_fn, thread_local)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
#[cfg(target_thread_local)]
|
||||
use std::cell::Cell;
|
||||
|
||||
#[no_mangle]
|
||||
#[cfg_attr(target_thread_local, thread_local)]
|
||||
pub static FOO: u32 = 3;
|
||||
#[cfg(target_thread_local)]
|
||||
#[thread_local]
|
||||
pub static FOO: Cell<u32> = Cell::new(3);
|
||||
|
|
|
|||
|
|
@ -13,3 +13,14 @@
|
|||
pub fn fourway_add(a: i32) -> impl Fn(i32) -> impl Fn(i32) -> impl Fn(i32) -> i32 {
|
||||
move |b| move |c| move |d| a + b + c + d
|
||||
}
|
||||
|
||||
fn some_internal_fn() -> u32 {
|
||||
1
|
||||
}
|
||||
|
||||
// See #40839
|
||||
pub fn return_closure_accessing_internal_fn() -> impl Fn() -> u32 {
|
||||
|| {
|
||||
some_internal_fn() + 1
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,4 +14,5 @@ extern crate xcrate;
|
|||
|
||||
fn main() {
|
||||
assert_eq!(xcrate::fourway_add(1)(2)(3)(4), 10);
|
||||
xcrate::return_closure_accessing_internal_fn()();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![deny(unsafe_code)]
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
thread_local!(static FOO: u8 = 1);
|
||||
|
||||
|
|
|
|||
42
src/test/run-pass/issue-39827.rs
Normal file
42
src/test/run-pass/issue-39827.rs
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
#![feature(core_intrinsics)]
|
||||
|
||||
use std::intrinsics::{ volatile_copy_memory, volatile_store, volatile_load,
|
||||
volatile_copy_nonoverlapping_memory,
|
||||
volatile_set_memory };
|
||||
|
||||
//
|
||||
// This test ensures that volatile intrinsics can be specialised with
|
||||
// zero-sized types and, in case of copy/set functions, can accept
|
||||
// number of elements equal to zero.
|
||||
//
|
||||
fn main () {
|
||||
let mut dst_pair = (1, 2);
|
||||
let src_pair = (3, 4);
|
||||
let mut dst_empty = ();
|
||||
let src_empty = ();
|
||||
|
||||
const COUNT_0: usize = 0;
|
||||
const COUNT_100: usize = 100;
|
||||
|
||||
unsafe {
|
||||
volatile_copy_memory(&mut dst_pair, &dst_pair, COUNT_0);
|
||||
volatile_copy_nonoverlapping_memory(&mut dst_pair, &src_pair, 0);
|
||||
volatile_copy_memory(&mut dst_empty, &dst_empty, 100);
|
||||
volatile_copy_nonoverlapping_memory(&mut dst_empty, &src_empty,
|
||||
COUNT_100);
|
||||
volatile_set_memory(&mut dst_empty, 0, COUNT_100);
|
||||
volatile_set_memory(&mut dst_pair, 0, COUNT_0);
|
||||
volatile_store(&mut dst_empty, ());
|
||||
volatile_store(&mut dst_empty, src_empty);
|
||||
volatile_load(&src_empty);
|
||||
}
|
||||
}
|
||||
24
src/test/run-pass/issue-43853.rs
Normal file
24
src/test/run-pass/issue-43853.rs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::panic;
|
||||
|
||||
fn test() {
|
||||
wait(|| panic!());
|
||||
}
|
||||
|
||||
fn wait<T, F: FnOnce() -> T>(f: F) -> F::Output {
|
||||
From::from(f())
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let result = panic::catch_unwind(move || test());
|
||||
assert!(result.is_err());
|
||||
}
|
||||
|
|
@ -11,18 +11,26 @@
|
|||
// ignore-windows
|
||||
// aux-build:thread-local-extern-static.rs
|
||||
|
||||
#![feature(thread_local)]
|
||||
#![feature(cfg_target_thread_local)]
|
||||
#![feature(cfg_target_thread_local, thread_local)]
|
||||
|
||||
#[cfg(target_thread_local)]
|
||||
extern crate thread_local_extern_static;
|
||||
|
||||
#[cfg(target_thread_local)]
|
||||
use std::cell::Cell;
|
||||
|
||||
#[cfg(target_thread_local)]
|
||||
extern {
|
||||
#[cfg_attr(target_thread_local, thread_local)]
|
||||
static FOO: u32;
|
||||
#[thread_local]
|
||||
static FOO: Cell<u32>;
|
||||
}
|
||||
|
||||
#[cfg(target_thread_local)]
|
||||
fn main() {
|
||||
unsafe {
|
||||
assert_eq!(FOO, 3);
|
||||
assert_eq!(FOO.get(), 3);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(target_thread_local))]
|
||||
fn main() {}
|
||||
|
|
|
|||
47
src/test/rustdoc/doc-cfg.rs
Normal file
47
src/test/rustdoc/doc-cfg.rs
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(doc_cfg)]
|
||||
|
||||
// @has doc_cfg/struct.Portable.html
|
||||
// @!has - '//*[@id="main"]/*[@class="stability"]/*[@class="stab portability"]' ''
|
||||
// @has - '//*[@id="method.unix_and_arm_only_function"]' 'fn unix_and_arm_only_function()'
|
||||
// @has - '//*[@class="stab portability"]' 'This is supported on Unix and ARM only.'
|
||||
pub struct Portable;
|
||||
|
||||
// @has doc_cfg/unix_only/index.html \
|
||||
// '//*[@id="main"]/*[@class="stability"]/*[@class="stab portability"]' \
|
||||
// 'This is supported on Unix only.'
|
||||
// @matches - '//*[@class=" module-item"]//*[@class="stab portability"]' '\AUnix\Z'
|
||||
// @matches - '//*[@class=" module-item"]//*[@class="stab portability"]' '\AUnix and ARM\Z'
|
||||
// @count - '//*[@class="stab portability"]' 3
|
||||
#[doc(cfg(unix))]
|
||||
pub mod unix_only {
|
||||
// @has doc_cfg/unix_only/fn.unix_only_function.html \
|
||||
// '//*[@id="main"]/*[@class="stability"]/*[@class="stab portability"]' \
|
||||
// 'This is supported on Unix only.'
|
||||
// @count - '//*[@class="stab portability"]' 1
|
||||
pub fn unix_only_function() {
|
||||
content::should::be::irrelevant();
|
||||
}
|
||||
|
||||
// @has doc_cfg/unix_only/trait.ArmOnly.html \
|
||||
// '//*[@id="main"]/*[@class="stability"]/*[@class="stab portability"]' \
|
||||
// 'This is supported on Unix and ARM only.'
|
||||
// @count - '//*[@class="stab portability"]' 2
|
||||
#[doc(cfg(target_arch = "arm"))]
|
||||
pub trait ArmOnly {
|
||||
fn unix_and_arm_only_function();
|
||||
}
|
||||
|
||||
impl ArmOnly for super::Portable {
|
||||
fn unix_and_arm_only_function() {}
|
||||
}
|
||||
}
|
||||
20
src/test/rustdoc/issue-43153.rs
Normal file
20
src/test/rustdoc/issue-43153.rs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// Test that `include!` in a doc test searches relative to the directory in
|
||||
// which the test is declared.
|
||||
|
||||
// compile-flags:--test
|
||||
|
||||
/// ```rust
|
||||
/// include!("auxiliary/empty.rs");
|
||||
/// fn main() {}
|
||||
/// ```
|
||||
pub struct Foo;
|
||||
15
src/test/rustdoc/issue-43701.rs
Normal file
15
src/test/rustdoc/issue-43701.rs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![crate_name = "foo"]
|
||||
|
||||
pub use std::vec::Vec;
|
||||
|
||||
// @!has implementors/core/clone/trait.Clone.js
|
||||
33
src/test/ui/issue-43806.rs
Normal file
33
src/test/ui/issue-43806.rs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// run-pass
|
||||
|
||||
#![deny(unused_results)]
|
||||
|
||||
enum Void {}
|
||||
|
||||
fn foo() {}
|
||||
|
||||
fn bar() -> ! {
|
||||
loop {}
|
||||
}
|
||||
|
||||
fn baz() -> Void {
|
||||
loop {}
|
||||
}
|
||||
|
||||
fn qux() {
|
||||
foo();
|
||||
bar();
|
||||
baz();
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
Loading…
Add table
Add a link
Reference in a new issue