diff options
| author | kadmin <julianknodt@gmail.com> | 2022-12-04 19:58:03 +0000 |
|---|---|---|
| committer | kadmin <julianknodt@gmail.com> | 2023-01-09 08:41:21 +0000 |
| commit | abe040d876f697ef86b1ad395caf68c03ecbf046 (patch) | |
| tree | 4ce6a171da739b7492ac1b007f328b040ff9ad7e /src | |
| parent | 2e677c0645862d17a12c6d04b3019203c8e23fcc (diff) | |
| download | rust-abe040d876f697ef86b1ad395caf68c03ecbf046.tar.gz rust-abe040d876f697ef86b1ad395caf68c03ecbf046.zip | |
Change commit_if_ok to probe
Diffstat (limited to 'src')
3 files changed, 37 insertions, 13 deletions
diff --git a/src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.rs b/src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.rs index 6093fc70b16..b96e210808b 100644 --- a/src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.rs +++ b/src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.rs @@ -15,8 +15,7 @@ where [(); (L - 1) + 1 + L]:, { foo::<_, L>([(); L + 1 + L]); - //~^ ERROR: mismatched types - //~^^ ERROR: unconstrained generic constant + //~^ ERROR: unconstrained generic constant } fn main() {} diff --git a/src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.stderr b/src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.stderr index da5194696e6..09e5e3f862a 100644 --- a/src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.stderr +++ b/src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.stderr @@ -1,12 +1,3 @@ -error[E0308]: mismatched types - --> $DIR/wf_obligation.rs:17:17 - | -LL | foo::<_, L>([(); L + 1 + L]); - | ^^^^^^^^^^^^^^^ expected `N + 1 + M`, found `L + 1 + L` - | - = note: expected constant `N + 1 + M` - found constant `L + 1 + L` - error: unconstrained generic constant --> $DIR/wf_obligation.rs:17:22 | @@ -15,6 +6,5 @@ LL | foo::<_, L>([(); L + 1 + L]); | = help: try adding a `where` bound using this expression: `where [(); L + 1 + L]:` -error: aborting due to 2 previous errors +error: aborting due to previous error -For more information about this error, try `rustc --explain E0308`. diff --git a/src/test/ui/const-generics/issues/issue-105037.rs b/src/test/ui/const-generics/issues/issue-105037.rs new file mode 100644 index 00000000000..f7d23949943 --- /dev/null +++ b/src/test/ui/const-generics/issues/issue-105037.rs @@ -0,0 +1,35 @@ +// run-pass +#![feature(generic_const_exprs)] +#![allow(incomplete_features)] +#![allow(dead_code)] + +trait Table<const D: usize>: Sync { + const COLUMNS: usize; +} + +struct Table1<const D: usize>; +impl<const D: usize> Table<D> for Table1<D> { + const COLUMNS: usize = 123; +} + +struct Table2<const D: usize>; +impl<const D: usize> Table<D> for Table2<D> { + const COLUMNS: usize = 456; +} + +fn process_table<T: Table<D>, const D: usize>(_table: T) +where + [(); T::COLUMNS]:, +{ +} + +fn process_all_tables<const D: usize>() +where + [(); Table2::<D>::COLUMNS]:, + [(); Table1::<D>::COLUMNS]:, +{ + process_table(Table1::<D>); + process_table(Table2::<D>); +} + +fn main() {} |
