Skip to content

Commit

Permalink
Rollup merge of rust-lang#127243 - BoxyUwU:new_invalid_const_param_ty…
Browse files Browse the repository at this point in the history
…_test, r=compiler-errors

Add test for adt_const_params

Fixes rust-lang#84238

r? `@compiler-errors`
  • Loading branch information
matthiaskrgr authored Jul 2, 2024
2 parents a10c231 + 1df876f commit 6407580
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#![feature(adt_const_params)]
#![allow(incomplete_features)]

use std::marker::ConstParamTy;

#[derive(ConstParamTy)]
//~^ the trait `ConstParamTy` cannot be implemented for this ty
struct Foo([*const u8; 1]);

#[derive(ConstParamTy)]
//~^ the trait `ConstParamTy` cannot be implemented for this ty
struct Foo2([*mut u8; 1]);

#[derive(ConstParamTy)]
//~^ the trait `ConstParamTy` cannot be implemented for this ty
struct Foo3([fn(); 1]);

fn main() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
error[E0204]: the trait `ConstParamTy` cannot be implemented for this type
--> $DIR/nested_bad_const_param_ty.rs:6:10
|
LL | #[derive(ConstParamTy)]
| ^^^^^^^^^^^^
LL |
LL | struct Foo([*const u8; 1]);
| -------------- this field does not implement `ConstParamTy`
|
note: the `ConstParamTy` impl for `[*const u8; 1]` requires that `*const u8: ConstParamTy`
--> $DIR/nested_bad_const_param_ty.rs:8:12
|
LL | struct Foo([*const u8; 1]);
| ^^^^^^^^^^^^^^
= note: this error originates in the derive macro `ConstParamTy` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0204]: the trait `ConstParamTy` cannot be implemented for this type
--> $DIR/nested_bad_const_param_ty.rs:10:10
|
LL | #[derive(ConstParamTy)]
| ^^^^^^^^^^^^
LL |
LL | struct Foo2([*mut u8; 1]);
| ------------ this field does not implement `ConstParamTy`
|
note: the `ConstParamTy` impl for `[*mut u8; 1]` requires that `*mut u8: ConstParamTy`
--> $DIR/nested_bad_const_param_ty.rs:12:13
|
LL | struct Foo2([*mut u8; 1]);
| ^^^^^^^^^^^^
= note: this error originates in the derive macro `ConstParamTy` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0204]: the trait `ConstParamTy` cannot be implemented for this type
--> $DIR/nested_bad_const_param_ty.rs:14:10
|
LL | #[derive(ConstParamTy)]
| ^^^^^^^^^^^^
LL |
LL | struct Foo3([fn(); 1]);
| --------- this field does not implement `ConstParamTy`
|
note: the `ConstParamTy` impl for `[fn(); 1]` requires that `fn(): ConstParamTy`
--> $DIR/nested_bad_const_param_ty.rs:16:13
|
LL | struct Foo3([fn(); 1]);
| ^^^^^^^^^
= note: this error originates in the derive macro `ConstParamTy` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0204`.

0 comments on commit 6407580

Please sign in to comment.