materialize_decl_syntax

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
	)
}