-
Notifications
You must be signed in to change notification settings - Fork 13k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of #92582 - lcnr:generic-arg-infer, r=BoxyUwU
improve `_` constants in item signature handling removing the "type" from the error messages does slightly worsen the error messages for types, but figuring out whether the placeholder is for a type or a constant and correctly dealing with that seemed fairly difficult to me so I took the easy way out ✨ Imo the error message is still clear enough. r? `@BoxyUwU` cc `@estebank`
- Loading branch information
Showing
40 changed files
with
424 additions
and
256 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 0 additions & 12 deletions
12
src/test/ui/const-generics/generic_arg_infer/array-in-sig.rs
This file was deleted.
Oops, something went wrong.
9 changes: 0 additions & 9 deletions
9
src/test/ui/const-generics/generic_arg_infer/array-in-sig.stderr
This file was deleted.
Oops, something went wrong.
61 changes: 61 additions & 0 deletions
61
src/test/ui/const-generics/generic_arg_infer/in-signature.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
#![crate_type = "rlib"] | ||
#![feature(generic_arg_infer)] | ||
|
||
struct Foo<const N: usize>; | ||
struct Bar<T, const N: usize>(T); | ||
|
||
fn arr_fn() -> [u8; _] { | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for return types | ||
[0; 3] | ||
} | ||
|
||
fn ty_fn() -> Bar<i32, _> { | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for return types | ||
Bar::<i32, 3>(0) | ||
} | ||
|
||
fn ty_fn_mixed() -> Bar<_, _> { | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for return types | ||
Bar::<i32, 3>(0) | ||
} | ||
|
||
const ARR_CT: [u8; _] = [0; 3]; | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for constants | ||
static ARR_STATIC: [u8; _] = [0; 3]; | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for static variables | ||
const TY_CT: Bar<i32, _> = Bar::<i32, 3>(0); | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for constants | ||
static TY_STATIC: Bar<i32, _> = Bar::<i32, 3>(0); | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for static variables | ||
const TY_CT_MIXED: Bar<_, _> = Bar::<i32, 3>(0); | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for constants | ||
static TY_STATIC_MIXED: Bar<_, _> = Bar::<i32, 3>(0); | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for static variables | ||
trait ArrAssocConst { | ||
const ARR: [u8; _]; | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for constants | ||
} | ||
trait TyAssocConst { | ||
const ARR: Bar<i32, _>; | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for constants | ||
} | ||
trait TyAssocConstMixed { | ||
const ARR: Bar<_, _>; | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for constants | ||
} | ||
|
||
trait AssocTy { | ||
type Assoc; | ||
} | ||
impl AssocTy for i8 { | ||
type Assoc = [u8; _]; | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for associated types | ||
} | ||
impl AssocTy for i16 { | ||
type Assoc = Bar<i32, _>; | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for associated types | ||
} | ||
impl AssocTy for i32 { | ||
type Assoc = Bar<_, _>; | ||
//~^ ERROR the placeholder `_` is not allowed within types on item signatures for associated types | ||
} |
Oops, something went wrong.