-
Notifications
You must be signed in to change notification settings - Fork 12.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b4cb187
commit f9bdf34
Showing
5 changed files
with
122 additions
and
67 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT | ||
// file at the top-level directory of this distribution and at | ||
// http://rust-lang.org/COPYRIGHT. | ||
// | ||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or | ||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | ||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your | ||
// option. This file may not be copied, modified, or distributed | ||
// except according to those terms. | ||
|
||
struct S<T = u8>(T); | ||
trait Tr<T = u8> {} | ||
|
||
impl Self for S {} //~ ERROR expected trait, found self type `Self` | ||
impl Self::N for S {} //~ ERROR cannot find trait `N` in `Self` | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT | ||
// file at the top-level directory of this distribution and at | ||
// http://rust-lang.org/COPYRIGHT. | ||
// | ||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or | ||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | ||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your | ||
// option. This file may not be copied, modified, or distributed | ||
// except according to those terms. | ||
|
||
struct S<T = u8>(T); | ||
trait Tr<T = u8> {} | ||
|
||
impl Tr<Self> for S {} // OK | ||
|
||
// FIXME: `Self` cannot be used in bounds because it depends on bounds itself. | ||
impl<T: Tr<Self>> Tr<T> for S {} //~ ERROR `Self` type is used before it's determined | ||
impl<T = Self> Tr<T> for S {} //~ ERROR `Self` type is used before it's determined | ||
impl Tr for S where Self: Copy {} //~ ERROR `Self` type is used before it's determined | ||
impl Tr for S where S<Self>: Copy {} //~ ERROR `Self` type is used before it's determined | ||
impl Tr for Self {} //~ ERROR `Self` type is used before it's determined | ||
impl Tr for S<Self> {} //~ ERROR `Self` type is used before it's determined | ||
impl Self {} //~ ERROR `Self` type is used before it's determined | ||
impl S<Self> {} //~ ERROR `Self` type is used before it's determined | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,8 @@ | ||
error[E0411]: cannot find type `Self` in this scope | ||
error: `Self` type is used before it's determined | ||
--> $DIR/issue-23305.rs:15:12 | ||
| | ||
15 | impl ToNbt<Self> {} | ||
| ^^^^ `Self` is only available in traits and impls | ||
|
||
error[E0038]: the trait `ToNbt` cannot be made into an object | ||
--> $DIR/issue-23305.rs:15:6 | ||
| | ||
15 | impl ToNbt<Self> {} | ||
| ^^^^^^^^^^^ the trait `ToNbt` cannot be made into an object | ||
| | ||
= note: method `new` has no receiver | ||
| ^^^^ | ||
|
||
error: aborting due to previous error | ||
|