@@ -62,7 +62,20 @@ pub fn new_parser_from_source_str(
6262 source : String ,
6363) -> Result < Parser < ' _ > , Vec < Diag < ' _ > > > {
6464 let source_file = psess. source_map ( ) . new_source_file ( name, source) ;
65- new_parser_from_source_file ( psess, source_file)
65+ new_parser_from_source_file ( psess, source_file, FrontmatterAllowed :: Yes )
66+ }
67+
68+ /// Creates a new parser from a simple (no frontmatter) source string.
69+ ///
70+ /// On failure, the errors must be consumed via `unwrap_or_emit_fatal`, `emit`, `cancel`,
71+ /// etc., otherwise a panic will occur when they are dropped.
72+ pub fn new_parser_from_simple_source_str (
73+ psess : & ParseSess ,
74+ name : FileName ,
75+ source : String ,
76+ ) -> Result < Parser < ' _ > , Vec < Diag < ' _ > > > {
77+ let source_file = psess. source_map ( ) . new_source_file ( name, source) ;
78+ new_parser_from_source_file ( psess, source_file, FrontmatterAllowed :: No )
6679}
6780
6881/// Creates a new parser from a filename. On failure, the errors must be consumed via
@@ -96,7 +109,7 @@ pub fn new_parser_from_file<'a>(
96109 }
97110 err. emit ( ) ;
98111 } ) ;
99- new_parser_from_source_file ( psess, source_file)
112+ new_parser_from_source_file ( psess, source_file, FrontmatterAllowed :: Yes )
100113}
101114
102115pub fn utf8_error < E : EmissionGuarantee > (
@@ -147,9 +160,10 @@ pub fn utf8_error<E: EmissionGuarantee>(
147160fn new_parser_from_source_file (
148161 psess : & ParseSess ,
149162 source_file : Arc < SourceFile > ,
163+ frontmatter_allowed : FrontmatterAllowed ,
150164) -> Result < Parser < ' _ > , Vec < Diag < ' _ > > > {
151165 let end_pos = source_file. end_position ( ) ;
152- let stream = source_file_to_stream ( psess, source_file, None , FrontmatterAllowed :: Yes ) ?;
166+ let stream = source_file_to_stream ( psess, source_file, None , frontmatter_allowed ) ?;
153167 let mut parser = Parser :: new ( psess, stream, None ) ;
154168 if parser. token == token:: Eof {
155169 parser. token . span = Span :: new ( end_pos, end_pos, parser. token . span . ctxt ( ) , None ) ;
0 commit comments