@@ -1101,12 +1101,12 @@ def find_word_in_code_line(
1101
1101
return line_number , i0 , i1
1102
1102
1103
1103
def preprocess (
1104
- self , pp_defs : dict = None , include_dirs : list = None , debug : bool = False
1104
+ self , pp_defs : dict = None , include_dirs : set = None , debug : bool = False
1105
1105
) -> tuple [list , list ]:
1106
1106
if pp_defs is None :
1107
1107
pp_defs = {}
1108
1108
if include_dirs is None :
1109
- include_dirs = []
1109
+ include_dirs = set ()
1110
1110
1111
1111
self .contents_pp , pp_skips , pp_defines , self .pp_defs = preprocess_file (
1112
1112
self .contents_split ,
@@ -1173,7 +1173,7 @@ def preprocess_file(
1173
1173
contents_split : list ,
1174
1174
file_path : str = None ,
1175
1175
pp_defs : dict = None ,
1176
- include_dirs : list = None ,
1176
+ include_dirs : set = None ,
1177
1177
debug : bool = False ,
1178
1178
):
1179
1179
# Look for and mark excluded preprocessor paths in file
@@ -1231,9 +1231,9 @@ def replace_vars(line: str):
1231
1231
if pp_defs is None :
1232
1232
pp_defs = {}
1233
1233
if include_dirs is None :
1234
- include_dirs = []
1234
+ include_dirs = set ()
1235
1235
if file_path is not None :
1236
- include_dirs = [ os .path .dirname (file_path )] + include_dirs
1236
+ include_dirs . add ( os .path .abspath ( os . path . dirname (file_path )))
1237
1237
pp_skips = []
1238
1238
pp_defines = []
1239
1239
pp_stack = []
@@ -1397,7 +1397,7 @@ def process_file(
1397
1397
file_obj : fortran_file ,
1398
1398
debug : bool = False ,
1399
1399
pp_defs : dict = None ,
1400
- include_dirs : list = None ,
1400
+ include_dirs : set = None ,
1401
1401
):
1402
1402
"""Build file AST by parsing file"""
1403
1403
@@ -1407,7 +1407,7 @@ def parser_debug_msg(msg: str, line: str, ln: int):
1407
1407
if pp_defs is None :
1408
1408
pp_defs = {}
1409
1409
if include_dirs is None :
1410
- include_dirs = []
1410
+ include_dirs = set ()
1411
1411
# Configure the parser logger
1412
1412
if debug :
1413
1413
logging .basicConfig (
0 commit comments