From 986f1c9b692665d4e7388062b8d8536acb0c99fd Mon Sep 17 00:00:00 2001 From: Kivooeo Date: Tue, 1 Jul 2025 18:21:05 +0500 Subject: [PATCH 1/2] moved tests --- .../allocator-reallocate-overflow.rs} | 0 .../auto-trait-phantom-data-bounds.rs} | 0 .../auto-trait-phantom-data-bounds.stderr} | 0 .../binop-evaluation-order-primitive.rs} | 0 .../basic-ptr-coercions.rs} | 0 .../ptr-mutability-errors.rs} | 0 .../ptr-mutability-errors.stderr} | 0 .../stdout-stderr-separation.rs} | 0 .../closure-parameter-type-inference-mismatch.rs} | 0 ...losure-parameter-type-inference-mismatch.stderr} | 0 .../type-error-diagnostic-in-complex-return.rs} | 0 .../type-error-diagnostic-in-complex-return.stderr} | 0 .../doc-comment-in-generic.rs} | 0 .../raw/raw-string-literals.rs} | Bin .../pattern-ref-bindings-reassignment.rs} | 0 .../pattern-ref-bindings-reassignment.stderr} | 0 .../print-calling-conventions.rs | 0 .../print-calling-conventions.stdout | 0 .../fs-nul-byte-paths.rs} | 0 .../nested-generic-traits-performance.rs} | 0 20 files changed, 0 insertions(+), 0 deletions(-) rename tests/ui/{realloc-16687.rs => allocator/allocator-reallocate-overflow.rs} (100%) rename tests/ui/{phantom-auto-trait.rs => auto-traits/auto-trait-phantom-data-bounds.rs} (100%) rename tests/ui/{phantom-auto-trait.stderr => auto-traits/auto-trait-phantom-data-bounds.stderr} (100%) rename tests/ui/{primitive-binop-lhs-mut.rs => binop/binop-evaluation-order-primitive.rs} (100%) rename tests/ui/{ptr-coercion-rpass.rs => coercion/basic-ptr-coercions.rs} (100%) rename tests/ui/{ptr-coercion.rs => coercion/ptr-mutability-errors.rs} (100%) rename tests/ui/{ptr-coercion.stderr => coercion/ptr-mutability-errors.stderr} (100%) rename tests/ui/{print-stdout-eprint-stderr.rs => io-checks/stdout-stderr-separation.rs} (100%) rename tests/ui/{pptypedef.rs => mismatched_types/closure-parameter-type-inference-mismatch.rs} (100%) rename tests/ui/{pptypedef.stderr => mismatched_types/closure-parameter-type-inference-mismatch.stderr} (100%) rename tests/ui/{point-to-type-err-cause-on-impl-trait-return-2.rs => mismatched_types/type-error-diagnostic-in-complex-return.rs} (100%) rename tests/ui/{point-to-type-err-cause-on-impl-trait-return-2.stderr => mismatched_types/type-error-diagnostic-in-complex-return.stderr} (100%) rename tests/ui/{query-visibility.rs => parser/doc-comment-in-generic.rs} (100%) rename tests/ui/{raw-str.rs => parser/raw/raw-string-literals.rs} (100%) rename tests/ui/{reassign-ref-mut.rs => pattern/move-ref-patterns/pattern-ref-bindings-reassignment.rs} (100%) rename tests/ui/{reassign-ref-mut.stderr => pattern/move-ref-patterns/pattern-ref-bindings-reassignment.stderr} (100%) rename tests/ui/{ => print-request}/print-calling-conventions.rs (100%) rename tests/ui/{ => print-request}/print-calling-conventions.stdout (100%) rename tests/ui/{paths-containing-nul.rs => std/fs-nul-byte-paths.rs} (100%) rename tests/ui/{project-cache-issue-31849.rs => typeck/nested-generic-traits-performance.rs} (100%) diff --git a/tests/ui/realloc-16687.rs b/tests/ui/allocator/allocator-reallocate-overflow.rs similarity index 100% rename from tests/ui/realloc-16687.rs rename to tests/ui/allocator/allocator-reallocate-overflow.rs diff --git a/tests/ui/phantom-auto-trait.rs b/tests/ui/auto-traits/auto-trait-phantom-data-bounds.rs similarity index 100% rename from tests/ui/phantom-auto-trait.rs rename to tests/ui/auto-traits/auto-trait-phantom-data-bounds.rs diff --git a/tests/ui/phantom-auto-trait.stderr b/tests/ui/auto-traits/auto-trait-phantom-data-bounds.stderr similarity index 100% rename from tests/ui/phantom-auto-trait.stderr rename to tests/ui/auto-traits/auto-trait-phantom-data-bounds.stderr diff --git a/tests/ui/primitive-binop-lhs-mut.rs b/tests/ui/binop/binop-evaluation-order-primitive.rs similarity index 100% rename from tests/ui/primitive-binop-lhs-mut.rs rename to tests/ui/binop/binop-evaluation-order-primitive.rs diff --git a/tests/ui/ptr-coercion-rpass.rs b/tests/ui/coercion/basic-ptr-coercions.rs similarity index 100% rename from tests/ui/ptr-coercion-rpass.rs rename to tests/ui/coercion/basic-ptr-coercions.rs diff --git a/tests/ui/ptr-coercion.rs b/tests/ui/coercion/ptr-mutability-errors.rs similarity index 100% rename from tests/ui/ptr-coercion.rs rename to tests/ui/coercion/ptr-mutability-errors.rs diff --git a/tests/ui/ptr-coercion.stderr b/tests/ui/coercion/ptr-mutability-errors.stderr similarity index 100% rename from tests/ui/ptr-coercion.stderr rename to tests/ui/coercion/ptr-mutability-errors.stderr diff --git a/tests/ui/print-stdout-eprint-stderr.rs b/tests/ui/io-checks/stdout-stderr-separation.rs similarity index 100% rename from tests/ui/print-stdout-eprint-stderr.rs rename to tests/ui/io-checks/stdout-stderr-separation.rs diff --git a/tests/ui/pptypedef.rs b/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.rs similarity index 100% rename from tests/ui/pptypedef.rs rename to tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.rs diff --git a/tests/ui/pptypedef.stderr b/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.stderr similarity index 100% rename from tests/ui/pptypedef.stderr rename to tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.stderr diff --git a/tests/ui/point-to-type-err-cause-on-impl-trait-return-2.rs b/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.rs similarity index 100% rename from tests/ui/point-to-type-err-cause-on-impl-trait-return-2.rs rename to tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.rs diff --git a/tests/ui/point-to-type-err-cause-on-impl-trait-return-2.stderr b/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.stderr similarity index 100% rename from tests/ui/point-to-type-err-cause-on-impl-trait-return-2.stderr rename to tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.stderr diff --git a/tests/ui/query-visibility.rs b/tests/ui/parser/doc-comment-in-generic.rs similarity index 100% rename from tests/ui/query-visibility.rs rename to tests/ui/parser/doc-comment-in-generic.rs diff --git a/tests/ui/raw-str.rs b/tests/ui/parser/raw/raw-string-literals.rs similarity index 100% rename from tests/ui/raw-str.rs rename to tests/ui/parser/raw/raw-string-literals.rs diff --git a/tests/ui/reassign-ref-mut.rs b/tests/ui/pattern/move-ref-patterns/pattern-ref-bindings-reassignment.rs similarity index 100% rename from tests/ui/reassign-ref-mut.rs rename to tests/ui/pattern/move-ref-patterns/pattern-ref-bindings-reassignment.rs diff --git a/tests/ui/reassign-ref-mut.stderr b/tests/ui/pattern/move-ref-patterns/pattern-ref-bindings-reassignment.stderr similarity index 100% rename from tests/ui/reassign-ref-mut.stderr rename to tests/ui/pattern/move-ref-patterns/pattern-ref-bindings-reassignment.stderr diff --git a/tests/ui/print-calling-conventions.rs b/tests/ui/print-request/print-calling-conventions.rs similarity index 100% rename from tests/ui/print-calling-conventions.rs rename to tests/ui/print-request/print-calling-conventions.rs diff --git a/tests/ui/print-calling-conventions.stdout b/tests/ui/print-request/print-calling-conventions.stdout similarity index 100% rename from tests/ui/print-calling-conventions.stdout rename to tests/ui/print-request/print-calling-conventions.stdout diff --git a/tests/ui/paths-containing-nul.rs b/tests/ui/std/fs-nul-byte-paths.rs similarity index 100% rename from tests/ui/paths-containing-nul.rs rename to tests/ui/std/fs-nul-byte-paths.rs diff --git a/tests/ui/project-cache-issue-31849.rs b/tests/ui/typeck/nested-generic-traits-performance.rs similarity index 100% rename from tests/ui/project-cache-issue-31849.rs rename to tests/ui/typeck/nested-generic-traits-performance.rs From b28806da237176468ab2afae42b51fe43ad416e6 Mon Sep 17 00:00:00 2001 From: Kivooeo Date: Tue, 1 Jul 2025 18:24:12 +0500 Subject: [PATCH 2/2] cleaned up some tests --- ...e-overflow.rs => alloc-shrink-oob-read.rs} | 10 +-- .../auto-trait-phantom-data-bounds.rs | 6 +- .../auto-trait-phantom-data-bounds.stderr | 18 ++--- .../binop/binop-evaluation-order-primitive.rs | 11 ++- tests/ui/coercion/basic-ptr-coercions.rs | 25 +++---- tests/ui/coercion/ptr-mutability-errors.rs | 3 +- .../ui/coercion/ptr-mutability-errors.stderr | 6 +- .../ui/io-checks/stdout-stderr-separation.rs | 3 + ...osure-parameter-type-inference-mismatch.rs | 26 +++++-- ...e-parameter-type-inference-mismatch.stderr | 28 +++---- ...type-error-diagnostic-in-complex-return.rs | 6 +- ...-error-diagnostic-in-complex-return.stderr | 2 +- tests/ui/parser/doc-comment-in-generic.rs | 10 ++- tests/ui/parser/raw/raw-string-literals.rs | Bin 848 -> 998 bytes .../pattern-ref-bindings-reassignment.rs | 26 ++++--- .../pattern-ref-bindings-reassignment.stderr | 5 +- .../print-calling-conventions.rs | 2 + tests/ui/std/fs-nul-byte-paths.rs | 20 +++-- .../nested-generic-traits-performance.rs | 69 +++++++++++------- 19 files changed, 168 insertions(+), 108 deletions(-) rename tests/ui/allocator/{allocator-reallocate-overflow.rs => alloc-shrink-oob-read.rs} (96%) diff --git a/tests/ui/allocator/allocator-reallocate-overflow.rs b/tests/ui/allocator/alloc-shrink-oob-read.rs similarity index 96% rename from tests/ui/allocator/allocator-reallocate-overflow.rs rename to tests/ui/allocator/alloc-shrink-oob-read.rs index 43810a469dfec..b9edfca3b7b51 100644 --- a/tests/ui/allocator/allocator-reallocate-overflow.rs +++ b/tests/ui/allocator/alloc-shrink-oob-read.rs @@ -1,13 +1,13 @@ +//! Sanity check for out-of-bounds read caused by copying the entire original buffer on shrink. +//! +//! Regression test for: + //@ run-pass -// alloc::heap::reallocate test. -// -// Ideally this would be revised to use no_std, but for now it serves -// well enough to reproduce (and illustrate) the bug from #16687. #![feature(allocator_api)] #![feature(slice_ptr_get)] -use std::alloc::{handle_alloc_error, Allocator, Global, Layout}; +use std::alloc::{Allocator, Global, Layout, handle_alloc_error}; use std::ptr::{self, NonNull}; fn main() { diff --git a/tests/ui/auto-traits/auto-trait-phantom-data-bounds.rs b/tests/ui/auto-traits/auto-trait-phantom-data-bounds.rs index 0172ca335c32a..6d1c4c87fad47 100644 --- a/tests/ui/auto-traits/auto-trait-phantom-data-bounds.rs +++ b/tests/ui/auto-traits/auto-trait-phantom-data-bounds.rs @@ -1,9 +1,9 @@ -// Ensure that auto trait checks `T` when it encounters a `PhantomData` field, instead of -// checking the `PhantomData` type itself (which almost always implements an auto trait). +//! Ensure that auto trait checks `T` when it encounters a `PhantomData` field, instead of +//! checking the `PhantomData` type itself (which almost always implements an auto trait). #![feature(auto_traits)] -use std::marker::{PhantomData}; +use std::marker::PhantomData; unsafe auto trait Zen {} diff --git a/tests/ui/auto-traits/auto-trait-phantom-data-bounds.stderr b/tests/ui/auto-traits/auto-trait-phantom-data-bounds.stderr index ffd4c3a0e1ad0..56c2e8ff257b7 100644 --- a/tests/ui/auto-traits/auto-trait-phantom-data-bounds.stderr +++ b/tests/ui/auto-traits/auto-trait-phantom-data-bounds.stderr @@ -1,5 +1,5 @@ error[E0277]: `T` cannot be shared between threads safely - --> $DIR/phantom-auto-trait.rs:21:12 + --> $DIR/auto-trait-phantom-data-bounds.rs:21:12 | LL | is_zen(x) | ------ ^ `T` cannot be shared between threads safely @@ -7,19 +7,19 @@ LL | is_zen(x) | required by a bound introduced by this call | note: required for `&T` to implement `Zen` - --> $DIR/phantom-auto-trait.rs:10:24 + --> $DIR/auto-trait-phantom-data-bounds.rs:10:24 | LL | unsafe impl<'a, T: 'a> Zen for &'a T where T: Sync {} | ^^^ ^^^^^ ---- unsatisfied trait bound introduced here note: required because it appears within the type `PhantomData<&T>` --> $SRC_DIR/core/src/marker.rs:LL:COL note: required because it appears within the type `Guard<'_, T>` - --> $DIR/phantom-auto-trait.rs:12:8 + --> $DIR/auto-trait-phantom-data-bounds.rs:12:8 | LL | struct Guard<'a, T: 'a> { | ^^^^^ note: required by a bound in `is_zen` - --> $DIR/phantom-auto-trait.rs:18:14 + --> $DIR/auto-trait-phantom-data-bounds.rs:18:14 | LL | fn is_zen(_: T) {} | ^^^ required by this bound in `is_zen` @@ -29,7 +29,7 @@ LL | fn not_sync(x: Guard) { | +++++++++++++++++++ error[E0277]: `T` cannot be shared between threads safely - --> $DIR/phantom-auto-trait.rs:26:12 + --> $DIR/auto-trait-phantom-data-bounds.rs:26:12 | LL | is_zen(x) | ------ ^ `T` cannot be shared between threads safely @@ -37,24 +37,24 @@ LL | is_zen(x) | required by a bound introduced by this call | note: required for `&T` to implement `Zen` - --> $DIR/phantom-auto-trait.rs:10:24 + --> $DIR/auto-trait-phantom-data-bounds.rs:10:24 | LL | unsafe impl<'a, T: 'a> Zen for &'a T where T: Sync {} | ^^^ ^^^^^ ---- unsatisfied trait bound introduced here note: required because it appears within the type `PhantomData<&T>` --> $SRC_DIR/core/src/marker.rs:LL:COL note: required because it appears within the type `Guard<'_, T>` - --> $DIR/phantom-auto-trait.rs:12:8 + --> $DIR/auto-trait-phantom-data-bounds.rs:12:8 | LL | struct Guard<'a, T: 'a> { | ^^^^^ note: required because it appears within the type `Nested>` - --> $DIR/phantom-auto-trait.rs:16:8 + --> $DIR/auto-trait-phantom-data-bounds.rs:16:8 | LL | struct Nested(T); | ^^^^^^ note: required by a bound in `is_zen` - --> $DIR/phantom-auto-trait.rs:18:14 + --> $DIR/auto-trait-phantom-data-bounds.rs:18:14 | LL | fn is_zen(_: T) {} | ^^^ required by this bound in `is_zen` diff --git a/tests/ui/binop/binop-evaluation-order-primitive.rs b/tests/ui/binop/binop-evaluation-order-primitive.rs index d988e2ed14fc4..33266d1c0478a 100644 --- a/tests/ui/binop/binop-evaluation-order-primitive.rs +++ b/tests/ui/binop/binop-evaluation-order-primitive.rs @@ -1,6 +1,15 @@ +//! Test evaluation order in binary operations with primitive types. + //@ run-pass fn main() { let x = Box::new(0); - assert_eq!(0, *x + { drop(x); let _ = Box::new(main); 0 }); + assert_eq!( + 0, + *x + { + drop(x); + let _ = Box::new(main); + 0 + } + ); } diff --git a/tests/ui/coercion/basic-ptr-coercions.rs b/tests/ui/coercion/basic-ptr-coercions.rs index 8cc4120328e45..4229d1fb2745f 100644 --- a/tests/ui/coercion/basic-ptr-coercions.rs +++ b/tests/ui/coercion/basic-ptr-coercions.rs @@ -1,29 +1,24 @@ -//@ run-pass - -#![allow(unused_variables)] -// Test coercions between pointers which don't do anything fancy like unsizing. +//! Tests basic pointer coercions +//@ run-pass pub fn main() { // &mut -> & let x: &mut isize = &mut 42; - let x: &isize = x; - - let x: &isize = &mut 42; + let _x: &isize = x; + let _x: &isize = &mut 42; // & -> *const let x: &isize = &42; - let x: *const isize = x; - - let x: *const isize = &42; + let _x: *const isize = x; + let _x: *const isize = &42; // &mut -> *const let x: &mut isize = &mut 42; - let x: *const isize = x; - - let x: *const isize = &mut 42; + let _x: *const isize = x; + let _x: *const isize = &mut 42; // *mut -> *const - let x: *mut isize = &mut 42; - let x: *const isize = x; + let _x: *mut isize = &mut 42; + let _x: *const isize = x; } diff --git a/tests/ui/coercion/ptr-mutability-errors.rs b/tests/ui/coercion/ptr-mutability-errors.rs index 2549bd6f134d7..391eaf0b91343 100644 --- a/tests/ui/coercion/ptr-mutability-errors.rs +++ b/tests/ui/coercion/ptr-mutability-errors.rs @@ -1,5 +1,4 @@ -// Test coercions between pointers which don't do anything fancy like unsizing. -// These are testing that we don't lose mutability when converting to raw pointers. +//! Tests that pointer coercions preserving mutability are enforced: //@ dont-require-annotations: NOTE diff --git a/tests/ui/coercion/ptr-mutability-errors.stderr b/tests/ui/coercion/ptr-mutability-errors.stderr index 8de41d2c38276..b4ded821c79cd 100644 --- a/tests/ui/coercion/ptr-mutability-errors.stderr +++ b/tests/ui/coercion/ptr-mutability-errors.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/ptr-coercion.rs:9:25 + --> $DIR/ptr-mutability-errors.rs:8:25 | LL | let x: *mut isize = x; | ---------- ^ types differ in mutability @@ -10,7 +10,7 @@ LL | let x: *mut isize = x; found raw pointer `*const isize` error[E0308]: mismatched types - --> $DIR/ptr-coercion.rs:15:25 + --> $DIR/ptr-mutability-errors.rs:14:25 | LL | let x: *mut isize = &42; | ---------- ^^^ types differ in mutability @@ -21,7 +21,7 @@ LL | let x: *mut isize = &42; found reference `&isize` error[E0308]: mismatched types - --> $DIR/ptr-coercion.rs:21:25 + --> $DIR/ptr-mutability-errors.rs:20:25 | LL | let x: *mut isize = x; | ---------- ^ types differ in mutability diff --git a/tests/ui/io-checks/stdout-stderr-separation.rs b/tests/ui/io-checks/stdout-stderr-separation.rs index 4b356e2fe6172..1bb3f16d3a1fb 100644 --- a/tests/ui/io-checks/stdout-stderr-separation.rs +++ b/tests/ui/io-checks/stdout-stderr-separation.rs @@ -1,3 +1,6 @@ +//! Test that print!/println! output to stdout and eprint!/eprintln! +//! output to stderr correctly. + //@ run-pass //@ needs-subprocess diff --git a/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.rs b/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.rs index d5f43df9d85c5..1cd41114bbdd5 100644 --- a/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.rs +++ b/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.rs @@ -1,13 +1,25 @@ +//! Test closure parameter type inference and type mismatch errors. +//! +//! Related to . + //@ dont-require-annotations: NOTE -fn let_in(x: T, f: F) where F: FnOnce(T) {} +fn let_in(x: T, f: F) +where + F: FnOnce(T), +{ +} fn main() { - let_in(3u32, |i| { assert!(i == 3i32); }); - //~^ ERROR mismatched types - //~| NOTE expected `u32`, found `i32` + let_in(3u32, |i| { + assert!(i == 3i32); + //~^ ERROR mismatched types + //~| NOTE expected `u32`, found `i32` + }); - let_in(3i32, |i| { assert!(i == 3u32); }); - //~^ ERROR mismatched types - //~| NOTE expected `i32`, found `u32` + let_in(3i32, |i| { + assert!(i == 3u32); + //~^ ERROR mismatched types + //~| NOTE expected `i32`, found `u32` + }); } diff --git a/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.stderr b/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.stderr index a6d673e61c698..c75e90ce4ef11 100644 --- a/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.stderr +++ b/tests/ui/mismatched_types/closure-parameter-type-inference-mismatch.stderr @@ -1,29 +1,29 @@ error[E0308]: mismatched types - --> $DIR/pptypedef.rs:6:37 + --> $DIR/closure-parameter-type-inference-mismatch.rs:15:22 | -LL | let_in(3u32, |i| { assert!(i == 3i32); }); - | - ^^^^ expected `u32`, found `i32` - | | - | expected because this is `u32` +LL | assert!(i == 3i32); + | - ^^^^ expected `u32`, found `i32` + | | + | expected because this is `u32` | help: change the type of the numeric literal from `i32` to `u32` | -LL - let_in(3u32, |i| { assert!(i == 3i32); }); -LL + let_in(3u32, |i| { assert!(i == 3u32); }); +LL - assert!(i == 3i32); +LL + assert!(i == 3u32); | error[E0308]: mismatched types - --> $DIR/pptypedef.rs:10:37 + --> $DIR/closure-parameter-type-inference-mismatch.rs:21:22 | -LL | let_in(3i32, |i| { assert!(i == 3u32); }); - | - ^^^^ expected `i32`, found `u32` - | | - | expected because this is `i32` +LL | assert!(i == 3u32); + | - ^^^^ expected `i32`, found `u32` + | | + | expected because this is `i32` | help: change the type of the numeric literal from `u32` to `i32` | -LL - let_in(3i32, |i| { assert!(i == 3u32); }); -LL + let_in(3i32, |i| { assert!(i == 3i32); }); +LL - assert!(i == 3u32); +LL + assert!(i == 3i32); | error: aborting due to 2 previous errors diff --git a/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.rs b/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.rs index 50f1fe873cb5f..6711d303eb3db 100644 --- a/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.rs +++ b/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.rs @@ -1,4 +1,8 @@ -fn unrelated() -> Result<(), std::string::ParseError> { // #57664 +//! Regression test for . +//! Checks that compiler doesn't get confused by `?` operator and complex +//! return types when reporting type mismatches. + +fn unrelated() -> Result<(), std::string::ParseError> { let x = 0; match x { diff --git a/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.stderr b/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.stderr index 34aaea5b70bbe..38392fe99d663 100644 --- a/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.stderr +++ b/tests/ui/mismatched_types/type-error-diagnostic-in-complex-return.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/point-to-type-err-cause-on-impl-trait-return-2.rs:9:41 + --> $DIR/type-error-diagnostic-in-complex-return.rs:13:41 | LL | let value: &bool = unsafe { &42 }; | ^^^ expected `&bool`, found `&{integer}` diff --git a/tests/ui/parser/doc-comment-in-generic.rs b/tests/ui/parser/doc-comment-in-generic.rs index 84abe875910cc..2596496763bac 100644 --- a/tests/ui/parser/doc-comment-in-generic.rs +++ b/tests/ui/parser/doc-comment-in-generic.rs @@ -1,9 +1,13 @@ +//! Tests correct parsing of doc comments on generic parameters in traits. +//! Checks that compiler doesn't panic when processing this. + //@ check-pass -// Check that it doesn't panic when `Input` gets its visibility checked. #![crate_type = "lib"] pub trait Layer< - /// Hello. + /// Documentation for generic parameter. Input, -> {} +> +{ +} diff --git a/tests/ui/parser/raw/raw-string-literals.rs b/tests/ui/parser/raw/raw-string-literals.rs index 230184032952effa5fe5fc30f3aef8bd5570a652..2272f268b3675960d76334943606ee19261a548e 100644 GIT binary patch delta 234 zcmYk0%?ZLl5QT}L;@;E-o+pVAayDKpz?0a(YF1fDcH_?YlY>};qyTHM0c-GV0oLIX zRGizqH{ZPXXuaC!I38f3hzWb?wA~Tb*5w4dhLZ;nJ8d?|G%F`F5+aVLa61zflIjh5 zW2{pV>$HqmE)&du7$H@eUV4&MR$^rhOKsq<$p5Ly%di(Fm|34uNcJJ-8|iCcuX9l8 msUz5Typ2aeN8mHnD!5ji#=Ti9RX6DWdC$gH)Ot7(C-DZY+etqF delta 88 zcmaFHeu2$WU*AEYs5DQvAhEcZOJ83hGd(ZAC{?#4Go@0uBryqHC?_*7H77MMy(DAf eE-l8%ZyD!LZe=<;c@m?@ $DIR/reassign-ref-mut.rs:12:5 + --> $DIR/pattern-ref-bindings-reassignment.rs:18:5 | LL | let &mut (ref a, ref mut b) = &mut one_two; | ----- first assignment to `a` +... LL | a = &three_four.0; | ^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable error[E0384]: cannot assign twice to immutable variable `b` - --> $DIR/reassign-ref-mut.rs:14:5 + --> $DIR/pattern-ref-bindings-reassignment.rs:22:5 | LL | let &mut (ref a, ref mut b) = &mut one_two; | --------- first assignment to `b` diff --git a/tests/ui/print-request/print-calling-conventions.rs b/tests/ui/print-request/print-calling-conventions.rs index 302ed088142d8..cefaa0d9b6fc0 100644 --- a/tests/ui/print-request/print-calling-conventions.rs +++ b/tests/ui/print-request/print-calling-conventions.rs @@ -1,2 +1,4 @@ +//! Test that `--print calling-conventions` outputs all supported calling conventions. + //@ compile-flags: --print calling-conventions //@ build-pass diff --git a/tests/ui/std/fs-nul-byte-paths.rs b/tests/ui/std/fs-nul-byte-paths.rs index 5c37980127db1..790123623474d 100644 --- a/tests/ui/std/fs-nul-byte-paths.rs +++ b/tests/ui/std/fs-nul-byte-paths.rs @@ -1,18 +1,22 @@ -//@ run-pass +//! Test that `std::fs` functions properly reject paths containing NUL bytes. +//@ run-pass #![allow(deprecated)] //@ ignore-wasm32 no cwd //@ ignore-sgx no files -use std::fs; -use std::io; +use std::{fs, io}; fn assert_invalid_input(on: &str, result: io::Result) { fn inner(on: &str, result: io::Result<()>) { match result { Ok(()) => panic!("{} didn't return an error on a path with NUL", on), - Err(e) => assert!(e.kind() == io::ErrorKind::InvalidInput, - "{} returned a strange {:?} on a path with NUL", on, e.kind()), + Err(e) => assert!( + e.kind() == io::ErrorKind::InvalidInput, + "{} returned a strange {:?} on a path with NUL", + on, + e.kind() + ), } } inner(on, result.map(drop)) @@ -43,6 +47,8 @@ fn main() { assert_invalid_input("remove_dir", fs::remove_dir("\0")); assert_invalid_input("remove_dir_all", fs::remove_dir_all("\0")); assert_invalid_input("read_dir", fs::read_dir("\0")); - assert_invalid_input("set_permissions", - fs::set_permissions("\0", fs::metadata(".").unwrap().permissions())); + assert_invalid_input( + "set_permissions", + fs::set_permissions("\0", fs::metadata(".").unwrap().permissions()), + ); } diff --git a/tests/ui/typeck/nested-generic-traits-performance.rs b/tests/ui/typeck/nested-generic-traits-performance.rs index 29c278171a61b..e029228c1b2ef 100644 --- a/tests/ui/typeck/nested-generic-traits-performance.rs +++ b/tests/ui/typeck/nested-generic-traits-performance.rs @@ -1,65 +1,82 @@ +//! Test that deeply nested generic traits with complex bounds +//! don't cause excessive memory usage during type checking. +//! +//! Regression test for . + //@ run-pass -// Regression test for #31849: the problem here was actually a performance -// cliff, but I'm adding the test for reference. pub trait Upcast { fn upcast(self) -> T; } -impl Upcast<(T1, T2)> for (S1,S2) - where S1: Upcast, - S2: Upcast, +impl Upcast<(T1, T2)> for (S1, S2) +where + S1: Upcast, + S2: Upcast, { - fn upcast(self) -> (T1, T2) { (self.0.upcast(), self.1.upcast()) } + fn upcast(self) -> (T1, T2) { + (self.0.upcast(), self.1.upcast()) + } } -impl Upcast<()> for () -{ - fn upcast(self) -> () { () } +impl Upcast<()> for () { + fn upcast(self) -> () { + () + } } pub trait ToStatic { type Static: 'static; - fn to_static(self) -> Self::Static where Self: Sized; + fn to_static(self) -> Self::Static + where + Self: Sized; } impl ToStatic for (T, U) - where T: ToStatic, - U: ToStatic +where + T: ToStatic, + U: ToStatic, { type Static = (T::Static, U::Static); - fn to_static(self) -> Self::Static { (self.0.to_static(), self.1.to_static()) } + fn to_static(self) -> Self::Static { + (self.0.to_static(), self.1.to_static()) + } } -impl ToStatic for () -{ +impl ToStatic for () { type Static = (); - fn to_static(self) -> () { () } + fn to_static(self) -> () { + () + } } - trait Factory { type Output; fn build(&self) -> Self::Output; } -impl Factory for (S, T) - where S: Factory, - T: Factory, - S::Output: ToStatic, - ::Static: Upcast, +impl Factory for (S, T) +where + S: Factory, + T: Factory, + S::Output: ToStatic, + ::Static: Upcast, { type Output = (S::Output, T::Output); - fn build(&self) -> Self::Output { (self.0.build().to_static().upcast(), self.1.build()) } + fn build(&self) -> Self::Output { + (self.0.build().to_static().upcast(), self.1.build()) + } } impl Factory for () { type Output = (); - fn build(&self) -> Self::Output { () } + fn build(&self) -> Self::Output { + () + } } fn main() { - // More parens, more time. - let it = ((((((((((),()),()),()),()),()),()),()),()),()); + // Deeply nested tuple to trigger the original performance issue + let it = ((((((((((), ()), ()), ()), ()), ()), ()), ()), ()), ()); it.build(); }