about summary refs log tree commit diff
path: root/src/test/ui/rfc-2632-const-trait-impl/call-const-trait-method-fail.rs
diff options
context:
space:
mode:
authorDylan MacKenzie <ecstaticmorse@gmail.com>2020-02-05 09:35:32 -0800
committerDylan MacKenzie <ecstaticmorse@gmail.com>2020-02-18 21:03:28 -0800
commitd6d6d25c343fb4fdf6c853bd23524a77efc4c53b (patch)
tree6e65bccb28f8df0de694c4c80cc31efc99f702d1 /src/test/ui/rfc-2632-const-trait-impl/call-const-trait-method-fail.rs
parent323ff193b8eda1c89eada54a1b3ac5c20d9e24c7 (diff)
downloadrust-d6d6d25c343fb4fdf6c853bd23524a77efc4c53b.tar.gz
rust-d6d6d25c343fb4fdf6c853bd23524a77efc4c53b.zip
Split const trait method test and impl `ops::Add`
Diffstat (limited to 'src/test/ui/rfc-2632-const-trait-impl/call-const-trait-method-fail.rs')
-rw-r--r--src/test/ui/rfc-2632-const-trait-impl/call-const-trait-method-fail.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/rfc-2632-const-trait-impl/call-const-trait-method-fail.rs b/src/test/ui/rfc-2632-const-trait-impl/call-const-trait-method-fail.rs
new file mode 100644
index 00000000000..8e6ef12810c
--- /dev/null
+++ b/src/test/ui/rfc-2632-const-trait-impl/call-const-trait-method-fail.rs
@@ -0,0 +1,30 @@
+#![allow(incomplete_features)]
+#![feature(const_trait_impl)]
+#![feature(const_fn)]
+
+pub trait Plus {
+    fn plus(self, rhs: Self) -> Self;
+}
+
+impl const Plus for i32 {
+    fn plus(self, rhs: Self) -> Self {
+        self + rhs
+    }
+}
+
+impl Plus for u32 {
+    fn plus(self, rhs: Self) -> Self {
+        self + rhs
+    }
+}
+
+pub const fn add_i32(a: i32, b: i32) -> i32 {
+    a.plus(b) // ok
+}
+
+pub const fn add_u32(a: u32, b: u32) -> u32 {
+    a.plus(b)
+    //~^ ERROR calls in constant functions are limited to constant functions
+}
+
+fn main() {}