about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorkadmin <julianknodt@gmail.com>2022-12-04 19:58:03 +0000
committerkadmin <julianknodt@gmail.com>2023-01-09 08:41:21 +0000
commitabe040d876f697ef86b1ad395caf68c03ecbf046 (patch)
tree4ce6a171da739b7492ac1b007f328b040ff9ad7e /src
parent2e677c0645862d17a12c6d04b3019203c8e23fcc (diff)
downloadrust-abe040d876f697ef86b1ad395caf68c03ecbf046.tar.gz
rust-abe040d876f697ef86b1ad395caf68c03ecbf046.zip
Change commit_if_ok to probe
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.rs3
-rw-r--r--src/test/ui/const-generics/generic_const_exprs/const_kind_expr/wf_obligation.stderr12
-rw-r--r--src/test/ui/const-generics/issues/issue-105037.rs35
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() {}