https://bugs.kde.org/show_bug.cgi?id=371741
Bug ID: 371741 Summary: KDevelop doesn't report certain errors. Product: kdevelop Version: 5.0.2 Platform: Archlinux Packages OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: Language Support: CPP (Clang-based) Assignee: kdevelop-bugs-n...@kde.org Reporter: olaf.the.lost.vik...@gmail.com Target Milestone: --- == Short == KDevelop is not reporting a not-closed namespace in a header file. (No "expected { to match this }" in the "Problems" tab.) == Long == KDevelop is not marking problems in a header file when a namepsace is not correctly closed. In smaller projects (I tried to build a minimal example) this is then easily seen in the main.cpp; in my case (see below) I have no idea at all if in any file down the tree this was ever shown. But in the end I never saw an error; only files not getting parsed/coloured. While I do see that a preprocessor could insert that missing } in any other file, I, personally, would probably prefer to get a warning when the braces in a file are not matching. Isn't that default behaviour? == My case== It all started with the fact that some files in my project were missing the semantic colouring and weren't parsed anymore by the clang-parser. For my further project internal tests I used a trivial (stand-alone, only std::lib, simple RAII flag saver) header file that didn't get parsed anymore in my project. I found out this only happens when the file is included in another class. Going down the tree I finally found the culprit: a totally unrelated header file which was used in a class that used a class that... etc that included this header (all files along this tree failed to parse/colour). In this header file, a namespace was opened but not correctly closed. But KDevelop did not complain about that anywhere but simply did no longer parse the other files using this header as well as totally unrelated headers included by them. The "bad" file itself even looked fine - all nice colours). Compiling fails, of course, with one of the glorious C++ error messages saying that std::string does not exist inside of a standard library. That's how I finally started suspecting some namespace stuff. == Minimal example == * Create "New from template" CMake project * Add file test.hpp * contents of test.hpp (+ header guards) namespace FOO { class BAR {}; * #include test.hpp * / data types are not recognised or no error at all (bigger project) / missing brace marked inside of the "innocent" cpp file -- You are receiving this mail because: You are watching all bug changes.