standardese / cppast

Library to parse and work with the C++ AST
Other
1.7k stars 165 forks source link

parser::parse: Inconsistency in documentation or unwanted behavior when file already in index #170

Open rafzi opened 1 year ago

rafzi commented 1 year ago

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.