Remove compile-fail
test suite
This commit is contained in:
parent
158f8d034b
commit
4d2d0bad4e
@ -607,7 +607,7 @@ pub struct Crate<'hir> {
|
||||
// over the ids in increasing order. In principle it should not
|
||||
// matter what order we visit things in, but in *practice* it
|
||||
// does, because it can affect the order in which errors are
|
||||
// detected, which in turn can make compile-fail tests yield
|
||||
// detected, which in turn can make UI tests yield
|
||||
// slightly different results.
|
||||
pub items: BTreeMap<HirId, Item<'hir>>,
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
//! In this code, we report errors on each `rustc_if_this_changed`
|
||||
//! annotation. If a path exists in all cases, then we would report
|
||||
//! "all path(s) exist". Otherwise, we report: "no path to `foo`" for
|
||||
//! each case where no path exists. `compile-fail` tests can then be
|
||||
//! each case where no path exists. `ui` tests can then be
|
||||
//! used to check when paths exist or do not.
|
||||
//!
|
||||
//! The full form of the `rustc_if_this_changed` annotation is
|
||||
|
@ -889,7 +889,7 @@ fn analysis(tcx: TyCtxt<'_>, cnum: CrateNum) -> Result<()> {
|
||||
|
||||
// Avoid overwhelming user with errors if borrow checking failed.
|
||||
// I'm not sure how helpful this is, to be honest, but it avoids a
|
||||
// lot of annoying errors in the compile-fail tests (basically,
|
||||
// lot of annoying errors in the ui tests (basically,
|
||||
// lint warnings and so on -- kindck used to do this abort, but
|
||||
// kindck is gone now). -nmatsakis
|
||||
if sess.has_errors() {
|
||||
|
@ -280,7 +280,7 @@ impl<'tcx> Queries<'tcx> {
|
||||
// Don't do code generation if there were any errors
|
||||
self.session().compile_status()?;
|
||||
|
||||
// Hook for compile-fail tests.
|
||||
// Hook for UI tests.
|
||||
Self::check_for_rustc_errors_attr(tcx);
|
||||
|
||||
Ok(passes::start_codegen(&***self.codegen_backend(), tcx, &*outputs.peek()))
|
||||
@ -289,7 +289,7 @@ impl<'tcx> Queries<'tcx> {
|
||||
}
|
||||
|
||||
/// Check for the `#[rustc_error]` annotation, which forces an error in codegen. This is used
|
||||
/// to write compile-fail tests that actually test that compilation succeeds without reporting
|
||||
/// to write UI tests that actually test that compilation succeeds without reporting
|
||||
/// an error.
|
||||
fn check_for_rustc_errors_attr(tcx: TyCtxt<'_>) {
|
||||
let def_id = match tcx.entry_fn(LOCAL_CRATE) {
|
||||
|
@ -92,7 +92,7 @@ impl<'tcx> MirPass<'tcx> for SanityCheck {
|
||||
/// "rustc_peek: bit not set".
|
||||
///
|
||||
/// The intention is that one can write unit tests for dataflow by
|
||||
/// putting code into a compile-fail test and using `rustc_peek` to
|
||||
/// putting code into an UI test and using `rustc_peek` to
|
||||
/// make observations about the results of dataflow static analyses.
|
||||
///
|
||||
/// (If there are any calls to `rustc_peek` that do not match the
|
||||
|
@ -525,7 +525,7 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
|
||||
ModuleKind::Block(..) => unreachable!(),
|
||||
};
|
||||
// HACK(eddyb) unclear how good this is, but keeping `$crate`
|
||||
// in `source` breaks `src/test/compile-fail/import-crate-var.rs`,
|
||||
// in `source` breaks `src/test/ui/imports/import-crate-var.rs`,
|
||||
// while the current crate doesn't have a valid `crate_name`.
|
||||
if crate_name != kw::Invalid {
|
||||
// `crate_name` should not be interpreted as relative.
|
||||
|
@ -162,7 +162,7 @@ impl<'tcx> OutlivesEnvironmentExt<'tcx> for OutlivesEnvironment<'tcx> {
|
||||
/// 'b` (and hence, transitively, that `T: 'a`). This method would
|
||||
/// add those assumptions into the outlives-environment.
|
||||
///
|
||||
/// Tests: `src/test/compile-fail/regions-free-region-ordering-*.rs`
|
||||
/// Tests: `src/test/ui/regions/regions-free-region-ordering-*.rs`
|
||||
fn add_implied_bounds(
|
||||
&mut self,
|
||||
infcx: &InferCtxt<'a, 'tcx>,
|
||||
|
@ -558,7 +558,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
|
||||
// where-clause or, in the case of an object type,
|
||||
// it could be that the object type lists the
|
||||
// trait (e.g., `Foo+Send : Send`). See
|
||||
// `compile-fail/typeck-default-trait-impl-send-param.rs`
|
||||
// `ui/typeck/typeck-default-trait-impl-send-param.rs`
|
||||
// for an example of a test case that exercises
|
||||
// this path.
|
||||
}
|
||||
|
@ -1767,8 +1767,7 @@ fn gather_explicit_predicates_of(tcx: TyCtxt<'_>, def_id: DefId) -> ty::GenericP
|
||||
const NO_GENERICS: &hir::Generics<'_> = &hir::Generics::empty();
|
||||
|
||||
// We use an `IndexSet` to preserves order of insertion.
|
||||
// Preserving the order of insertion is important here so as not to break
|
||||
// compile-fail UI tests.
|
||||
// Preserving the order of insertion is important here so as not to break UI tests.
|
||||
let mut predicates: FxIndexSet<(ty::Predicate<'_>, Span)> = FxIndexSet::default();
|
||||
|
||||
let ast_generics = match node {
|
||||
|
@ -201,7 +201,6 @@ build/
|
||||
# Output for all compiletest-based test suites
|
||||
test/
|
||||
ui/
|
||||
compile-fail/
|
||||
debuginfo/
|
||||
...
|
||||
|
||||
|
@ -384,7 +384,6 @@ impl<'a> Builder<'a> {
|
||||
test::ExpandYamlAnchors,
|
||||
test::Tidy,
|
||||
test::Ui,
|
||||
test::CompileFail,
|
||||
test::RunPassValgrind,
|
||||
test::MirOpt,
|
||||
test::Codegen,
|
||||
|
@ -66,7 +66,6 @@ check-stage2-T-x86_64-unknown-linux-musl-H-x86_64-unknown-linux-gnu:
|
||||
|
||||
TESTS_IN_2 := \
|
||||
src/test/ui \
|
||||
src/test/compile-fail \
|
||||
src/tools/linkchecker
|
||||
|
||||
ci-subset-1:
|
||||
@ -75,8 +74,7 @@ ci-subset-2:
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 $(TESTS_IN_2)
|
||||
|
||||
TESTS_IN_MINGW_2 := \
|
||||
src/test/ui \
|
||||
src/test/compile-fail
|
||||
src/test/ui
|
||||
|
||||
ci-mingw-subset-1:
|
||||
$(Q)$(BOOTSTRAP) test --stage 2 $(TESTS_IN_MINGW_2:%=--exclude %)
|
||||
|
@ -869,12 +869,6 @@ default_test_with_compare_mode!(Ui {
|
||||
compare_mode: "nll"
|
||||
});
|
||||
|
||||
default_test!(CompileFail {
|
||||
path: "src/test/compile-fail",
|
||||
mode: "compile-fail",
|
||||
suite: "compile-fail"
|
||||
});
|
||||
|
||||
default_test!(RunPassValgrind {
|
||||
path: "src/test/run-pass-valgrind",
|
||||
mode: "run-pass-valgrind",
|
||||
|
@ -44,7 +44,6 @@ ENV WASM_TARGETS=wasm32-unknown-unknown
|
||||
ENV WASM_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $WASM_TARGETS \
|
||||
src/test/run-make \
|
||||
src/test/ui \
|
||||
src/test/compile-fail \
|
||||
src/test/mir-opt \
|
||||
src/test/codegen-units \
|
||||
library/core
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
This script creates a pile of compile-fail tests check that all the
|
||||
This script creates a pile of UI tests check that all the
|
||||
derives have spans that point to the fields, rather than the
|
||||
#[derive(...)] line.
|
||||
|
||||
|
@ -1,15 +0,0 @@
|
||||
// no-prefer-dynamic
|
||||
|
||||
#![crate_type = "rlib"]
|
||||
|
||||
#![no_std]
|
||||
#![feature(lang_items)]
|
||||
|
||||
use core::panic::PanicInfo;
|
||||
|
||||
#[lang = "panic_impl"]
|
||||
fn panic_impl(info: &PanicInfo) -> ! { loop {} }
|
||||
#[lang = "eh_personality"]
|
||||
fn eh_personality() {}
|
||||
#[lang = "eh_catch_typeinfo"]
|
||||
static EH_CATCH_TYPEINFO: u8 = 0;
|
@ -1,17 +0,0 @@
|
||||
// compile-flags:-C panic=unwind
|
||||
// no-prefer-dynamic
|
||||
|
||||
#![feature(panic_runtime)]
|
||||
#![crate_type = "rlib"]
|
||||
|
||||
#![no_std]
|
||||
#![panic_runtime]
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn __rust_maybe_catch_panic() {}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn __rust_start_panic() {}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn rust_eh_personality() {}
|
@ -1,17 +0,0 @@
|
||||
// compile-flags:-C panic=unwind
|
||||
// no-prefer-dynamic
|
||||
|
||||
#![feature(panic_runtime)]
|
||||
#![crate_type = "rlib"]
|
||||
|
||||
#![no_std]
|
||||
#![panic_runtime]
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn __rust_maybe_catch_panic() {}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn __rust_start_panic() {}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn rust_eh_personality() {}
|
@ -1,11 +0,0 @@
|
||||
// no-prefer-dynamic
|
||||
|
||||
#![crate_type = "rlib"]
|
||||
#![no_std]
|
||||
|
||||
use core::panic::PanicInfo;
|
||||
|
||||
#[panic_handler]
|
||||
fn panic(info: &PanicInfo) -> ! {
|
||||
loop {}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
// no-prefer-dynamic
|
||||
|
||||
#![crate_type = "rlib"]
|
||||
#![no_std]
|
||||
|
||||
extern crate panic_runtime_unwind;
|
@ -1,4 +0,0 @@
|
||||
error: the crate `depends` cannot depend on a crate that needs a panic runtime, but it depends on `needs_panic_runtime`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -1,9 +1,8 @@
|
||||
-include ../tools.mk
|
||||
|
||||
# Modelled after compile-fail/changing-crates test, but this one puts
|
||||
# Modelled after ui/changing-crates.rs test, but this one puts
|
||||
# more than one (mismatching) candidate crate into the search path,
|
||||
# which did not appear directly expressible in compile-fail/aux-build
|
||||
# infrastructure.
|
||||
# which did not appear directly expressible in UI testing infrastructure.
|
||||
#
|
||||
# Note that we move the built libraries into target direcrtories rather than
|
||||
# use the `--out-dir` option because the `../tools.mk` file already bakes a
|
||||
@ -33,4 +32,4 @@ all:
|
||||
'crate `crateA`:' \
|
||||
'crate `crateB`:' \
|
||||
< $(LOG)
|
||||
# the 'crate `crateA`' will match two entries.
|
||||
# the 'crate `crateA`' will match two entries.
|
||||
|
@ -5,7 +5,7 @@
|
||||
// causing a type mismatch.
|
||||
|
||||
// The test is nearly the same as the one in
|
||||
// compile-fail/type-mismatch-same-crate-name.rs
|
||||
// ui/type/type-mismatch-same-crate-name.rs
|
||||
// but deals with the case where one of the crates
|
||||
// is only introduced as an indirect dependency.
|
||||
// and the type is accessed via a re-export.
|
||||
|
@ -1,8 +1,8 @@
|
||||
// Reject mixing cyclic structure and Drop when using TypedArena.
|
||||
//
|
||||
// (Compare against compile-fail/dropck_vec_cycle_checked.rs)
|
||||
// (Compare against dropck-vec-cycle-checked.rs)
|
||||
//
|
||||
// (Also compare against compile-fail/dropck_tarena_unsound_drop.rs,
|
||||
// (Also compare against ui-fulldeps/dropck-tarena-unsound-drop.rs,
|
||||
// which is a reduction of this code to more directly show the reason
|
||||
// for the error message we see here.)
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
// methods might access borrowed data, as long as the borrowed data
|
||||
// has lifetime that strictly outlives the arena itself.
|
||||
//
|
||||
// Compare against compile-fail/dropck_tarena_unsound_drop.rs, which
|
||||
// Compare against ui-fulldeps/dropck-tarena-unsound-drop.rs, which
|
||||
// shows a similar setup, but restricts `f` so that the struct `C<'a>`
|
||||
// is force-fed a lifetime equal to that of the borrowed arena.
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
// Ensure that we can copy out of a fixed-size array.
|
||||
//
|
||||
// (Compare with compile-fail/move-out-of-array-1.rs)
|
||||
// (Compare with ui/moves/move-out-of-array-1.rs)
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
struct C { _x: u8 }
|
||||
|
@ -3,7 +3,7 @@
|
||||
// the trait definition if there is no default method and for every impl,
|
||||
// `Self` does implement `Get`.
|
||||
//
|
||||
// See also compile-fail tests associated-types-no-suitable-supertrait
|
||||
// See also tests associated-types-no-suitable-supertrait
|
||||
// and associated-types-no-suitable-supertrait-2, which show how small
|
||||
// variants of the code below can fail.
|
||||
|
||||
|
16
src/test/ui/associated-types/issue-23595-1.stderr
Normal file
16
src/test/ui/associated-types/issue-23595-1.stderr
Normal file
@ -0,0 +1,16 @@
|
||||
error[E0191]: the value of the associated types `ChildKey` (from trait `Hierarchy`), `Children` (from trait `Hierarchy`), `Value` (from trait `Hierarchy`) must be specified
|
||||
--> $DIR/issue-23595-1.rs:8:58
|
||||
|
|
||||
LL | type Value;
|
||||
| ----------- `Value` defined here
|
||||
LL | type ChildKey;
|
||||
| -------------- `ChildKey` defined here
|
||||
LL | type Children = dyn Index<Self::ChildKey, Output=dyn Hierarchy>;
|
||||
| -----------------------------------------------------^^^^^^^^^--
|
||||
| | |
|
||||
| | help: specify the associated types: `Hierarchy<Value = Type, ChildKey = Type, Children = Type>`
|
||||
| `Children` defined here
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0191`.
|
@ -0,0 +1,17 @@
|
||||
error[E0277]: the trait bound `T: Copy` is not satisfied
|
||||
--> $DIR/issue-27675-unchecked-bounds.rs:15:31
|
||||
|
|
||||
LL | fn copy<U: Setup + ?Sized>(from: &U::From) -> U::From {
|
||||
| ----- required by this bound in `copy`
|
||||
...
|
||||
LL | copy::<dyn Setup<From=T>>(t)
|
||||
| ^ the trait `Copy` is not implemented for `T`
|
||||
|
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
LL | pub fn copy_any<T: Copy>(t: &T) -> T {
|
||||
| ^^^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
@ -0,0 +1,11 @@
|
||||
error[E0133]: call to unsafe function is unsafe and requires unsafe function or block
|
||||
--> $DIR/coerce-unsafe-closure-to-unsafe-fn-ptr.rs:2:31
|
||||
|
|
||||
LL | let _: unsafe fn() = || { ::std::pin::Pin::new_unchecked(&0_u8); };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
|
||||
|
|
||||
= note: consult the function's documentation for information on how to avoid undefined behavior
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0133`.
|
11
src/test/ui/closures/coerce-unsafe-to-closure.stderr
Normal file
11
src/test/ui/closures/coerce-unsafe-to-closure.stderr
Normal file
@ -0,0 +1,11 @@
|
||||
error[E0277]: expected a `FnOnce<(&str,)>` closure, found `unsafe extern "rust-intrinsic" fn(_) -> _ {transmute::<_, _>}`
|
||||
--> $DIR/coerce-unsafe-to-closure.rs:2:44
|
||||
|
|
||||
LL | let x: Option<&[u8]> = Some("foo").map(std::mem::transmute);
|
||||
| ^^^^^^^^^^^^^^^^^^^ expected an `FnOnce<(&str,)>` closure, found `unsafe extern "rust-intrinsic" fn(_) -> _ {transmute::<_, _>}`
|
||||
|
|
||||
= help: the trait `FnOnce<(&str,)>` is not implemented for `unsafe extern "rust-intrinsic" fn(_) -> _ {transmute::<_, _>}`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
49
src/test/ui/consts/const-fn-error.stderr
Normal file
49
src/test/ui/consts/const-fn-error.stderr
Normal file
@ -0,0 +1,49 @@
|
||||
error[E0744]: `for` is not allowed in a `const fn`
|
||||
--> $DIR/const-fn-error.rs:7:5
|
||||
|
|
||||
LL | / for i in 0..x {
|
||||
LL | |
|
||||
LL | |
|
||||
LL | |
|
||||
... |
|
||||
LL | | sum += i;
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
||||
error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
|
||||
--> $DIR/const-fn-error.rs:7:14
|
||||
|
|
||||
LL | for i in 0..x {
|
||||
| ^^^^
|
||||
|
||||
error[E0658]: mutable references are not allowed in constant functions
|
||||
--> $DIR/const-fn-error.rs:7:14
|
||||
|
|
||||
LL | for i in 0..x {
|
||||
| ^^^^
|
||||
|
|
||||
= note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
|
||||
= help: add `#![feature(const_mut_refs)]` to the crate attributes to enable
|
||||
|
||||
error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
|
||||
--> $DIR/const-fn-error.rs:7:14
|
||||
|
|
||||
LL | for i in 0..x {
|
||||
| ^^^^
|
||||
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/const-fn-error.rs:7:14
|
||||
|
|
||||
LL | for i in 0..x {
|
||||
| ^^^^
|
||||
| |
|
||||
| calling non-const function `<std::ops::Range<usize> as IntoIterator>::into_iter`
|
||||
| inside `f` at $DIR/const-fn-error.rs:7:14
|
||||
...
|
||||
LL | let a : [i32; f(X)];
|
||||
| ---- inside `main::{constant#0}` at $DIR/const-fn-error.rs:20:19
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0015, E0080, E0658, E0744.
|
||||
For more information about an error, try `rustc --explain E0015`.
|
28
src/test/ui/consts/issue-44415.stderr
Normal file
28
src/test/ui/consts/issue-44415.stderr
Normal file
@ -0,0 +1,28 @@
|
||||
error[E0391]: cycle detected when simplifying constant for the type system `Foo::bytes::{constant#0}`
|
||||
--> $DIR/issue-44415.rs:6:17
|
||||
|
|
||||
LL | bytes: [u8; unsafe { intrinsics::size_of::<Foo>() }],
|
||||
| ^^^^^^
|
||||
|
|
||||
note: ...which requires simplifying constant for the type system `Foo::bytes::{constant#0}`...
|
||||
--> $DIR/issue-44415.rs:6:17
|
||||
|
|
||||
LL | bytes: [u8; unsafe { intrinsics::size_of::<Foo>() }],
|
||||
| ^^^^^^
|
||||
note: ...which requires const-evaluating + checking `Foo::bytes::{constant#0}`...
|
||||
--> $DIR/issue-44415.rs:6:17
|
||||
|
|
||||
LL | bytes: [u8; unsafe { intrinsics::size_of::<Foo>() }],
|
||||
| ^^^^^^
|
||||
= note: ...which requires computing layout of `Foo`...
|
||||
= note: ...which requires normalizing `[u8; _]`...
|
||||
= note: ...which again requires simplifying constant for the type system `Foo::bytes::{constant#0}`, completing the cycle
|
||||
note: cycle used when checking that `Foo` is well-formed
|
||||
--> $DIR/issue-44415.rs:5:1
|
||||
|
|
||||
LL | struct Foo {
|
||||
| ^^^^^^^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0391`.
|
@ -1,3 +1,4 @@
|
||||
// build-fail
|
||||
// normalize-stderr-64bit "18446744073709551615" -> "SIZE"
|
||||
// normalize-stderr-32bit "4294967295" -> "SIZE"
|
||||
|
25
src/test/ui/consts/issue-55878.stderr
Normal file
25
src/test/ui/consts/issue-55878.stderr
Normal file
@ -0,0 +1,25 @@
|
||||
error[E0080]: values of the type `[u8; SIZE]` are too big for the current architecture
|
||||
--> $SRC_DIR/core/src/mem/mod.rs:LL:COL
|
||||
|
|
||||
LL | intrinsics::size_of::<T>()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| inside `std::mem::size_of::<[u8; SIZE]>` at $SRC_DIR/core/src/mem/mod.rs:LL:COL
|
||||
| inside `main` at $DIR/issue-55878.rs:7:26
|
||||
|
|
||||
::: $DIR/issue-55878.rs:7:26
|
||||
|
|
||||
LL | println!("Size: {}", std::mem::size_of::<[u8; u64::MAX as usize]>());
|
||||
| ----------------------------------------------
|
||||
|
||||
error: erroneous constant used
|
||||
--> $DIR/issue-55878.rs:7:26
|
||||
|
|
||||
LL | println!("Size: {}", std::mem::size_of::<[u8; u64::MAX as usize]>());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ referenced constant has errors
|
||||
|
|
||||
= note: `#[deny(const_err)]` on by default
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0080`.
|
@ -1,3 +1,4 @@
|
||||
// dont-check-compiler-stderr
|
||||
// aux-build:crateresolve1-1.rs
|
||||
// aux-build:crateresolve1-2.rs
|
||||
// aux-build:crateresolve1-3.rs
|
@ -1,7 +1,7 @@
|
||||
// Reject mixing cyclic structure and Drop when using trait
|
||||
// objects to hide the cross-references.
|
||||
//
|
||||
// (Compare against compile-fail/dropck_vec_cycle_checked.rs)
|
||||
// (Compare against ui/span/dropck_vec_cycle_checked.rs)
|
||||
|
||||
use std::cell::Cell;
|
||||
use id::Id;
|
||||
|
4
src/test/ui/extern-flag/empty-extern-arg.stderr
Normal file
4
src/test/ui/extern-flag/empty-extern-arg.stderr
Normal file
@ -0,0 +1,4 @@
|
||||
error: extern location for std does not exist:
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -36,7 +36,7 @@ impl Drop for DropMoveFoo { fn drop(&mut self) { } }
|
||||
fn test0() {
|
||||
// just copy implicitly copyable fields from `f`, no moves
|
||||
// (and thus it is okay that these are Drop; compare against
|
||||
// compile-fail test: borrowck-struct-update-with-dtor.rs).
|
||||
// test ui/borrowck/borrowck-struct-update-with-dtor.rs).
|
||||
|
||||
// Case 1: Nocopyable
|
||||
let f = DropNoFoo::new(1, 2);
|
||||
|
@ -5,4 +5,4 @@ inputs. This investigation was kicked off by #38714, which revealed
|
||||
some pretty deep flaws in the ad-hoc way that we were doing things
|
||||
before.
|
||||
|
||||
See also `src/test/compile-fail/closure-expected-type`.
|
||||
See also `src/test/ui/closure-expected-type`.
|
||||
|
@ -1,6 +1,6 @@
|
||||
// run-pass
|
||||
|
||||
// This test is bogus (i.e., should be compile-fail) during the period
|
||||
// This test is bogus (i.e., should be check-fail) during the period
|
||||
// where #54986 is implemented and #54987 is *not* implemented. For
|
||||
// now: just ignore it
|
||||
//
|
||||
|
@ -1,6 +1,6 @@
|
||||
// run-pass
|
||||
|
||||
// This test is bogus (i.e., should be compile-fail) during the period
|
||||
// This test is bogus (i.e., should be check-fail) during the period
|
||||
// where #54986 is implemented and #54987 is *not* implemented. For
|
||||
// now: just ignore it
|
||||
//
|
||||
|
@ -3,7 +3,7 @@
|
||||
// Demonstrate the use of the unguarded escape hatch with a lifetime param
|
||||
// to assert that destructor will not access any dead data.
|
||||
//
|
||||
// Compare with compile-fail/issue28498-reject-lifetime-param.rs
|
||||
// Compare with ui/span/issue28498-reject-lifetime-param.rs
|
||||
|
||||
#![feature(dropck_eyepatch)]
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
// Demonstrate the use of the unguarded escape hatch with a type param in negative position
|
||||
// to assert that destructor will not access any dead data.
|
||||
//
|
||||
// Compare with compile-fail/issue28498-reject-lifetime-param.rs
|
||||
// Compare with ui/span/issue28498-reject-lifetime-param.rs
|
||||
|
||||
// Demonstrate that a type param in negative position causes dropck to reject code
|
||||
// that might indirectly access previously dropped value.
|
||||
|
@ -3,7 +3,7 @@
|
||||
// Demonstrate the use of the unguarded escape hatch with a trait bound
|
||||
// to assert that destructor will not access any dead data.
|
||||
//
|
||||
// Compare with compile-fail/issue28498-reject-trait-bound.rs
|
||||
// Compare with ui/span/issue28498-reject-trait-bound.rs
|
||||
|
||||
#![feature(dropck_eyepatch)]
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
#![feature(test)]
|
||||
#![allow(unused_mut)] // under NLL we get warning about `x` below: rust-lang/rust#54499
|
||||
|
||||
// This test is bogus (i.e., should be compile-fail) during the period
|
||||
// This test is bogus (i.e., should be check-fail) during the period
|
||||
// where #54986 is implemented and #54987 is *not* implemented. For
|
||||
// now: just ignore it
|
||||
//
|
||||
|
@ -1,3 +1,5 @@
|
||||
// build-fail
|
||||
// dont-check-compiler-stderr
|
||||
// ignore-msvc due to linker-flavor=ld
|
||||
// error-pattern:aFdEfSeVEEE
|
||||
// compile-flags: -C linker-flavor=ld
|
@ -1,3 +1,5 @@
|
||||
// build-fail
|
||||
// dont-check-compiler-stderr
|
||||
// compile-flags: -C linker=llllll -C linker-flavor=ld
|
||||
// error-pattern: linker `llllll` not found
|
||||
|
47
src/test/ui/lint/must_use-in-stdlib-traits.stderr
Normal file
47
src/test/ui/lint/must_use-in-stdlib-traits.stderr
Normal file
@ -0,0 +1,47 @@
|
||||
error: unused implementer of `Iterator` that must be used
|
||||
--> $DIR/must_use-in-stdlib-traits.rs:42:4
|
||||
|
|
||||
LL | iterator();
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/must_use-in-stdlib-traits.rs:1:9
|
||||
|
|
||||
LL | #![deny(unused_must_use)]
|
||||
| ^^^^^^^^^^^^^^^
|
||||
= note: iterators are lazy and do nothing unless consumed
|
||||
|
||||
error: unused implementer of `Future` that must be used
|
||||
--> $DIR/must_use-in-stdlib-traits.rs:43:4
|
||||
|
|
||||
LL | future();
|
||||
| ^^^^^^^^^
|
||||
|
|
||||
= note: futures do nothing unless you `.await` or poll them
|
||||
|
||||
error: unused implementer of `FnOnce` that must be used
|
||||
--> $DIR/must_use-in-stdlib-traits.rs:44:4
|
||||
|
|
||||
LL | square_fn_once();
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: closures are lazy and do nothing unless called
|
||||
|
||||
error: unused implementer of `FnMut` that must be used
|
||||
--> $DIR/must_use-in-stdlib-traits.rs:45:4
|
||||
|
|
||||
LL | square_fn_mut();
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: closures are lazy and do nothing unless called
|
||||
|
||||
error: unused implementer of `Fn` that must be used
|
||||
--> $DIR/must_use-in-stdlib-traits.rs:46:4
|
||||
|
|
||||
LL | square_fn();
|
||||
| ^^^^^^^^^^^^
|
||||
|
|
||||
= note: closures are lazy and do nothing unless called
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
@ -1,3 +1,5 @@
|
||||
// build-fail
|
||||
// dont-check-compiler-stderr
|
||||
// compile-flags: -C codegen-units=2
|
||||
// ignore-emscripten
|
||||
|
@ -1,3 +1,5 @@
|
||||
// build-fail
|
||||
// dont-check-compiler-stderr
|
||||
// ignore-emscripten
|
||||
|
||||
#![feature(llvm_asm)]
|
@ -8,7 +8,7 @@
|
||||
// to it being e.g., a place where the addition of an argument
|
||||
// causes it to go down a code path with subtly different behavior).
|
||||
//
|
||||
// There is a companion test in compile-fail.
|
||||
// There is a companion failing test.
|
||||
|
||||
// compile-flags: --test -C debug_assertions=yes
|
||||
// revisions: std core
|
||||
@ -68,26 +68,26 @@ fn to_format_or_not_to_format() {
|
||||
|
||||
assert!(true, "{}",);
|
||||
|
||||
// assert_eq!(1, 1, "{}",); // see compile-fail
|
||||
// assert_ne!(1, 2, "{}",); // see compile-fail
|
||||
// assert_eq!(1, 1, "{}",); // see check-fail
|
||||
// assert_ne!(1, 2, "{}",); // see check-fail
|
||||
|
||||
debug_assert!(true, "{}",);
|
||||
|
||||
// debug_assert_eq!(1, 1, "{}",); // see compile-fail
|
||||
// debug_assert_ne!(1, 2, "{}",); // see compile-fail
|
||||
// eprint!("{}",); // see compile-fail
|
||||
// eprintln!("{}",); // see compile-fail
|
||||
// format!("{}",); // see compile-fail
|
||||
// format_args!("{}",); // see compile-fail
|
||||
// debug_assert_eq!(1, 1, "{}",); // see check-fail
|
||||
// debug_assert_ne!(1, 2, "{}",); // see check-fail
|
||||
// eprint!("{}",); // see check-fail
|
||||
// eprintln!("{}",); // see check-fail
|
||||
// format!("{}",); // see check-fail
|
||||
// format_args!("{}",); // see check-fail
|
||||
|
||||
if falsum() { panic!("{}",); }
|
||||
|
||||
// print!("{}",); // see compile-fail
|
||||
// println!("{}",); // see compile-fail
|
||||
// unimplemented!("{}",); // see compile-fail
|
||||
// print!("{}",); // see check-fail
|
||||
// println!("{}",); // see check-fail
|
||||
// unimplemented!("{}",); // see check-fail
|
||||
|
||||
if falsum() { unreachable!("{}",); }
|
||||
|
||||
// write!(&mut stdout, "{}",); // see compile-fail
|
||||
// writeln!(&mut stdout, "{}",); // see compile-fail
|
||||
// write!(&mut stdout, "{}",); // see check-fail
|
||||
// writeln!(&mut stdout, "{}",); // see check-fail
|
||||
}
|
||||
|
@ -23,22 +23,28 @@ LL | debug_assert_ne!(1, 2, "{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:54:19
|
||||
--> $DIR/macro-comma-behavior.rs:52:19
|
||||
|
|
||||
LL | format_args!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:72:21
|
||||
--> $DIR/macro-comma-behavior.rs:68:21
|
||||
|
|
||||
LL | unimplemented!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:81:24
|
||||
--> $DIR/macro-comma-behavior.rs:77:24
|
||||
|
|
||||
LL | write!(f, "{}",)?;
|
||||
| ^^
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:81:26
|
||||
|
|
||||
LL | writeln!(f, "{}",)?;
|
||||
| ^^
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
|
||||
|
@ -40,10 +40,8 @@ fn to_format_or_not_to_format() {
|
||||
}
|
||||
|
||||
#[cfg(std)] {
|
||||
// FIXME: compile-fail says "expected error not found" even though
|
||||
// rustc does emit an error
|
||||
// eprintln!("{}",);
|
||||
// <DISABLED> [std]~^ ERROR no arguments
|
||||
eprintln!("{}",);
|
||||
//[std]~^ ERROR no arguments
|
||||
}
|
||||
|
||||
#[cfg(std)] {
|
||||
@ -63,10 +61,8 @@ fn to_format_or_not_to_format() {
|
||||
}
|
||||
|
||||
#[cfg(std)] {
|
||||
// FIXME: compile-fail says "expected error not found" even though
|
||||
// rustc does emit an error
|
||||
// println!("{}",);
|
||||
// <DISABLED> [std]~^ ERROR no arguments
|
||||
println!("{}",);
|
||||
//[std]~^ ERROR no arguments
|
||||
}
|
||||
|
||||
unimplemented!("{}",);
|
||||
@ -82,11 +78,9 @@ fn to_format_or_not_to_format() {
|
||||
//[core]~^ ERROR no arguments
|
||||
//[std]~^^ ERROR no arguments
|
||||
|
||||
// FIXME: compile-fail says "expected error not found" even though
|
||||
// rustc does emit an error
|
||||
// writeln!(f, "{}",)?;
|
||||
// <DISABLED> [core]~^ ERROR no arguments
|
||||
// <DISABLED> [std]~^^ ERROR no arguments
|
||||
writeln!(f, "{}",)?;
|
||||
//[core]~^ ERROR no arguments
|
||||
//[std]~^^ ERROR no arguments
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
@ -29,34 +29,52 @@ LL | eprint!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:50:18
|
||||
--> $DIR/macro-comma-behavior.rs:43:20
|
||||
|
|
||||
LL | eprintln!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:48:18
|
||||
|
|
||||
LL | format!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:54:19
|
||||
--> $DIR/macro-comma-behavior.rs:52:19
|
||||
|
|
||||
LL | format_args!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:61:17
|
||||
--> $DIR/macro-comma-behavior.rs:59:17
|
||||
|
|
||||
LL | print!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:72:21
|
||||
--> $DIR/macro-comma-behavior.rs:64:19
|
||||
|
|
||||
LL | println!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:68:21
|
||||
|
|
||||
LL | unimplemented!("{}",);
|
||||
| ^^
|
||||
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:81:24
|
||||
--> $DIR/macro-comma-behavior.rs:77:24
|
||||
|
|
||||
LL | write!(f, "{}",)?;
|
||||
| ^^
|
||||
|
||||
error: aborting due to 10 previous errors
|
||||
error: 1 positional argument in format string, but no arguments were given
|
||||
--> $DIR/macro-comma-behavior.rs:81:26
|
||||
|
|
||||
LL | writeln!(f, "{}",)?;
|
||||
| ^^
|
||||
|
||||
error: aborting due to 13 previous errors
|
||||
|
||||
|
@ -68,7 +68,7 @@ fn column() {
|
||||
let _ = column!();
|
||||
}
|
||||
|
||||
// compile_error! is in a companion to this test in compile-fail
|
||||
// compile_error! is in a check-fail companion to this test
|
||||
|
||||
#[test]
|
||||
fn concat() {
|
||||
|
10
src/test/ui/macros/not-utf8.stderr
Normal file
10
src/test/ui/macros/not-utf8.stderr
Normal file
@ -0,0 +1,10 @@
|
||||
error: couldn't read $DIR/not-utf8.bin: stream did not contain valid UTF-8
|
||||
--> $DIR/not-utf8.rs:4:5
|
||||
|
|
||||
LL | include!("not-utf8.bin")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
16
src/test/ui/meta/meta-expected-error-wrong-rev.a.stderr
Normal file
16
src/test/ui/meta/meta-expected-error-wrong-rev.a.stderr
Normal file
@ -0,0 +1,16 @@
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/meta-expected-error-wrong-rev.rs:13:18
|
||||
|
|
||||
LL | let x: u32 = 22_usize;
|
||||
| --- ^^^^^^^^ expected `u32`, found `usize`
|
||||
| |
|
||||
| expected due to this
|
||||
|
|
||||
help: change the type of the numeric literal from `usize` to `u32`
|
||||
|
|
||||
LL | let x: u32 = 22_u32;
|
||||
| ^^^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
57
src/test/ui/never_type/issue-52443.stderr
Normal file
57
src/test/ui/never_type/issue-52443.stderr
Normal file
@ -0,0 +1,57 @@
|
||||
warning: denote infinite loops with `loop { ... }`
|
||||
--> $DIR/issue-52443.rs:6:11
|
||||
|
|
||||
LL | [(); {while true {break}; 0}];
|
||||
| ^^^^^^^^^^ help: use `loop`
|
||||
|
|
||||
= note: `#[warn(while_true)]` on by default
|
||||
|
||||
error[E0744]: `for` is not allowed in a `const`
|
||||
--> $DIR/issue-52443.rs:9:12
|
||||
|
|
||||
LL | [(); { for _ in 0usize.. {}; 0}];
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-52443.rs:2:10
|
||||
|
|
||||
LL | [(); & { loop { continue } } ];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| expected `usize`, found reference
|
||||
| help: consider removing the borrow: `{ loop { continue } }`
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found reference `&_`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-52443.rs:4:17
|
||||
|
|
||||
LL | [(); loop { break }];
|
||||
| ^^^^^
|
||||
| |
|
||||
| expected `usize`, found `()`
|
||||
| help: give it a value of the expected type: `break 42`
|
||||
|
||||
error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
|
||||
--> $DIR/issue-52443.rs:9:21
|
||||
|
|
||||
LL | [(); { for _ in 0usize.. {}; 0}];
|
||||
| ^^^^^^^^
|
||||
|
||||
error[E0764]: mutable references are not allowed in constants
|
||||
--> $DIR/issue-52443.rs:9:21
|
||||
|
|
||||
LL | [(); { for _ in 0usize.. {}; 0}];
|
||||
| ^^^^^^^^ `&mut` is only allowed in `const fn`
|
||||
|
||||
error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
|
||||
--> $DIR/issue-52443.rs:9:21
|
||||
|
|
||||
LL | [(); { for _ in 0usize.. {}; 0}];
|
||||
| ^^^^^^^^
|
||||
|
||||
error: aborting due to 6 previous errors; 1 warning emitted
|
||||
|
||||
Some errors have detailed explanations: E0015, E0308, E0744, E0764.
|
||||
For more information about an error, try `rustc --explain E0015`.
|
@ -23,7 +23,7 @@ fn b<'a>(t: &'a Box<dyn Test>, mut ss: SomeStruct<'a>) {
|
||||
ss.u = t;
|
||||
}
|
||||
|
||||
// see also compile-fail/object-lifetime-default-from-rptr-box-error.rs
|
||||
// see also ui/object-lifetime/object-lifetime-default-from-rptr-box-error.rs
|
||||
|
||||
fn d<'a>(t: &'a Box<dyn Test+'a>, mut ss: SomeStruct<'a>) {
|
||||
ss.u = t;
|
||||
|
@ -1,3 +1,4 @@
|
||||
// dont-check-compiler-stderr
|
||||
// error-pattern: `#[panic_handler]` function required, but not found
|
||||
|
||||
#![feature(lang_items)]
|
@ -1,3 +1,4 @@
|
||||
// dont-check-compiler-stderr
|
||||
// aux-build:some-panic-impl.rs
|
||||
|
||||
#![feature(lang_items)]
|
19
src/test/ui/panic-handler/weak-lang-item.stderr
Normal file
19
src/test/ui/panic-handler/weak-lang-item.stderr
Normal file
@ -0,0 +1,19 @@
|
||||
error[E0259]: the name `core` is defined multiple times
|
||||
--> $DIR/weak-lang-item.rs:8:1
|
||||
|
|
||||
LL | extern crate core;
|
||||
| ^^^^^^^^^^^^^^^^^^ `core` reimported here
|
||||
|
|
||||
= note: `core` must be defined only once in the type namespace of this module
|
||||
help: you can use `as` to change the binding name of the import
|
||||
|
|
||||
LL | extern crate core as other_core;
|
||||
|
|
||||
|
||||
error: `#[panic_handler]` function required, but not found
|
||||
|
||||
error: language item required, but not found: `eh_personality`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0259`.
|
@ -1,3 +1,4 @@
|
||||
// dont-check-compiler-stderr
|
||||
// aux-build:needs-panic-runtime.rs
|
||||
// aux-build:depends.rs
|
||||
// error-pattern:cannot depend on a crate that needs a panic runtime
|
@ -1,3 +1,5 @@
|
||||
// build-fail
|
||||
// dont-check-compiler-stderr
|
||||
// error-pattern:cannot link together two panic runtimes: panic_runtime_unwind and panic_runtime_unwind2
|
||||
// ignore-tidy-linelength
|
||||
// aux-build:panic-runtime-unwind.rs
|
@ -1,6 +1,7 @@
|
||||
// Tests that the compiler errors if the user tries to turn off unwind tables
|
||||
// when they are required.
|
||||
//
|
||||
// dont-check-compiler-stderr
|
||||
// compile-flags: -C panic=unwind -C force-unwind-tables=no
|
||||
// ignore-tidy-linelength
|
||||
//
|
@ -1,3 +1,5 @@
|
||||
// build-fail
|
||||
// dont-check-compiler-stderr
|
||||
// error-pattern:is not compiled with this crate's panic strategy `abort`
|
||||
// aux-build:panic-runtime-unwind.rs
|
||||
// compile-flags:-C panic=abort
|
@ -1,3 +1,5 @@
|
||||
// build-fail
|
||||
// dont-check-compiler-stderr
|
||||
// error-pattern:is not compiled with this crate's panic strategy `abort`
|
||||
// aux-build:panic-runtime-unwind.rs
|
||||
// aux-build:wants-panic-runtime-unwind.rs
|
@ -0,0 +1,44 @@
|
||||
error: variant `JuniorGrade` is private and cannot be re-exported
|
||||
--> $DIR/issue-46209-private-enum-variant-reexport.rs:6:32
|
||||
|
|
||||
LL | pub use self::Lieutenant::{JuniorGrade, Full};
|
||||
| ^^^^^^^^^^^
|
||||
...
|
||||
LL | enum Lieutenant {
|
||||
| --------------- help: consider making the enum public: `pub enum Lieutenant`
|
||||
|
||||
error: variant `Full` is private and cannot be re-exported
|
||||
--> $DIR/issue-46209-private-enum-variant-reexport.rs:6:45
|
||||
|
|
||||
LL | pub use self::Lieutenant::{JuniorGrade, Full};
|
||||
| ^^^^
|
||||
|
||||
error: enum is private and its variants cannot be re-exported
|
||||
--> $DIR/issue-46209-private-enum-variant-reexport.rs:4:13
|
||||
|
|
||||
LL | pub use self::Professor::*;
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
...
|
||||
LL | enum Professor {
|
||||
| -------------- help: consider making the enum public: `pub enum Professor`
|
||||
|
||||
error: enum is private and its variants cannot be re-exported
|
||||
--> $DIR/issue-46209-private-enum-variant-reexport.rs:9:13
|
||||
|
|
||||
LL | pub use self::PettyOfficer::*;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
||||
...
|
||||
LL | pub(in rank) enum PettyOfficer {
|
||||
| ------------------------------ help: consider making the enum public: `pub enum PettyOfficer`
|
||||
|
||||
error: enum is private and its variants cannot be re-exported
|
||||
--> $DIR/issue-46209-private-enum-variant-reexport.rs:11:13
|
||||
|
|
||||
LL | pub use self::Crewman::*;
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
...
|
||||
LL | crate enum Crewman {
|
||||
| ------------------ help: consider making the enum public: `pub enum Crewman`
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
@ -117,7 +117,7 @@ pub fn main() {
|
||||
let m : Box<dyn Trait> = make_val();
|
||||
// assert_eq!(object_invoke1(&*m), (4,5));
|
||||
// ~~~~~~~~~~~~~~~~~~~
|
||||
// this call yields a compilation error; see compile-fail/dropck-object-cycle.rs
|
||||
// this call yields a compilation error; see ui/span/dropck-object-cycle.rs
|
||||
// for details.
|
||||
assert_eq!(object_invoke2(&*m), 5);
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
// Test that a type which is contravariant with respect to its region
|
||||
// parameter compiles successfully when used in a contravariant way.
|
||||
//
|
||||
// Note: see compile-fail/variance-regions-*.rs for the tests that check that the
|
||||
// Note: see ui/variance/variance-regions-*.rs for the tests that check that the
|
||||
// variance inference works in the first place.
|
||||
|
||||
// pretty-expanded FIXME #23616
|
||||
|
@ -3,7 +3,7 @@
|
||||
// Test that a type which is covariant with respect to its region
|
||||
// parameter is successful when used in a covariant way.
|
||||
//
|
||||
// Note: see compile-fail/variance-regions-*.rs for the tests that
|
||||
// Note: see ui/variance/variance-regions-*.rs for the tests that
|
||||
// check that the variance inference works in the first place.
|
||||
|
||||
// This is covariant with respect to 'a, meaning that
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Reject mixing cyclic structure and Drop when using fixed length
|
||||
// arrays.
|
||||
//
|
||||
// (Compare against compile-fail/dropck_vec_cycle_checked.rs)
|
||||
// (Compare against ui/span/dropck_vec_cycle_checked.rs)
|
||||
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Reject mixing cyclic structure and Drop when using Vec.
|
||||
//
|
||||
// (Compare against compile-fail/dropck_arr_cycle_checked.rs)
|
||||
// (Compare against ui/span/dropck_arr_cycle_checked.rs)
|
||||
|
||||
use std::cell::Cell;
|
||||
use id::Id;
|
||||
|
@ -4,7 +4,7 @@
|
||||
#![feature(specialization)] //~ WARN the feature `specialization` is incomplete
|
||||
|
||||
// Make sure we *can* project non-defaulted associated types
|
||||
// cf compile-fail/specialization-default-projection.rs
|
||||
// cf ui/specialization/specialization-default-projection.rs
|
||||
|
||||
// First, do so without any use of specialization
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
// compile-fail
|
||||
#![feature(specialization)]
|
||||
//~^ WARN the feature `specialization` is incomplete
|
||||
|
26
src/test/ui/specialization/issue-50452-fail.stderr
Normal file
26
src/test/ui/specialization/issue-50452-fail.stderr
Normal file
@ -0,0 +1,26 @@
|
||||
warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
|
||||
--> $DIR/issue-50452-fail.rs:1:12
|
||||
|
|
||||
LL | #![feature(specialization)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(incomplete_features)]` on by default
|
||||
= note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
|
||||
= help: consider using `min_specialization` instead, which is more stable and complete
|
||||
|
||||
error[E0520]: `foo` specializes an item from a parent `impl`, but that item is not marked `default`
|
||||
--> $DIR/issue-50452-fail.rs:10:5
|
||||
|
|
||||
LL | fn foo() {}
|
||||
| ^^^^^^^^^^^ cannot specialize default item `foo`
|
||||
...
|
||||
LL | / impl<T> Foo for T {
|
||||
LL | | fn foo() {}
|
||||
LL | | }
|
||||
| |_- parent `impl` is here
|
||||
|
|
||||
= note: to specialize, `foo` in the parent `impl` must be marked `default`
|
||||
|
||||
error: aborting due to previous error; 1 warning emitted
|
||||
|
||||
For more information about this error, try `rustc --explain E0520`.
|
@ -4,7 +4,7 @@
|
||||
#![feature(specialization)] //~ WARN the feature `specialization` is incomplete
|
||||
|
||||
// Make sure we *can* project non-defaulted associated types
|
||||
// cf compile-fail/specialization-default-projection.rs
|
||||
// cf ui/specialization/specialization-default-projection.rs
|
||||
|
||||
// First, do so without any use of specialization
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Issue 23030: Workaround overflowing discriminant
|
||||
// with explicit assignments.
|
||||
|
||||
// See also compile-fail/overflow-discrim.rs, which shows what
|
||||
// See also ui/discrim/discrim-overflow.rs, which shows what
|
||||
// happens if you leave the OhNo explicit cases out here.
|
||||
|
||||
fn f_i8() {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user