syntax_data: {"ast_node_type":"function","tokens":[{"end":84,"kind":"keyword","start":0,"text":"pub"}]}
source_snippet: pub fn validate_crate_name(sess: &Session, crate_name: Symbol, span: Option<Span>) {
context_before: /// Other places may use a more restrictive grammar (e.g., identifier or ASCII identifier).
context_after:     let mut guar = None;