It does internally call parser::parse, which states: \returns The [cppast::cpp_file]() object describing it. It can be 'nullptr', if there was an error or the specified file already registered in the index.
Therefore, simple_file_parser::parse actually also returns nullptr if the file is already in the index. A user of it will then expect that the parsing failed, when it actually succeeded.
libclang_parser
simple_file_parser::parse
states:\returns The parsed file or an empty optional, if a fatal error occurred.
https://github.com/foonathan/cppast/blob/main/include/cppast/parser.hpp#L110
It does internally call
parser::parse
, which states:\returns The [cppast::cpp_file]() object describing it. It can be 'nullptr', if there was an error or the specified file already registered in the index.
Therefore,
simple_file_parser::parse
actually also returns nullptr if the file is already in the index. A user of it will then expect that the parsing failed, when it actually succeeded.