func view_decl(target: &Syntax<Decl>, declaration: &DeclContext) -> DeclView?Build a structural view of a declaration in the context it occupies. .none reports syntax the declaration grammar rejects, which a wrapper target can only be when a previous rebuild produced it.
View Source
pub func view_decl(target: &Syntax<Decl>, declaration: &DeclContext) -> DeclView? {
let materialized = materialize_collect(raw: target.raw, group_splices: true, collect_atoms: true)
let outcome = parse_decl_tokens_in(source: materialized.source, input: materialized.input, context_tag: decl_context_tag(context: declaration))
if let .some(_) = outcome.failure { return .none }
let items = outcome.items
for item in items {
match item {
.decl_item(decl) -> return .some(build_view(decl: decl, materialized: materialized)),
_ -> return .none
}
}
.none
}