Auto merge of #36764 - jonathandturner:rollup, r=jonathandturner
Rollup of 14 pull requests - Successful merges: #36563, #36574, #36586, #36662, #36663, #36669, #36676, #36721, #36723, #36727, #36729, #36742, #36754, #36756 - Failed merges:
This commit is contained in:
commit
ec7679b460
68 changed files with 1713 additions and 1064 deletions
|
|
@ -12,4 +12,5 @@ fn takes_u8(_: u8) {}
|
|||
|
||||
fn main() {
|
||||
unsafe { takes_u8(::std::mem::transmute(0u16)); } //~ ERROR E0512
|
||||
//~| transmuting between 16 bits and 8 bits
|
||||
}
|
||||
|
|
|
|||
19
src/test/compile-fail/E0513.rs
Normal file
19
src/test/compile-fail/E0513.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2016 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::mem;
|
||||
|
||||
fn main() {
|
||||
unsafe {
|
||||
let size = mem::size_of::<u32>();
|
||||
mem::transmute_copy::<u32, [u8; size]>(&8_8); //~ ERROR E0513
|
||||
//~| NOTE no type for variable
|
||||
}
|
||||
}
|
||||
|
|
@ -8,6 +8,6 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// error-pattern: expected item, found `parse_error`
|
||||
// error-pattern: expected one of `!` or `::`, found `<eof>`
|
||||
include!("auxiliary/issue-21146-inc.rs");
|
||||
fn main() {}
|
||||
|
|
|
|||
62
src/test/compile-fail/issue-5067.rs
Normal file
62
src/test/compile-fail/issue-5067.rs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
macro_rules! foo {
|
||||
( $()* ) => {};
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
( $()+ ) => {};
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
|
||||
( $(),* ) => {}; // PASS
|
||||
( $(),+ ) => {}; // PASS
|
||||
|
||||
( [$()*] ) => {};
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
( [$()+] ) => {};
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
|
||||
( [$(),*] ) => {}; // PASS
|
||||
( [$(),+] ) => {}; // PASS
|
||||
|
||||
( $($()* $(),* $(a)* $(a),* )* ) => {};
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
( $($()* $(),* $(a)* $(a),* )+ ) => {};
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
|
||||
( $(a $(),* $(a)* $(a),* )* ) => {}; // PASS
|
||||
( $($(a)+ $(),* $(a)* $(a),* )+ ) => {}; // PASS
|
||||
|
||||
( $(a $()+)* ) => {};
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
( $(a $()*)+ ) => {};
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
}
|
||||
|
||||
|
||||
// --- Original Issue --- //
|
||||
|
||||
macro_rules! make_vec {
|
||||
(a $e1:expr $($(, a $e2:expr)*)*) => ([$e1 $($(, $e2)*)*]);
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let _ = make_vec!(a 1, a 2, a 3);
|
||||
}
|
||||
|
||||
|
||||
// --- Minified Issue --- //
|
||||
|
||||
macro_rules! m {
|
||||
( $()* ) => {}
|
||||
//~^ ERROR repetition matches empty token tree
|
||||
}
|
||||
|
||||
m!();
|
||||
|
|
@ -14,11 +14,8 @@ macro_rules! m {
|
|||
//~| ERROR macro expansion ignores token `typeof`
|
||||
//~| ERROR macro expansion ignores token `;`
|
||||
//~| ERROR macro expansion ignores token `;`
|
||||
//~| ERROR macro expansion ignores token `i`
|
||||
}
|
||||
|
||||
m!(); //~ NOTE the usage of `m!` is likely invalid in item context
|
||||
|
||||
fn main() {
|
||||
let a: m!(); //~ NOTE the usage of `m!` is likely invalid in type context
|
||||
let i = m!(); //~ NOTE the usage of `m!` is likely invalid in expression context
|
||||
|
|
|
|||
38
src/test/compile-fail/paths-in-macro-invocations.rs
Normal file
38
src/test/compile-fail/paths-in-macro-invocations.rs
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
::foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
|
||||
trait T {
|
||||
foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
::foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
}
|
||||
|
||||
struct S {
|
||||
x: foo::bar!(), //~ ERROR expected macro name without module separators
|
||||
y: ::foo::bar!(), //~ ERROR expected macro name without module separators
|
||||
}
|
||||
|
||||
impl S {
|
||||
foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
::foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
}
|
||||
|
||||
fn main() {
|
||||
foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
::foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
|
||||
let _ = foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
let _ = ::foo::bar!(); //~ ERROR expected macro name without module separators
|
||||
|
||||
let foo::bar!() = 0; //~ ERROR expected macro name without module separators
|
||||
let ::foo::bar!() = 0; //~ ERROR expected macro name without module separators
|
||||
}
|
||||
|
|
@ -30,8 +30,7 @@ pub fn main() {
|
|||
ref mut Self => (),
|
||||
//~^ ERROR expected identifier, found keyword `Self`
|
||||
Self!() => (),
|
||||
//~^ ERROR expected identifier, found keyword `Self`
|
||||
//~^^ ERROR macro undefined: 'Self!'
|
||||
//~^ ERROR macro undefined: 'Self!'
|
||||
Foo { x: Self } => (),
|
||||
//~^ ERROR expected identifier, found keyword `Self`
|
||||
Foo { Self } => (),
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
// compile-flags: -Z parse-only
|
||||
|
||||
extern {
|
||||
f(); //~ ERROR expected one of `fn`, `pub`, `static`, or `}`, found `f`
|
||||
f(); //~ ERROR expected one of `!` or `::`, found `(`
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
|
|
|||
|
|
@ -11,5 +11,6 @@
|
|||
// compile-flags: -Z parse-only
|
||||
|
||||
trait MyTrait<T>: Iterator {
|
||||
Item = T; //~ ERROR expected one of `const`, `extern`, `fn`, `type`, or `unsafe`, found `Item`
|
||||
Item = T; //~ ERROR expected one of `!` or `::`, found `=`
|
||||
//~| ERROR expected item, found `=`
|
||||
}
|
||||
|
|
|
|||
5
src/test/run-make/link-arg/Makefile
Normal file
5
src/test/run-make/link-arg/Makefile
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
-include ../tools.mk
|
||||
RUSTC_FLAGS = -C link-arg="-lfoo" -C link-arg="-lbar" -Z print-link-args
|
||||
|
||||
all:
|
||||
$(RUSTC) $(RUSTC_FLAGS) empty.rs | grep lfoo | grep lbar
|
||||
11
src/test/run-make/link-arg/empty.rs
Normal file
11
src/test/run-make/link-arg/empty.rs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
// Copyright 2016 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() { }
|
||||
|
|
@ -11,6 +11,7 @@
|
|||
// ignore-windows
|
||||
// ignore-android
|
||||
// ignore-emscripten
|
||||
// ignore-haiku
|
||||
|
||||
#![feature(libc)]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue