mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 23:34:48 +00:00
4e03c51f7d
Unnamed union fields with enums are checked for, but if `find_field` causes an ICE then the compiler won't get to that point. Signed-off-by: David Wood <david@davidtw.co>
26 lines
620 B
Rust
26 lines
620 B
Rust
type NodeId = u32;
|
|
struct Type<'a>(std::marker::PhantomData::<&'a ()>);
|
|
|
|
type Ast<'ast> = &'ast AstStructure<'ast>;
|
|
|
|
struct AstStructure<'ast> {
|
|
//~^ ERROR struct with unnamed fields must have `#[repr(C)]` representation
|
|
id: NodeId,
|
|
_: AstKind<'ast>
|
|
//~^ ERROR unnamed fields are not yet fully implemented [E0658]
|
|
//~^^ ERROR unnamed fields can only have struct or union types
|
|
}
|
|
|
|
enum AstKind<'ast> {
|
|
ExprInt,
|
|
ExprLambda(Ast<'ast>),
|
|
}
|
|
|
|
fn compute_types<'tcx,'ast>(ast: Ast<'ast>) -> Type<'tcx>
|
|
{
|
|
match ast.kind {}
|
|
//~^ ERROR no field `kind` on type `&'ast AstStructure<'ast>` [E0609]
|
|
}
|
|
|
|
fn main() {}
|