@@ -31,32 +31,14 @@ pub fn generate_dialect(input: DialectInput) -> Result<TokenStream, Error> {
3131
3232 parser = parser. add_include_directory ( LLVM_INCLUDE_DIRECTORY ) ;
3333
34- let get_path = |path : & str | {
35- let path = if matches ! (
36- Path :: new( path) . components( ) . next( ) ,
37- Some ( Component :: CurDir | Component :: ParentDir )
38- ) {
39- path. into ( )
40- } else {
41- Path :: new ( LLVM_INCLUDE_DIRECTORY ) . join ( path)
42- } ;
43- path. display ( ) . to_string ( )
44- } ;
45-
4634 for path in input. directories ( ) {
47- let path = get_path ( path) ;
48- parser = parser. add_include_directory ( & path) ;
35+ parser = parser. add_include_directory ( & resolve_include_directory ( path) ) ;
4936 }
5037
5138 for ( env_var, span) in input. directory_env_vars ( ) {
52- let path = match env:: var ( env_var) {
53- Ok ( path) => path,
54- Err ( err) => {
55- return Err ( syn:: Error :: new ( span. clone ( ) , err. to_string ( ) ) . into ( ) )
56- }
57- } ;
58- let path = get_path ( & path) ;
59- parser = parser. add_include_directory ( & path) ;
39+ parser = parser. add_include_directory ( & resolve_include_directory (
40+ & env:: var ( env_var) . map_err ( |error| syn:: Error :: new ( * span, error. to_string ( ) ) ) ?,
41+ ) ) ;
6042 }
6143
6244 if input. files ( ) . count ( ) > 0 {
@@ -112,6 +94,19 @@ fn generate_dialect_module(
11294 } )
11395}
11496
97+ fn resolve_include_directory ( path : & str ) -> String {
98+ if matches ! (
99+ Path :: new( path) . components( ) . next( ) ,
100+ Some ( Component :: CurDir | Component :: ParentDir )
101+ ) {
102+ path. into ( )
103+ } else {
104+ Path :: new ( LLVM_INCLUDE_DIRECTORY ) . join ( path)
105+ }
106+ . display ( )
107+ . to_string ( )
108+ }
109+
115110fn create_syn_error ( error : impl Display ) -> syn:: Error {
116111 syn:: Error :: new ( Span :: call_site ( ) , format ! ( "{error}" ) )
117112}
0 commit comments