| Summary: | Assistant offers to declare a member function instead of variable | ||
|---|---|---|---|
| Product: | [Applications] kdevelop | Reporter: | Alexander <ashaduri> |
| Component: | Language Support: CPP (old) | Assignee: | kdevelop-bugs-null |
| Status: | CONFIRMED --- | ||
| Severity: | normal | CC: | aleixpol, cponnapalli |
| Priority: | NOR | ||
| Version First Reported In: | git master | ||
| Target Milestone: | --- | ||
| Platform: | openSUSE | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | kdevelop Assistant offers to declare the invalid member identifier with the correct structure types | ||
Still happens, probably shouldn't offer anything... Created attachment 98696 [details]
kdevelop Assistant offers to declare the invalid member identifier with the correct structure types
Reproduced the code given above containing the invalid variable member.
Kdevelop assistant correctly highlights as an invalid identifier. However, it does NOT suggest either of the following fixes:
(1) Declare void A::member()
(2) Declare private void A::member()
kdevelop rightly suggest that the invalid identifier 'member' should be declared either as a class or a struct. So, its working fine.
Still a problem. KDevelop shouldn't even propose forward-declaring it -- it wouldn't make the example code valid either (`member` is dereferenced, thus the declaration needs to be visible). |
Version: SVN (using KDE 4.2.4) Compiler: gcc 4.3.2 OS: Linux Installed from: SuSE RPMs Consider the following code: class A { void f() { member->something(); } }; The "member" word is correctly highlighted as invalid. If I move the cursor there, the Assistant pops up, suggesting: (1) Declare void A::member() (2) Declare private void A::member() (0) Hide Of course, declaring "member" as a member function is not the right thing to do (even though the error highlight goes away). It should detect whether it's called as member-> or member(...)->, and offer to declare the member functions only in the second case.