mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-24 15:54:15 +00:00
Auto merge of #63029 - petrochenkov:rpass, r=Centril
Move run-pass tests to ui This is the second attempt at doing https://github.com/rust-lang/rust/pull/53994 (which was previously reverted in https://github.com/rust-lang/rust/pull/54530). The issue with inability to run the test suite in a faster way (https://github.com/rust-lang/rust/issues/54047) that motivated the revert was recently addressed by https://github.com/rust-lang/rust/pull/61755. r? @Centril
This commit is contained in:
commit
c798dffac9
@ -55,11 +55,11 @@ The script accepts commands, flags, and arguments to determine what to do:
|
||||
# run all unit tests
|
||||
./x.py test
|
||||
|
||||
# execute the run-pass test suite
|
||||
./x.py test src/test/run-pass
|
||||
# execute the UI test suite
|
||||
./x.py test src/test/ui
|
||||
|
||||
# execute only some tests in the run-pass test suite
|
||||
./x.py test src/test/run-pass --test-args substring-of-test-name
|
||||
# execute only some tests in the UI test suite
|
||||
./x.py test src/test/ui --test-args substring-of-test-name
|
||||
|
||||
# execute tests in the standard library in stage0
|
||||
./x.py test --stage 0 src/libstd
|
||||
@ -215,7 +215,7 @@ build/
|
||||
|
||||
# Output for all compiletest-based test suites
|
||||
test/
|
||||
run-pass/
|
||||
ui/
|
||||
compile-fail/
|
||||
debuginfo/
|
||||
...
|
||||
|
@ -371,7 +371,6 @@ impl<'a> Builder<'a> {
|
||||
Kind::Test => describe!(
|
||||
test::Tidy,
|
||||
test::Ui,
|
||||
test::RunPass,
|
||||
test::CompileFail,
|
||||
test::RunFail,
|
||||
test::RunPassValgrind,
|
||||
@ -382,10 +381,8 @@ impl<'a> Builder<'a> {
|
||||
test::Incremental,
|
||||
test::Debuginfo,
|
||||
test::UiFullDeps,
|
||||
test::RunPassFullDeps,
|
||||
test::Rustdoc,
|
||||
test::Pretty,
|
||||
test::RunPassPretty,
|
||||
test::RunFailPretty,
|
||||
test::RunPassValgrindPretty,
|
||||
test::Crate,
|
||||
|
@ -629,7 +629,6 @@ fn test_with_no_doc_stage0() {
|
||||
fn test_exclude() {
|
||||
let mut config = configure(&[], &[]);
|
||||
config.exclude = vec![
|
||||
"src/test/run-pass".into(),
|
||||
"src/tools/tidy".into(),
|
||||
];
|
||||
config.cmd = Subcommand::Test {
|
||||
@ -648,11 +647,9 @@ fn test_exclude() {
|
||||
let builder = Builder::new(&build);
|
||||
builder.run_step_descriptions(&Builder::get_step_descriptions(Kind::Test), &[]);
|
||||
|
||||
// Ensure we have really excluded run-pass & tidy
|
||||
assert!(!builder.cache.contains::<test::RunPass>());
|
||||
// Ensure we have really excluded tidy
|
||||
assert!(!builder.cache.contains::<test::Tidy>());
|
||||
|
||||
// Ensure other tests are not affected.
|
||||
assert!(builder.cache.contains::<test::RunPassFullDeps>());
|
||||
assert!(builder.cache.contains::<test::RustdocUi>());
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ Arguments:
|
||||
This subcommand accepts a number of paths to directories to tests that
|
||||
should be compiled and run. For example:
|
||||
|
||||
./x.py test src/test/run-pass
|
||||
./x.py test src/test/ui
|
||||
./x.py test src/libstd --test-args hash_map
|
||||
./x.py test src/libstd --stage 0 --no-doc
|
||||
./x.py test src/test/ui --bless
|
||||
|
@ -48,10 +48,8 @@ check:
|
||||
$(Q)$(BOOTSTRAP) test $(BOOTSTRAP_ARGS)
|
||||
check-aux:
|
||||
$(Q)$(BOOTSTRAP) test \
|
||||
src/test/run-pass/pretty \
|
||||
src/test/run-fail/pretty \
|
||||
src/test/run-pass-valgrind/pretty \
|
||||
src/test/run-pass-fulldeps/pretty \
|
||||
$(AUX_ARGS) \
|
||||
$(BOOTSTRAP_ARGS)
|
||||
check-bootstrap:
|
||||
@ -75,9 +73,7 @@ check-stage2-T-x86_64-unknown-linux-musl-H-x86_64-unknown-linux-gnu:
|
||||
|
||||
TESTS_IN_2 := \
|
||||
src/test/ui \
|
||||
src/test/run-pass \
|
||||
src/test/compile-fail \
|
||||
src/test/run-pass-fulldeps \
|
||||
src/tools/linkchecker
|
||||
|
||||
ci-subset-1:
|
||||
|
@ -547,7 +547,7 @@ impl Step for TestHelpers {
|
||||
}
|
||||
|
||||
/// Compiles the `rust_test_helpers.c` library which we used in various
|
||||
/// `run-pass` test suites for ABI testing.
|
||||
/// `run-pass` tests for ABI testing.
|
||||
fn run(self, builder: &Builder<'_>) {
|
||||
if builder.config.dry_run {
|
||||
return;
|
||||
|
@ -820,13 +820,6 @@ default_test_with_compare_mode!(Ui {
|
||||
compare_mode: "nll"
|
||||
});
|
||||
|
||||
default_test_with_compare_mode!(RunPass {
|
||||
path: "src/test/run-pass",
|
||||
mode: "run-pass",
|
||||
suite: "run-pass",
|
||||
compare_mode: "nll"
|
||||
});
|
||||
|
||||
default_test!(CompileFail {
|
||||
path: "src/test/compile-fail",
|
||||
mode: "compile-fail",
|
||||
@ -881,12 +874,6 @@ host_test!(UiFullDeps {
|
||||
suite: "ui-fulldeps"
|
||||
});
|
||||
|
||||
host_test!(RunPassFullDeps {
|
||||
path: "src/test/run-pass-fulldeps",
|
||||
mode: "run-pass",
|
||||
suite: "run-pass-fulldeps"
|
||||
});
|
||||
|
||||
host_test!(Rustdoc {
|
||||
path: "src/test/rustdoc",
|
||||
mode: "rustdoc",
|
||||
@ -898,13 +885,6 @@ host_test!(Pretty {
|
||||
mode: "pretty",
|
||||
suite: "pretty"
|
||||
});
|
||||
test!(RunPassPretty {
|
||||
path: "src/test/run-pass/pretty",
|
||||
mode: "pretty",
|
||||
suite: "run-pass",
|
||||
default: false,
|
||||
host: true
|
||||
});
|
||||
test!(RunFailPretty {
|
||||
path: "src/test/run-fail/pretty",
|
||||
mode: "pretty",
|
||||
|
@ -32,7 +32,7 @@ ENV TARGETS=asmjs-unknown-emscripten
|
||||
ENV RUST_CONFIGURE_ARGS --enable-emscripten --disable-optimize-tests
|
||||
|
||||
ENV SCRIPT python2.7 ../x.py test --target $TARGETS \
|
||||
src/test/run-pass \
|
||||
src/test/ui \
|
||||
src/test/run-fail \
|
||||
src/libstd \
|
||||
src/liballoc \
|
||||
|
@ -43,7 +43,6 @@ ENV WASM_TARGETS=wasm32-unknown-unknown
|
||||
ENV WASM_SCRIPT python2.7 /checkout/x.py test --target $WASM_TARGETS \
|
||||
src/test/run-make \
|
||||
src/test/ui \
|
||||
src/test/run-pass \
|
||||
src/test/compile-fail \
|
||||
src/test/mir-opt \
|
||||
src/test/codegen-units \
|
||||
|
@ -44,7 +44,7 @@ code that manipulates syntax trees at
|
||||
compile time.
|
||||
|
||||
Let's write a plugin
|
||||
[`roman_numerals.rs`](https://github.com/rust-lang/rust/blob/master/src/test/run-pass-fulldeps/auxiliary/roman_numerals.rs)
|
||||
[`roman_numerals.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui-fulldeps/auxiliary/roman_numerals.rs)
|
||||
that implements Roman numeral integer literals.
|
||||
|
||||
```rust,ignore
|
||||
|
@ -2172,5 +2172,5 @@ impl<T: ?Sized + Debug> Debug for UnsafeCell<T> {
|
||||
}
|
||||
}
|
||||
|
||||
// If you expected tests to be here, look instead at the run-pass/ifmt.rs test,
|
||||
// If you expected tests to be here, look instead at the ui/ifmt.rs test,
|
||||
// it's a lot easier than creating all of the rt::Piece structures here.
|
||||
|
@ -747,7 +747,7 @@ However, it is not always unsafe to freeze the base pointer. In
|
||||
particular, if the referent is frozen, there is no harm in it:
|
||||
|
||||
```rust
|
||||
// src/test/run-pass/borrowck-borrow-of-mut-base-ptr-safe.rs
|
||||
// src/test/ui/borrowck-borrow-of-mut-base-ptr-safe.rs
|
||||
fn foo<'a>(mut t0: &'a mut i32,
|
||||
mut t1: &'a mut i32) {
|
||||
let p: &i32 = &*t0; // Freezes `*t0`
|
||||
@ -763,7 +763,7 @@ already frozen. In particular, we cannot assign to `*t0` through the
|
||||
new alias `t2`, as demonstrated in this test case:
|
||||
|
||||
```rust
|
||||
// src/test/run-pass/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
|
||||
// src/test/ui/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
|
||||
fn foo(t0: & &mut i32) {
|
||||
let t1 = t0;
|
||||
let p: &i32 = &**t0;
|
||||
|
@ -88,7 +88,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
// For each ampersand peeled off, update the binding mode and push the original
|
||||
// type into the adjustments vector.
|
||||
//
|
||||
// See the examples in `run-pass/match-defbm*.rs`.
|
||||
// See the examples in `ui/match-defbm*.rs`.
|
||||
let mut pat_adjustments = vec![];
|
||||
while let ty::Ref(_, inner_ty, inner_mutability) = exp_ty.sty {
|
||||
debug!("inspecting {:?}", exp_ty);
|
||||
|
@ -13,7 +13,7 @@
|
||||
//! useful for freezing mut/const things (that is, when the expected is &T
|
||||
//! but you have &const T or &mut T) and also for avoiding the linearity
|
||||
//! of mut things (when the expected is &mut T and you have &mut T). See
|
||||
//! the various `src/test/run-pass/coerce-reborrow-*.rs` tests for
|
||||
//! the various `src/test/ui/coerce-reborrow-*.rs` tests for
|
||||
//! examples of where this is useful.
|
||||
//!
|
||||
//! ## Subtle note
|
||||
@ -346,7 +346,7 @@ impl<'f, 'tcx> Coerce<'f, 'tcx> {
|
||||
// too strong. Consider a coercion from `&'a &'x Rc<T>` to
|
||||
// `&'b T`. In this case, `'a` is actually irrelevant.
|
||||
// The pointer we want is `LUB('x, 'b`). If we choose `LUB('a,'b)`
|
||||
// we get spurious errors (`run-pass/regions-lub-ref-ref-rc.rs`).
|
||||
// we get spurious errors (`ui/regions-lub-ref-ref-rc.rs`).
|
||||
// (The errors actually show up in borrowck, typically, because
|
||||
// this extra edge causes the region `'a` to be inferred to something
|
||||
// too big, which then results in borrowck errors.)
|
||||
|
@ -1394,7 +1394,7 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
|
||||
/// probe. This will result in a pending obligation so when more type-info is available we can
|
||||
/// make the final decision.
|
||||
///
|
||||
/// Example (`src/test/run-pass/method-two-trait-defer-resolution-1.rs`):
|
||||
/// Example (`src/test/ui/method-two-trait-defer-resolution-1.rs`):
|
||||
///
|
||||
/// ```
|
||||
/// trait Foo { ... }
|
||||
|
@ -312,7 +312,7 @@ impl<'a, 'tcx> Expectation<'tcx> {
|
||||
/// It is only the `&[1, 2, 3]` expression as a whole that can be coerced
|
||||
/// to the type `&[isize]`. Therefore, we propagate this more limited hint,
|
||||
/// which still is useful, because it informs integer literals and the like.
|
||||
/// See the test case `test/run-pass/coerce-expect-unsized.rs` and #20169
|
||||
/// See the test case `test/ui/coerce-expect-unsized.rs` and #20169
|
||||
/// for examples of where this comes up,.
|
||||
fn rvalue_hint(fcx: &FnCtxt<'a, 'tcx>, ty: Ty<'tcx>) -> Expectation<'tcx> {
|
||||
match fcx.tcx.struct_tail_without_normalization(ty).sty {
|
||||
|
@ -1742,6 +1742,6 @@ mod tests {
|
||||
assert!(thread::current().id() != spawned_id);
|
||||
}
|
||||
|
||||
// NOTE: the corresponding test for stderr is in run-pass/thread-stderr, due
|
||||
// NOTE: the corresponding test for stderr is in ui/thread-stderr, due
|
||||
// to the test harness apparently interfering with stderr configuration.
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ fn check_binders(
|
||||
match *lhs {
|
||||
TokenTree::Token(..) => {}
|
||||
// This can only happen when checking a nested macro because this LHS is then in the RHS of
|
||||
// the outer macro. See run-pass/macros/macro-of-higher-order.rs where $y:$fragment in the
|
||||
// the outer macro. See ui/macros/macro-of-higher-order.rs where $y:$fragment in the
|
||||
// LHS of the nested macro (and RHS of the outer macro) is parsed as MetaVar(y) Colon
|
||||
// MetaVar(fragment) and not as MetaVarDecl(y, fragment).
|
||||
TokenTree::MetaVar(span, name) => {
|
||||
|
@ -305,7 +305,7 @@ impl HygieneData {
|
||||
// was defined at its invocation (i.e., inside the macros 2.0 definition)
|
||||
// so that the macros 2.0 definition remains hygienic.
|
||||
//
|
||||
// See the example at `test/run-pass/hygiene/legacy_interaction.rs`.
|
||||
// See the example at `test/ui/hygiene/legacy_interaction.rs`.
|
||||
for (expn_id, transparency) in self.marks(ctxt) {
|
||||
call_site_ctxt = self.apply_mark_internal(call_site_ctxt, expn_id, transparency);
|
||||
}
|
||||
|
1
src/test/run-pass/.gitattributes
vendored
1
src/test/run-pass/.gitattributes
vendored
@ -1 +0,0 @@
|
||||
lexer-crlf-line-endings-string-literal-doc-comment.rs -text
|
@ -1,22 +0,0 @@
|
||||
// no-prefer-dynamic
|
||||
|
||||
// This aux-file will require the eh_personality function to be codegen'd, but
|
||||
// it hasn't been defined just yet. Make sure we don't explode.
|
||||
|
||||
#![no_std]
|
||||
#![crate_type = "rlib"]
|
||||
|
||||
struct A;
|
||||
|
||||
impl core::ops::Drop for A {
|
||||
fn drop(&mut self) {}
|
||||
}
|
||||
|
||||
pub fn foo() {
|
||||
let _a = A;
|
||||
panic!("wut");
|
||||
}
|
||||
|
||||
mod std {
|
||||
pub use core::{option, fmt};
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
#![crate_type = "rlib"]
|
||||
#![feature(fundamental)]
|
||||
|
||||
pub trait MyCopy { }
|
||||
impl MyCopy for i32 { }
|
||||
|
||||
pub struct MyStruct<T>(T);
|
||||
|
||||
#[fundamental]
|
||||
pub struct MyFundamentalStruct<T>(T);
|
@ -1,15 +0,0 @@
|
||||
#![crate_type="lib"]
|
||||
|
||||
pub trait Remote {
|
||||
fn foo(&self) { }
|
||||
}
|
||||
|
||||
pub trait Remote1<T> {
|
||||
fn foo(&self, t: T) { }
|
||||
}
|
||||
|
||||
pub trait Remote2<T, U> {
|
||||
fn foo(&self, t: T, u: U) { }
|
||||
}
|
||||
|
||||
pub struct Pair<T,U>(T,U);
|
@ -1,5 +0,0 @@
|
||||
// Crate that exports a const fn. Used for testing cross-crate.
|
||||
|
||||
#![crate_type="rlib"]
|
||||
|
||||
pub const fn foo() -> usize { 22 }
|
@ -1,8 +0,0 @@
|
||||
warning: unreachable block in `if` expression
|
||||
--> $DIR/if-ret.rs:4:24
|
||||
|
|
||||
LL | fn foo() { if (return) { } }
|
||||
| ^^^
|
||||
|
|
||||
= note: `#[warn(unreachable_code)]` on by default
|
||||
|
@ -1,12 +0,0 @@
|
||||
pub fn increment(x: usize) -> usize {
|
||||
x + 1
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! increment {
|
||||
($x:expr) => ($crate::increment($x))
|
||||
}
|
||||
|
||||
pub fn check_local() {
|
||||
assert_eq!(increment!(3), 4);
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
#![feature(staged_api)]
|
||||
#![stable(feature = "unit_test", since = "1.0.0")]
|
||||
|
||||
#[unstable(feature = "unstable_macros", issue = "0")]
|
||||
#[macro_export]
|
||||
macro_rules! unstable_macro{ () => () }
|
@ -1,8 +0,0 @@
|
||||
warning: unused attribute
|
||||
--> $DIR/macro-use-all-and-none.rs:5:1
|
||||
|
|
||||
LL | #[macro_use()]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(unused_attributes)]` on by default
|
||||
|
@ -1 +0,0 @@
|
||||
pub fn foo() {}
|
@ -1,42 +0,0 @@
|
||||
// run-pass
|
||||
#![feature(crate_in_paths)]
|
||||
#![allow(dead_code)]
|
||||
use crate::m::f;
|
||||
use crate as root;
|
||||
|
||||
mod m {
|
||||
pub fn f() -> u8 { 1 }
|
||||
pub fn g() -> u8 { 2 }
|
||||
pub fn h() -> u8 { 3 }
|
||||
|
||||
// OK, visibilities are implicitly absolute like imports
|
||||
pub(in crate::m) struct S;
|
||||
}
|
||||
|
||||
mod n {
|
||||
use crate::m::f;
|
||||
use crate as root;
|
||||
pub fn check() {
|
||||
assert_eq!(f(), 1);
|
||||
assert_eq!(crate::m::g(), 2);
|
||||
assert_eq!(root::m::h(), 3);
|
||||
}
|
||||
}
|
||||
|
||||
mod p {
|
||||
use {super::f, crate::m::g, self::root::m::h};
|
||||
use crate as root;
|
||||
pub fn check() {
|
||||
assert_eq!(f(), 1);
|
||||
assert_eq!(g(), 2);
|
||||
assert_eq!(h(), 3);
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
assert_eq!(f(), 1);
|
||||
assert_eq!(crate::m::g(), 2);
|
||||
assert_eq!(root::m::h(), 3);
|
||||
n::check();
|
||||
p::check();
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
warning: the feature `crate_in_paths` has been stable since 1.30.0 and no longer requires an attribute to enable
|
||||
--> $DIR/crate-path-absolute.rs:2:12
|
||||
|
|
||||
LL | #![feature(crate_in_paths)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(stable_features)]` on by default
|
||||
|
@ -1,15 +0,0 @@
|
||||
// run-pass
|
||||
#![feature(crate_in_paths)]
|
||||
#![feature(crate_visibility_modifier)]
|
||||
#![allow(dead_code)]
|
||||
mod m {
|
||||
pub struct Z;
|
||||
pub struct S1(crate (::m::Z)); // OK
|
||||
pub struct S2((crate ::m::Z)); // OK
|
||||
pub struct S3(crate ::m::Z); // OK
|
||||
pub struct S4(crate crate::m::Z); // OK
|
||||
}
|
||||
|
||||
fn main() {
|
||||
crate struct S; // OK (item in statement position)
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
warning: the feature `crate_in_paths` has been stable since 1.30.0 and no longer requires an attribute to enable
|
||||
--> $DIR/crate-path-visibility-ambiguity.rs:2:12
|
||||
|
|
||||
LL | #![feature(crate_in_paths)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(stable_features)]` on by default
|
||||
|
@ -1,7 +0,0 @@
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub struct S;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Z;
|
||||
|
||||
pub trait Tr<'a> {}
|
@ -1,25 +0,0 @@
|
||||
// run-pass
|
||||
#![allow(dead_code)]
|
||||
// aux-build:xcrate.rs
|
||||
// compile-flags:--extern xcrate
|
||||
// edition:2018
|
||||
|
||||
#![allow(unused_imports)]
|
||||
|
||||
use xcrate::Z;
|
||||
|
||||
fn f() {
|
||||
use xcrate;
|
||||
use xcrate as ycrate;
|
||||
let s = xcrate::S;
|
||||
assert_eq!(format!("{:?}", s), "S");
|
||||
let z = ycrate::Z;
|
||||
assert_eq!(format!("{:?}", z), "Z");
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let s = ::xcrate::S;
|
||||
assert_eq!(format!("{:?}", s), "S");
|
||||
let z = Z;
|
||||
assert_eq!(format!("{:?}", z), "Z");
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
// run-pass
|
||||
// Check that `#[test]` works with extern-absolute-paths enabled.
|
||||
//
|
||||
// Regression test for #47075.
|
||||
|
||||
// edition:2018
|
||||
// compile-flags: --test
|
||||
|
||||
#[test]
|
||||
fn test() {}
|
@ -1,14 +0,0 @@
|
||||
// run-pass
|
||||
// edition:2018
|
||||
|
||||
// Tests that `core` and `std` are always available.
|
||||
use core::iter;
|
||||
use std::io;
|
||||
// FIXME(eddyb) Add a `meta` crate to the distribution.
|
||||
// use meta;
|
||||
|
||||
fn main() {
|
||||
for _ in iter::once(()) {
|
||||
io::stdout();
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
// Simple smoke test that unsafe traits can be compiled etc.
|
||||
|
||||
pub unsafe trait Foo {
|
||||
fn foo(&self) -> isize;
|
||||
}
|
||||
|
||||
unsafe impl Foo for isize {
|
||||
fn foo(&self) -> isize { *self }
|
||||
}
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_imports)]
|
||||
// ignore-cross-compile
|
||||
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// Test that the Callbacks interface to the compiler works.
|
||||
|
||||
// ignore-cross-compile
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
use std::env;
|
||||
use std::fs;
|
||||
use std::path::PathBuf;
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(dead_code)]
|
||||
#![feature(rustc_private)]
|
||||
#![no_std]
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_imports)]
|
||||
|
||||
#![feature(box_syntax)]
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_imports)]
|
||||
// This briefly tests the capability of `Cell` and `RefCell` to implement the
|
||||
// `Encodable` and `Decodable` traits via `#[derive(Encodable, Decodable)]`
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![feature(rustc_private)]
|
||||
|
||||
extern crate serialize;
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(non_upper_case_globals)]
|
||||
#![feature(rustc_private)]
|
||||
extern crate serialize;
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unknown_lints)]
|
||||
// Check that an arena (TypedArena) can carry elements whose drop
|
||||
// methods might access borrowed data, as long as the borrowed data
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// `#[derive(Trait)]` works for empty structs/variants with braces or parens.
|
||||
|
||||
#![feature(rustc_private)]
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_imports)]
|
||||
#![feature(rustc_private)]
|
||||
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_must_use)]
|
||||
#![allow(dead_code)]
|
||||
#![allow(unused_imports)]
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:issue-13560-1.rs
|
||||
// aux-build:issue-13560-2.rs
|
||||
// aux-build:issue-13560-3.rs
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_mut)]
|
||||
#![allow(unused_imports)]
|
||||
#![feature(rustc_private)]
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_variables)]
|
||||
// no-prefer-dynamic
|
||||
// ignore-cross-compile
|
@ -1,10 +1,11 @@
|
||||
// aux-build:lint-for-crate.rs
|
||||
// run-pass
|
||||
// aux-build:lint-for-crate-rpass.rs
|
||||
// ignore-stage1
|
||||
// compile-flags: -D crate-not-okay
|
||||
|
||||
#![feature(plugin, custom_attribute, custom_inner_attributes, rustc_attrs)]
|
||||
|
||||
#![plugin(lint_for_crate)]
|
||||
#![plugin(lint_for_crate_rpass)]
|
||||
#![rustc_crate_okay]
|
||||
#![rustc_crate_blue]
|
||||
#![rustc_crate_red]
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_imports)]
|
||||
#![allow(unused_must_use)]
|
||||
// pretty-expanded FIXME #23616
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:issue-16822.rs
|
||||
|
||||
extern crate issue_16822 as lib;
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:issue-18502.rs
|
||||
|
||||
extern crate issue_18502 as fmt;
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:issue-24106.rs
|
||||
|
||||
extern crate issue_24106;
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(dead_code)]
|
||||
#![feature(rustc_private)]
|
||||
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(dead_code)]
|
||||
#![feature(rustc_private)]
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:issue-40001-plugin.rs
|
||||
// ignore-stage1
|
||||
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(dead_code)]
|
||||
|
||||
#![feature(rustc_private)]
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// Issue #4036: Test for an issue that arose around fixing up type inference
|
||||
// byproducts in vtable records.
|
||||
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:linkage-visibility.rs
|
||||
// ignore-android: FIXME(#10356)
|
||||
// ignore-windows: std::dynamic_lib does not work on Windows well
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:llvm-pass-plugin.rs
|
||||
// ignore-stage1
|
||||
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:lto-syntax-extension-lib.rs
|
||||
// aux-build:lto-syntax-extension-plugin.rs
|
||||
// compile-flags:-C lto
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(plugin_as_library)]
|
||||
#![allow(dead_code)]
|
||||
#![allow(unused_variables)]
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// Testing that a libsyntax can parse modules with canonicalized base path
|
||||
// ignore-cross-compile
|
||||
|
@ -1 +1,3 @@
|
||||
// run-pass
|
||||
|
||||
pub fn foo() -> isize { 10 }
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// This test case tests whether we can handle code bases that contain a high
|
||||
// number of closures, something that needs special handling in the MingGW
|
||||
// toolchain.
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![feature(rustc_private)]
|
||||
|
||||
extern crate rustc_data_structures;
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:outlive-expansion-phase.rs
|
||||
// ignore-stage1
|
||||
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:plugin-args.rs
|
||||
// ignore-stage1
|
||||
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:plugin-args.rs
|
||||
// ignore-stage1
|
||||
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:plugin-args.rs
|
||||
// ignore-stage1
|
||||
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// ignore-cross-compile
|
||||
|
||||
// The general idea of this test is to enumerate all "interesting" expressions and check that
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(dead_code)]
|
||||
#![allow(unused_imports)]
|
||||
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![allow(unused_must_use)]
|
||||
#![allow(unused_imports)]
|
||||
// This test can't be a unit test in std,
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// aux-build:roman-numerals.rs
|
||||
// ignore-stage1
|
||||
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
#![feature(rustc_private)]
|
||||
|
||||
#[allow(dead_code)]
|
@ -1,3 +1,4 @@
|
||||
// run-pass
|
||||
// ignore-cross-compile
|
||||
|
||||
use std::env;
|
@ -1,3 +1,5 @@
|
||||
// run-pass
|
||||
|
||||
use std::env;
|
||||
use std::fs::File;
|
||||
use std::io::{Read, Write};
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user