1
Fork 0

Ensure const impl cannot coexist with non-const impl

This commit is contained in:
Dylan MacKenzie 2020-02-05 09:40:47 -08:00
parent d6d6d25c34
commit 70f78797d5
2 changed files with 67 additions and 0 deletions

View file

@ -0,0 +1,33 @@
#![allow(incomplete_features)]
#![feature(const_trait_impl)]
pub struct Int(i32);
impl const std::ops::Add for i32 {
//~^ ERROR conflicting implementations of trait
//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
type Output = Self;
fn add(self, rhs: Self) -> Self {
self + rhs
}
}
impl std::ops::Add for Int {
type Output = Self;
fn add(self, rhs: Self) -> Self {
Int(self.0 + rhs.0)
}
}
impl const std::ops::Add for Int {
//~^ ERROR conflicting implementations of trait
type Output = Self;
fn add(self, rhs: Self) -> Self {
Int(self.0 + rhs.0)
}
}
fn main() {}