@@ -18,8 +18,7 @@ use once_cell::sync::Lazy;
1818use proc_macro2:: { Span , TokenStream as TokenStream2 } ;
1919use quote:: quote;
2020use rustpython_bytecode:: bytecode:: { CodeObject , FrozenModule } ;
21- use rustpython_compiler:: compile;
22- use rustpython_parser:: parser;
21+ use rustpython_compiler as compile;
2322use std:: collections:: HashMap ;
2423use std:: env;
2524use std:: fs;
@@ -44,40 +43,21 @@ struct CompilationSource {
4443}
4544
4645impl CompilationSource {
47- fn compile_string < D : std:: fmt:: Display , F : Fn ( ) -> D > (
46+ fn compile_string < D : std:: fmt:: Display , F : FnOnce ( ) -> D > (
4847 & self ,
4948 source : & str ,
5049 mode : compile:: Mode ,
5150 module_name : String ,
5251 origin : F ,
5352 ) -> Result < CodeObject , Diagnostic > {
54- let parse_err = |err| {
55- Diagnostic :: spans_error (
56- self . span ,
57- format ! ( "Python parse error from {}: {}" , origin( ) , err) ,
58- )
59- } ;
60- let opts = compile:: CompileOpts :: default ( ) ;
61- let res = match mode {
62- compile:: Mode :: Exec => {
63- let ast = parser:: parse_program ( source) . map_err ( parse_err) ?;
64- compile:: compile_program ( ast, module_name, opts)
65- }
66- compile:: Mode :: Eval => {
67- let statement = parser:: parse_statement ( source) . map_err ( parse_err) ?;
68- compile:: compile_statement_eval ( statement, module_name, opts)
69- }
70- compile:: Mode :: Single => {
71- let ast = parser:: parse_program ( source) . map_err ( parse_err) ?;
72- compile:: compile_program_single ( ast, module_name, opts)
73- }
74- } ;
75- res. map_err ( |err| {
76- Diagnostic :: spans_error (
77- self . span ,
78- format ! ( "Python compile error from {}: {}" , origin( ) , err) ,
79- )
80- } )
53+ compile:: compile ( source, mode, module_name, compile:: CompileOpts :: default ( ) ) . map_err (
54+ |err| {
55+ Diagnostic :: spans_error (
56+ self . span ,
57+ format ! ( "Python compile error from {}: {}" , origin( ) , err) ,
58+ )
59+ } ,
60+ )
8161 }
8262
8363 fn compile (
0 commit comments