func materialize_decl_syntax(syntax: &Syntax<Decl>) -> MaterializedResult<Decl>Materializes declaration syntax using top-level declaration grammar.
Wrapper macros should prefer materialize_decl_syntax_in, which validates in the target's actual block or nominal-body context.
View Source
pub func materialize_decl_syntax(syntax: &Syntax<Decl>) -> MaterializedResult<Decl> {
let materialized = materialize(raw: syntax.raw, group_splices: true)
let outcome = parse_decl_tokens(source: materialized.source, input: materialized.input)
if let .some(failure) = parse_failure(outcome: outcome, fallback: materialized.input.span) {
return MaterializedResult<Decl>(value: .none, failure: .some(failure))
}
MaterializedResult<Decl>(
value: .some(MaterializedSyntax<Decl>(source: materialized.source, input: materialized.input, outcome: outcome, identifiers: materialized.identifiers)),
failure: .none
)
}