func materialize_type_syntax(syntax: &Syntax<TypeAnnotation>) -> MaterializedResult<TypeAnnotation>Materializes and validates type syntax through the canonical type parser.
Structural splices are grouped before parsing, preserving each inserted type as one grammar node regardless of its rendered token precedence.
View Source
pub func materialize_type_syntax(syntax: &Syntax<TypeAnnotation>) -> MaterializedResult<TypeAnnotation> {
let materialized = materialize(raw: syntax.raw, group_splices: true)
let outcome = parse_type_tokens(source: materialized.source, input: materialized.input)
if let .some(failure) = parse_failure(outcome: outcome, fallback: materialized.input.span) {
return MaterializedResult<TypeAnnotation>(value: .none, failure: .some(failure))
}
MaterializedResult<TypeAnnotation>(
value: .some(MaterializedSyntax<TypeAnnotation>(source: materialized.source, input: materialized.input, outcome: outcome, identifiers: materialized.identifiers)),
failure: .none
)
}