pub struct TranslationUnit<'a> {
pub enable_extensions: EnableExtensions,
pub decls: Arena<GlobalDecl<'a>>,
pub expressions: Arena<Expression<'a>>,
pub types: Arena<Type<'a>>,
pub diagnostic_filters: Arena<DiagnosticFilterNode>,
pub diagnostic_filter_leaf: Option<Handle<DiagnosticFilterNode>>,
}
Fields§
§enable_extensions: EnableExtensions
§decls: Arena<GlobalDecl<'a>>
§expressions: Arena<Expression<'a>>
The common expressions arena for the entire translation unit.
All functions, global initializers, array lengths, etc. store their
expressions here. We apportion these out to individual Naga
Function
s’ expression arenas at lowering time. Keeping them all in a
single arena simplifies handling of things like array lengths (which are
effectively global and thus don’t clearly belong to any function) and
initializers (which can appear in both function-local and module-scope
contexts).
types: Arena<Type<'a>>
Non-user-defined types, like vec4<f32>
or array<i32, 10>
.
These are referred to by Handle<ast::Type<'a>>
values.
User-defined types are referred to by name until lowering.
diagnostic_filters: Arena<DiagnosticFilterNode>
Arena for all diagnostic filter rules parsed in this module, including those in functions.
See DiagnosticFilterNode
for details on how the tree is represented and used in
validation.
diagnostic_filter_leaf: Option<Handle<DiagnosticFilterNode>>
The leaf of all diagnostic(…)
directives in this module.
See DiagnosticFilterNode
for details on how the tree is represented and used in
validation.