Document assoc-lang-items.rs
This commit is contained in:
parent
5e07f6e197
commit
1e3328dd72
2 changed files with 18 additions and 4 deletions
|
@ -1,3 +1,17 @@
|
|||
//! Check that associated items can be marked as lang items, so that they don't have to be looked up
|
||||
//! by name or by definition order indirectly.
|
||||
//!
|
||||
//! This test is not *quite* high-fidelity: it checks that you can use lang items on associated
|
||||
//! items by looking at the error message *as a proxy*. That is, the error message is about
|
||||
//! undefined lang items and not invalid attribute target, indicating that it has reached lang item
|
||||
//! machinery (which is relying on knowing the implementation detail). However, it's annoying to
|
||||
//! write a full-fidelity test for this, so I think this is acceptable even though it's not *great*.
|
||||
//!
|
||||
//! This was implemented in <https://github.com/rust-lang/rust/pull/72559> to help with
|
||||
//! <https://github.com/rust-lang/rust/issues/70718>, which is itself relevant for e.g. `Fn::Output`
|
||||
//! or `Future::Output` or specific use cases like [Use `T`'s discriminant type in
|
||||
//! `mem::Discriminant<T>` instead of `u64`](https://github.com/rust-lang/rust/pull/70705).
|
||||
|
||||
#![feature(lang_items)]
|
||||
|
||||
trait Foo {
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
error[E0522]: definition of an unknown lang item: `dummy_lang_item_1`
|
||||
--> $DIR/assoc-lang-items.rs:4:5
|
||||
--> $DIR/assoc-lang-items.rs:18:5
|
||||
|
|
||||
LL | #[lang = "dummy_lang_item_1"]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition of unknown lang item `dummy_lang_item_1`
|
||||
|
||||
error[E0522]: definition of an unknown lang item: `dummy_lang_item_2`
|
||||
--> $DIR/assoc-lang-items.rs:7:5
|
||||
--> $DIR/assoc-lang-items.rs:21:5
|
||||
|
|
||||
LL | #[lang = "dummy_lang_item_2"]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition of unknown lang item `dummy_lang_item_2`
|
||||
|
||||
error[E0522]: definition of an unknown lang item: `dummy_lang_item_3`
|
||||
--> $DIR/assoc-lang-items.rs:10:5
|
||||
--> $DIR/assoc-lang-items.rs:24:5
|
||||
|
|
||||
LL | #[lang = "dummy_lang_item_3"]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition of unknown lang item `dummy_lang_item_3`
|
||||
|
||||
error[E0522]: definition of an unknown lang item: `dummy_lang_item_4`
|
||||
--> $DIR/assoc-lang-items.rs:17:5
|
||||
--> $DIR/assoc-lang-items.rs:31:5
|
||||
|
|
||||
LL | #[lang = "dummy_lang_item_4"]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition of unknown lang item `dummy_lang_item_4`
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue