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.

Reply via email to