cleaned up some tests

This commit is contained in:
Kivooeo 2025-06-28 22:59:17 +05:00
parent 3d81af8c55
commit c240566561
9 changed files with 45 additions and 17 deletions

View file

@ -1,10 +1,12 @@
//! Test that -Z maximal-hir-to-mir-coverage flag is accepted.
//!
//! Original PR: https://github.com/rust-lang/rust/pull/105286
//@ compile-flags: -Zmaximal-hir-to-mir-coverage
//@ run-pass
// Just making sure this flag is accepted and doesn't crash the compiler
fn main() {
let x = 1;
let y = x + 1;
println!("{y}");
let x = 1;
let y = x + 1;
println!("{y}");
}

View file

@ -1,3 +1,7 @@
//! Test the `missing_debug_implementations` lint that warns about public types without Debug.
//!
//! See https://github.com/rust-lang/rust/issues/20855
//@ compile-flags: --crate-type lib
#![deny(missing_debug_implementations)]
#![allow(unused)]
@ -10,7 +14,6 @@ pub enum A {} //~ ERROR type does not implement `Debug`
pub enum B {}
pub enum C {}
impl fmt::Debug for C {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
Ok(())
@ -23,15 +26,14 @@ pub struct Foo; //~ ERROR type does not implement `Debug`
pub struct Bar;
pub struct Baz;
impl fmt::Debug for Baz {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
Ok(())
}
}
// Private types should not trigger the lint
struct PrivateStruct;
enum PrivateEnum {}
#[derive(Debug)]

View file

@ -1,17 +1,17 @@
error: type does not implement `Debug`; consider adding `#[derive(Debug)]` or a manual implementation
--> $DIR/missing_debug_impls.rs:7:1
--> $DIR/missing-debug-implementations-lint.rs:11:1
|
LL | pub enum A {}
| ^^^^^^^^^^^^^
|
note: the lint level is defined here
--> $DIR/missing_debug_impls.rs:2:9
--> $DIR/missing-debug-implementations-lint.rs:6:9
|
LL | #![deny(missing_debug_implementations)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: type does not implement `Debug`; consider adding `#[derive(Debug)]` or a manual implementation
--> $DIR/missing_debug_impls.rs:20:1
--> $DIR/missing-debug-implementations-lint.rs:23:1
|
LL | pub struct Foo;
| ^^^^^^^^^^^^^^^

View file

@ -1,7 +1,15 @@
//! This test checks that when there's a type mismatch between a function item and
//! a function pointer, the error message focuses on the actual type difference
//! (return types, argument types) rather than the confusing "pointer vs item" distinction.
//!
//! See https://github.com/rust-lang/rust/issues/127263
fn bar() {}
fn foo(x: i32) -> u32 {
0
}
fn main() {
let b: fn() -> u32 = bar; //~ ERROR mismatched types [E0308]
let f: fn(i32) = foo; //~ ERROR mismatched types [E0308]

View file

@ -1,5 +1,5 @@
error[E0308]: mismatched types
--> $DIR/method-output-diff-issue-127263.rs:6:26
--> $DIR/fn-pointer-mismatch-diagnostics.rs:14:26
|
LL | let b: fn() -> u32 = bar;
| ----------- ^^^ expected fn pointer, found fn item
@ -10,7 +10,7 @@ LL | let b: fn() -> u32 = bar;
found fn item `fn() -> () {bar}`
error[E0308]: mismatched types
--> $DIR/method-output-diff-issue-127263.rs:7:22
--> $DIR/fn-pointer-mismatch-diagnostics.rs:15:22
|
LL | let f: fn(i32) = foo;
| ------- ^^^ expected fn pointer, found fn item

View file

@ -1,3 +1,12 @@
//! Test that ?Trait bounds are forbidden in supertraits and trait object types.
//!
//! While `?Sized` and other maybe bounds are allowed in type parameter bounds and where clauses,
//! they are explicitly forbidden in certain syntactic positions:
//! - As supertraits in trait definitions
//! - In trait object type expressions
//!
//! See https://github.com/rust-lang/rust/issues/20503
trait Tr: ?Sized {}
//~^ ERROR `?Trait` is not permitted in supertraits

View file

@ -1,5 +1,5 @@
error[E0658]: `?Trait` is not permitted in supertraits
--> $DIR/maybe-bounds.rs:1:11
--> $DIR/maybe-trait-bounds-forbidden-locations.rs:10:11
|
LL | trait Tr: ?Sized {}
| ^^^^^^
@ -9,7 +9,7 @@ LL | trait Tr: ?Sized {}
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: `?Trait` is not permitted in trait object types
--> $DIR/maybe-bounds.rs:4:20
--> $DIR/maybe-trait-bounds-forbidden-locations.rs:13:20
|
LL | type A1 = dyn Tr + (?Sized);
| ^^^^^^^^
@ -18,7 +18,7 @@ LL | type A1 = dyn Tr + (?Sized);
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: `?Trait` is not permitted in trait object types
--> $DIR/maybe-bounds.rs:6:28
--> $DIR/maybe-trait-bounds-forbidden-locations.rs:15:28
|
LL | type A2 = dyn for<'a> Tr + (?Sized);
| ^^^^^^^^

View file

@ -1,9 +1,16 @@
//! Test that type arguments are properly rejected on modules.
//!
//! Related PR: https://github.com/rust-lang/rust/pull/56225 (RFC 2338 implementation)
mod Mod {
pub struct FakeVariant<T>(pub T);
}
fn main() {
// This should work fine - normal generic struct constructor
Mod::FakeVariant::<i32>(0);
// This should error - type arguments not allowed on modules
Mod::<i32>::FakeVariant(0);
//~^ ERROR type arguments are not allowed on module `Mod` [E0109]
}

View file

@ -1,5 +1,5 @@
error[E0109]: type arguments are not allowed on module `Mod`
--> $DIR/mod-subitem-as-enum-variant.rs:7:11
--> $DIR/module-type-args-error.rs:14:11
|
LL | Mod::<i32>::FakeVariant(0);
| --- ^^^ type argument not allowed