-
Notifications
You must be signed in to change notification settings - Fork 13.4k
effects: Run enforce_context_effects
for all method calls
#118282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
error[E0277]: the trait bound `S: ~const Foo<false>` is not satisfied | ||
--> $DIR/call-generic-method-nonconst.rs:23:34 | ||
| | ||
LL | pub const EQ: bool = equals_self(&S); | ||
| ----------- ^^ the trait `Foo<false>` is not implemented for `S` | ||
| | | ||
| required by a bound introduced by this call | ||
| | ||
= help: the trait `Foo` is implemented for `S` | ||
note: required by a bound in `equals_self` | ||
--> $DIR/call-generic-method-nonconst.rs:16:25 | ||
| | ||
LL | const fn equals_self<T: ~const Foo>(t: &T) -> bool { | ||
| ^^^^^^^^^^ required by this bound in `equals_self` | ||
|
||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0277`. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,7 +21,7 @@ trait Add<Rhs = Self> { | |
fn add(self, rhs: Rhs) -> Self::Output; | ||
} | ||
|
||
// FIXME we shouldn't need to have to specify `Rhs`. | ||
// FIXME(effects) we shouldn't need to have to specify `Rhs`. | ||
impl const Add<i32> for i32 { | ||
type Output = i32; | ||
fn add(self, rhs: i32) -> i32 { | ||
|
@@ -336,7 +336,7 @@ fn from_str(s: &str) -> Result<bool, ()> { | |
} | ||
|
||
#[lang = "eq"] | ||
#[const_trait] | ||
// FIXME #[const_trait] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What breaks here, out of curiosity? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think the only explanation here for this breaking is that we begun checking |
||
trait PartialEq<Rhs: ?Sized = Self> { | ||
fn eq(&self, other: &Rhs) -> bool; | ||
fn ne(&self, other: &Rhs) -> bool { | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,61 @@ | ||
error[E0369]: cannot add `i32` to `i32` | ||
--> $DIR/minicore.rs:33:20 | ||
warning: to use a constant of type `&str` in a pattern, the type must implement `PartialEq` | ||
--> $DIR/minicore.rs:332:9 | ||
| | ||
LL | let x = 42_i32 + 43_i32; | ||
| ------ ^ ------ i32 | ||
| | | ||
| i32 | ||
LL | "true" => Ok(true), | ||
| ^^^^^^ | ||
| | ||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! | ||
= note: for more information, see issue #116122 <https://github.com/rust-lang/rust/issues/116122> | ||
= note: `#[warn(const_patterns_without_partial_eq)]` on by default | ||
|
||
warning: to use a constant of type `&str` in a pattern, the type must implement `PartialEq` | ||
--> $DIR/minicore.rs:333:9 | ||
| | ||
LL | "false" => Ok(false), | ||
| ^^^^^^^ | ||
| | ||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! | ||
= note: for more information, see issue #116122 <https://github.com/rust-lang/rust/issues/116122> | ||
|
||
error[E0369]: cannot add `i32` to `i32` | ||
--> $DIR/minicore.rs:37:20 | ||
error[E0493]: destructor of `Self` cannot be evaluated at compile-time | ||
--> $DIR/minicore.rs:494:9 | ||
| | ||
LL | let x = 42_i32 + 43_i32; | ||
| ------ ^ ------ i32 | ||
| | | ||
| i32 | ||
LL | *self = source.clone() | ||
| ^^^^^ | ||
| | | ||
| the destructor for this type cannot be evaluated in constant functions | ||
| value is dropped here | ||
|
||
error[E0600]: cannot apply unary operator `!` to type `bool` | ||
--> $DIR/minicore.rs:343:9 | ||
error[E0493]: destructor of `T` cannot be evaluated at compile-time | ||
--> $DIR/minicore.rs:504:35 | ||
| | ||
LL | !self.eq(other) | ||
| ^^^^^^^^^^^^^^^ cannot apply unary operator `!` | ||
LL | const fn drop<T: ~const Destruct>(_: T) {} | ||
| ^ - value is dropped here | ||
| | | ||
| the destructor for this type cannot be evaluated in constant functions | ||
|
||
error[E0600]: cannot apply unary operator `!` to type `bool` | ||
--> $DIR/minicore.rs:365:9 | ||
error: aborting due to 2 previous errors; 2 warnings emitted | ||
|
||
For more information about this error, try `rustc --explain E0493`. | ||
Future incompatibility report: Future breakage diagnostic: | ||
warning: to use a constant of type `&str` in a pattern, the type must implement `PartialEq` | ||
--> $DIR/minicore.rs:332:9 | ||
| | ||
LL | "true" => Ok(true), | ||
| ^^^^^^ | ||
| | ||
LL | !self | ||
| ^^^^^ cannot apply unary operator `!` | ||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! | ||
= note: for more information, see issue #116122 <https://github.com/rust-lang/rust/issues/116122> | ||
= note: `#[warn(const_patterns_without_partial_eq)]` on by default | ||
|
||
error: aborting due to 4 previous errors | ||
Future breakage diagnostic: | ||
warning: to use a constant of type `&str` in a pattern, the type must implement `PartialEq` | ||
--> $DIR/minicore.rs:333:9 | ||
| | ||
LL | "false" => Ok(false), | ||
| ^^^^^^^ | ||
| | ||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! | ||
= note: for more information, see issue #116122 <https://github.com/rust-lang/rust/issues/116122> | ||
= note: `#[warn(const_patterns_without_partial_eq)]` on by default | ||
|
||
Some errors have detailed explanations: E0369, E0600. | ||
For more information about an error, try `rustc --explain E0369`. |
Uh oh!
There was an error while loading. Please reload this page.