struct TypeConstructor

Defined at line 403 of file ../../tools/fidl/fidlc/src/flat_ast.h

Unlike RawTypeConstructor which will either store a name referencing a

layout or an anonymous layout directly, in the flat AST all type constructors

store a Reference. In the case where the type constructor represents an

anonymous layout, the data of the anonymous layout is consumed and stored in

the library and the corresponding type constructor contains a Reference

whose name has AnonymousNameContext and a span covering the anonymous layout.

This allows all type compilation to share the code paths through the consume

step (i.e. RegisterDecl) and the compilation step (i.e. Typespace::Create),

while ensuring that users cannot refer to anonymous layouts by name.

Public Members

SourceSpan span
Reference layout
unique_ptr parameters
unique_ptr constraints
Type * type
LayoutInvocation resolved_params

Public Methods

std::unique_ptr<TypeConstructor> Clone ()
void TypeConstructor (SourceSpan span, Reference layout, std::unique_ptr<LayoutParameterList> parameters, std::unique_ptr<TypeConstraints> constraints)

Defined at line 404 of file ../../tools/fidl/fidlc/src/flat_ast.h