提交 33663f0b 编写于 作者: M Manish Goregaokar

Rollup merge of #27470 - cactorium:e0074toe0077, r=alexcrichton

For https://github.com/rust-lang/rust/issues/24407
......@@ -826,6 +826,63 @@ struct Foo { x: Option<Box<Foo>> }
Now it's possible to create at least one instance of `Foo`: `Foo { x: None }`.
"##,
E0074: r##"
When using the `#[simd]` attribute on a tuple struct, the components of the
tuple struct must all be of a concrete, nongeneric type so the compiler can
reason about how to use SIMD with them. This error will occur if the types
are generic.
```
#[simd]
struct Bad<T>(T, T, T); // This will cause an error
#[simd]
struct Good(u32, u32, u32); // This will not
```
"##,
E0075: r##"
The `#[simd]` attribute can only be applied to non empty tuple structs, because
it doesn't make sense to try to use SIMD operations when there are no values to
operate on.
```
#[simd]
struct Bad; // This will cause an error
#[simd]
struct Good(u32); // This will not
```
"##,
E0076: r##"
When using the `#[simd]` attribute to automatically use SIMD operations in tuple
struct, the types in the struct must all be of the same type, or the compiler
will trigger this error.
```
#[simd]
struct Bad(u16, u32, u32); // This will cause an error
#[simd]
struct Good(u32, u32, u32); // This will not
```
"##,
E0077: r##"
When using the `#[simd]` attribute on a tuple struct, the elements in the tuple
must be machine types so SIMD operations can be applied to them.
```
#[simd]
struct Bad(String); // This will cause an error
#[simd]
struct Good(u32, u32, u32); // This will not
```
"##,
E0081: r##"
Enum discriminants are used to differentiate enum variants stored in memory.
This error indicates that the same value was used for two or more variants,
......@@ -2378,10 +2435,6 @@ struct Foo<'a, T: 'a> {
register_diagnostics! {
E0068,
E0074,
E0075,
E0076,
E0077,
E0085,
E0086,
E0090,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册